SchoolCore Attendance
Phase 4 extracts scanner and attendance behavior into neutral, context-aware services.
Rules:
- every public mutation accepts
SchoolContext; - controllers validate and delegate only;
- scanner writes go through
ScannerServiceContract; - badge lookup is school-scoped;
- duplicate scans use idempotency/fingerprints;
- status and session rules are policy/provider driven;
SchoolCore\Attendancemust not importIslamicSundaySchool.