# Data model SQLite via `better-sqlite3`, schema created on boot in `backend/src/db/index.ts`. - [employees](./employees.md) - the whitelist of employee emails, with a soft-delete active flag - [attendance_events](./attendance-events.md) - append-only clock-in/out/break log and the derived state machine - [shift_slots](./shift-slots.md) - bookable shifts generated from a weekly template or added ad hoc - [shift_signups](./shift-signups.md) - an employee's claim on a slot - [pay_rates](./pay-rates.md) - versioned hourly rate per employee - [month_closures](./month-closures.md) - the confirm -> lock workflow per employee per month - [payroll](./payroll.md) - computed + admin-adjusted pay per employee per month