setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $db->exec('PRAGMA foreign_keys = ON'); $db->exec('PRAGMA journal_mode = WAL'); return $db; } function initDB(): void { $db = getDB(); $db->exec(" CREATE TABLE IF NOT EXISTS vehicles ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, brand TEXT NOT NULL, model TEXT NOT NULL, year INTEGER, license_plate TEXT, vin TEXT, fuel_type TEXT DEFAULT 'Essence', color TEXT, purchase_date TEXT, purchase_price REAL, current_km INTEGER DEFAULT 0, photo TEXT, notes TEXT, created_at TEXT DEFAULT (datetime('now')), updated_at TEXT DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS maintenances ( id INTEGER PRIMARY KEY AUTOINCREMENT, vehicle_id INTEGER NOT NULL, type TEXT NOT NULL, description TEXT, date TEXT NOT NULL, km INTEGER, cost REAL DEFAULT 0, mechanic TEXT, garage TEXT, next_km INTEGER, next_date TEXT, invoice_photo TEXT, notes TEXT, created_at TEXT DEFAULT (datetime('now')), FOREIGN KEY (vehicle_id) REFERENCES vehicles(id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS parts ( id INTEGER PRIMARY KEY AUTOINCREMENT, vehicle_id INTEGER, maintenance_id INTEGER, brand TEXT, reference TEXT, name TEXT NOT NULL, category TEXT DEFAULT 'Autre', price REAL DEFAULT 0, quantity INTEGER DEFAULT 1, unit TEXT DEFAULT 'pièce', supplier TEXT, purchase_date TEXT, photo TEXT, notes TEXT, created_at TEXT DEFAULT (datetime('now')), FOREIGN KEY (vehicle_id) REFERENCES vehicles(id) ON DELETE SET NULL, FOREIGN KEY (maintenance_id) REFERENCES maintenances(id) ON DELETE SET NULL ); "); } initDB();