From 5bcd6d07dccf41c0afdbfa51c1e31bd7a57fa5b0 Mon Sep 17 00:00:00 2001 From: jason Date: Fri, 6 Mar 2026 13:50:25 -0600 Subject: [PATCH 1/3] Upload files to "client/src/components" From 610d72ab662a0852aa87113205e7fb2ebf50e6cc Mon Sep 17 00:00:00 2001 From: jason Date: Fri, 6 Mar 2026 13:50:42 -0600 Subject: [PATCH 2/3] Upload files to "pdf" From 821192e879914f28e8d592e6636e13eba80f70a5 Mon Sep 17 00:00:00 2001 From: jason Date: Fri, 6 Mar 2026 13:56:36 -0600 Subject: [PATCH 3/3] Update db/database.js --- db/database.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/db/database.js b/db/database.js index d2f72d7..a95c7c7 100755 --- a/db/database.js +++ b/db/database.js @@ -18,6 +18,21 @@ const cols = db.prepare("PRAGMA table_info(violations)").all().map(c => c.name); if (!cols.includes('negated')) db.exec("ALTER TABLE violations ADD COLUMN negated INTEGER NOT NULL DEFAULT 0"); if (!cols.includes('negated_at')) db.exec("ALTER TABLE violations ADD COLUMN negated_at DATETIME"); +// After adding columns + resolutions table, ensure view is correct +db.exec(` + DROP VIEW IF EXISTS active_cpas_scores; + CREATE VIEW active_cpas_scores AS + SELECT + employee_id, + SUM(points) AS active_points, + COUNT(*) AS violation_count + FROM violations + WHERE negated = 0 + AND incident_date >= DATE('now', '-90 days') + GROUP BY employee_id; +`); + + // Ensure resolutions table exists on upgrade db.exec(`CREATE TABLE IF NOT EXISTS violation_resolutions ( id INTEGER PRIMARY KEY AUTOINCREMENT,