Repairs
API fact source: Django backend generated docs
Repairs Do Not Mutate Classrooms
repairs owns classroom repair reports, handling flow, and creator confirmation. It references classrooms but does not mutate classroom master data.
Code entry:
backend/apps/repairs/models/backend/apps/repairs/views/
Standard And Emergency Repairs
Standard repair blocks duplicate open or processing tickets for the same classroom, which prevents repeated dispatch for the same issue. Emergency repair bypasses duplicate blocking because it represents higher-priority immediate handling.
Handler roles include assistant, superadmin, and counselor. Completion confirmation can only be performed by the creator.
State And Duty Contact
State-machine changes affect serializers, confirmation endpoint behavior, list filtering, and operation logs. duty_phone currently comes from the request body and has a default; before a duty roster is integrated, it is not trusted configuration.
Known Boundaries
- Completion confirmation currently does not enforce that the previous state must be
completed. - Repairs do not automatically change classroom
status. Design transaction and rollback behavior separately if that coupling is needed.