feat: add client billing fields to database and Rust backend

This commit is contained in:
Your Name
2026-02-17 22:52:51 +02:00
parent c0ad93a758
commit 89d121bbea
2 changed files with 169 additions and 15 deletions

View File

@@ -12,6 +12,26 @@ pub fn init_db(conn: &Connection) -> Result<(), rusqlite::Error> {
[],
)?;
// Migrate clients table — add new columns (safe to re-run)
let migration_columns = [
"ALTER TABLE clients ADD COLUMN company TEXT",
"ALTER TABLE clients ADD COLUMN phone TEXT",
"ALTER TABLE clients ADD COLUMN tax_id TEXT",
"ALTER TABLE clients ADD COLUMN payment_terms TEXT",
"ALTER TABLE clients ADD COLUMN notes TEXT",
];
for sql in &migration_columns {
match conn.execute(sql, []) {
Ok(_) => {}
Err(e) => {
let msg = e.to_string();
if !msg.contains("duplicate column") {
return Err(e);
}
}
}
}
conn.execute(
"CREATE TABLE IF NOT EXISTS projects (
id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -98,7 +118,7 @@ pub fn init_db(conn: &Connection) -> Result<(), rusqlite::Error> {
// Insert default settings
conn.execute(
"INSERT OR IGNORE INTO settings (key, value) VALUES ('default_hourly_rate', '50')",
"INSERT OR IGNORE INTO settings (key, value) VALUES ('hourly_rate', '50')",
[],
)?;
conn.execute(