# Timetables API The Timetables module manages class and course schedules. ## Model ```json { "id": "uuid", "name": "Semester 1 Timetable", "academic_session_id": "session-uuid", "semester_id": "semester-uuid", "class_id": "class-uuid", "status": "active", "effective_from": "2024-09-01", "effective_to": "2024-12-31", "details": [...], "team_id": "team-uuid" } ``` ## Timetable Detail Individual schedule slots: ```json { "id": "uuid", "timetable_id": "timetable-uuid", "day_of_week_id": "day-uuid", "period_id": "period-uuid", "course_id": "course-uuid", "teacher_id": "teacher-uuid", "room_id": "room-uuid" } ``` ## Endpoints ### Standard CRUD | Method | Endpoint | Description | |--------|----------|-------------| | POST | `/api/timetables/list` | List timetables | | GET | `/api/timetables/:id` | Get timetable | | POST | `/api/timetables` | Create timetable | | PUT | `/api/timetables/:id` | Update timetable | | DELETE | `/api/timetables/:id` | Delete timetable | ### Schedule Management **Get Schedule:** `GET /api/timetables/:id/schedule` **Update Schedule:** `PUT /api/timetables/update-schedule` **Save Details:** `POST /api/timetables/save-details` ### Import/Export **Validate Import:** `POST /api/timetables/validate-import` **Import Schedule:** `POST /api/timetables/import-schedule` **Export Schedule:** `GET /api/timetables/:id/export` ### Duplicate **Duplicate Timetable:** `POST /api/timetables/duplicate` ### Class Schedule Get schedule for a specific class: `GET /api/timetables/class-schedule?class_id=xxx&date=2024-01-15` ### Generate Trigger automatic schedule generation: `POST /api/timetables/generate` ## Periods Time periods for the day. See [Periods API](periods.md). ## Days of Week Day definitions. See [Days of Week API](day-of-weeks.md).