import db from "./db"; export default function initializeDatabase() { db.exec(` -- Table: contracts CREATE TABLE IF NOT EXISTS contracts ( contract_id INTEGER PRIMARY KEY AUTOINCREMENT, contract_number TEXT NOT NULL, contract_name TEXT, customer_contract_number TEXT, customer TEXT, investor TEXT, date_signed TEXT, finish_date TEXT ); -- Table: projects CREATE TABLE IF NOT EXISTS projects ( project_id INTEGER PRIMARY KEY AUTOINCREMENT, contract_id INTEGER, project_name TEXT NOT NULL, project_number TEXT NOT NULL, address TEXT, plot TEXT, district TEXT, unit TEXT, city TEXT, investment_number TEXT, finish_date TEXT, wp TEXT, contact TEXT, notes TEXT, FOREIGN KEY (contract_id) REFERENCES contracts(contract_id) ); -- Table: tasks CREATE TABLE IF NOT EXISTS tasks ( task_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, max_wait_days INTEGER DEFAULT 0, is_standard INTEGER NOT NULL DEFAULT 0 ); -- Table: project_tasks CREATE TABLE IF NOT EXISTS project_tasks ( id INTEGER PRIMARY KEY AUTOINCREMENT, project_id INTEGER NOT NULL, task_template_id INTEGER, custom_task_name TEXT, custom_max_wait_days INTEGER DEFAULT 0, status TEXT NOT NULL DEFAULT 'pending', date_added TEXT DEFAULT CURRENT_TIMESTAMP, priority TEXT DEFAULT 'normal', FOREIGN KEY (project_id) REFERENCES projects(project_id), FOREIGN KEY (task_template_id) REFERENCES tasks(task_id) ); -- Table: notes CREATE TABLE IF NOT EXISTS notes ( note_id INTEGER PRIMARY KEY AUTOINCREMENT, project_id INTEGER, task_id INTEGER, note TEXT NOT NULL, note_date TEXT DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (project_id) REFERENCES projects(project_id), FOREIGN KEY (task_id) REFERENCES project_tasks(id) ); `); // Migration: Add custom task columns if they don't exist try { db.exec(` ALTER TABLE project_tasks ADD COLUMN custom_task_name TEXT; `); } catch (e) { // Column already exists, ignore error } try { db.exec(` ALTER TABLE project_tasks ADD COLUMN custom_max_wait_days INTEGER DEFAULT 0; `); } catch (e) { // Column already exists, ignore error } // Migration: Add description column to tasks table try { db.exec(` ALTER TABLE tasks ADD COLUMN description TEXT; `); } catch (e) { // Column already exists, ignore error } // Migration: Add description column to project_tasks table try { db.exec(` ALTER TABLE project_tasks ADD COLUMN custom_description TEXT; `); } catch (e) { // Column already exists, ignore error } }