package db const schema = ` CREATE TABLE IF NOT EXISTS volunteers ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT NOT NULL UNIQUE, password TEXT NOT NULL, role TEXT NOT NULL DEFAULT 'volunteer', -- 'admin' | 'volunteer' active INTEGER NOT NULL DEFAULT 1, created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS schedules ( id INTEGER PRIMARY KEY AUTOINCREMENT, volunteer_id INTEGER NOT NULL REFERENCES volunteers(id), title TEXT NOT NULL, starts_at TEXT NOT NULL, ends_at TEXT NOT NULL, notes TEXT, created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS time_off_requests ( id INTEGER PRIMARY KEY AUTOINCREMENT, volunteer_id INTEGER NOT NULL REFERENCES volunteers(id), starts_at TEXT NOT NULL, ends_at TEXT NOT NULL, reason TEXT, status TEXT NOT NULL DEFAULT 'pending', -- 'pending' | 'approved' | 'rejected' reviewed_by INTEGER REFERENCES volunteers(id), reviewed_at TEXT, created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS checkins ( id INTEGER PRIMARY KEY AUTOINCREMENT, volunteer_id INTEGER NOT NULL REFERENCES volunteers(id), schedule_id INTEGER REFERENCES schedules(id), checked_in_at TEXT NOT NULL DEFAULT (datetime('now')), checked_out_at TEXT, notes TEXT ); CREATE TABLE IF NOT EXISTS notifications ( id INTEGER PRIMARY KEY AUTOINCREMENT, volunteer_id INTEGER NOT NULL REFERENCES volunteers(id), message TEXT NOT NULL, read INTEGER NOT NULL DEFAULT 0, created_at TEXT NOT NULL DEFAULT (datetime('now')) ); `