# Staff Attendance Backend ## Purpose The staff attendance API provides staff-level attendance records and summary counts for the attendance snapshot and director dashboard. This workflow is separate from: - student-level generated attendance models: `attendance_sessions`, `attendance_records` - campus daily aggregate summaries: `campus_attendance_summaries` ## Data Model The module uses: - `staff_attendance_records` Records include: - `attendance_date` - `status`: `present`, `late`, or `absent` - `note` - `user_name` - `user_role` - `organizationId` - `campusId` - `userId` - audit fields and soft delete timestamps ## API All routes require JWT authentication. - `GET /api/staff_attendance/records` - `GET /api/staff_attendance/records?startDate=&endDate=&limit=` - `GET /api/staff_attendance/summary` - `GET /api/staff_attendance/summary?startDate=&endDate=&limit=` ## Access Rules - Regular staff can read only their own staff attendance records. - Report roles can read campus-scoped staff attendance records. - Tenant-wide leadership roles can read organization-wide records. - Summary includes active staff count from `staff` plus attendance status counts from `staff_attendance_records`. ## Remaining Related Work The module currently exposes read/report endpoints only. Add write or import endpoints when the staff attendance source system is defined. ## Files - `backend/src/constants/staff-attendance.js` - `backend/src/db/models/staff_attendance_records.js` - `backend/src/db/migrations/20260608008000-create-staff-attendance-records.js` - `backend/src/services/staff_attendance.js` - `backend/src/routes/staff_attendance.js`