Files
cpas/db/schema.sql

37 lines
1.1 KiB
SQL
Executable File

CREATE TABLE IF NOT EXISTS employees (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
department TEXT,
supervisor TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS violations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
employee_id INTEGER NOT NULL REFERENCES employees(id),
violation_type TEXT NOT NULL,
violation_name TEXT NOT NULL,
category TEXT NOT NULL,
points INTEGER NOT NULL,
incident_date DATE NOT NULL,
incident_time TEXT,
location TEXT,
details TEXT,
submitted_by TEXT,
witness_name TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE VIEW IF NOT EXISTS active_cpas_scores AS
SELECT
e.id AS employee_id,
e.name AS employee_name,
e.department,
COALESCE(SUM(v.points), 0) AS active_points,
COUNT(v.id) AS violation_count
FROM employees e
LEFT JOIN violations v
ON v.employee_id = e.id
AND v.incident_date >= DATE('now', '-90 days')
GROUP BY e.id;