const express = require('express'); const router = express.Router(); const subjectController = require('../controllers/subjectController'); /** * Subject Routes */ // GET /api/subjects - Get all subjects with pagination router.get('/', subjectController.getAllSubjects); // GET /api/subjects/active - Get all active subjects router.get('/active', subjectController.getActiveSubjects); // GET /api/subjects/datatypes/schema - Get subject datatypes router.get('/datatypes/schema', subjectController.getSubjectDatatypes); // GET /api/subjects/code/:code - Get subject by code router.get('/code/:code', subjectController.getSubjectByCode); // GET /api/subjects/:id - Get subject by ID router.get('/:id', subjectController.getSubjectById); // GET /api/subjects/:id/chapters - Get chapters by subject router.get('/:id/chapters', subjectController.getChaptersBySubject); // POST /api/subjects - Create new subject router.post('/', subjectController.createSubject); // PUT /api/subjects/:id - Update subject router.put('/:id', subjectController.updateSubject); // DELETE /api/subjects/:id - Delete subject router.delete('/:id', subjectController.deleteSubject); // ============ Nested Chapter Routes ============ // POST /api/subjects/:subjectId/chapters - Add chapter to subject router.post('/:subjectId/chapters', subjectController.addChapterToSubject); // DELETE /api/subjects/:subjectId/chapters/:chapterId - Remove chapter from subject router.delete('/:subjectId/chapters/:chapterId', subjectController.removeChapterFromSubject); module.exports = router;