const express = require('express'); const router = express.Router(); const ctrl = require('../../controllers/client/courses.controller'); const progressCtrl = require('../../controllers/client/course_reading_progress.controller'); // Course categories for filter chips — must come before /:courseId router.get('/categories', ctrl.getCategories); // Profile learning progress card — must come before /:courseId router.get('/in-progress', progressCtrl.getMyInProgressCourses); // Live view of every completed lesson/unit/course — must come before /:courseId router.get('/completed', progressCtrl.getMyCompletedContent); // UUID lookups (task requirement blocks — must come before /:courseId) router.get('/uuid/:uuid', ctrl.getCourseByUuid); router.get('/unit/uuid/:uuid/lessons', ctrl.getLessonsByUnitUuid); router.get('/unit/uuid/:uuid/task-context', progressCtrl.getUnitTaskContext); router.get('/unit/uuid/:uuid', ctrl.getUnitByUuid); router.get('/lesson/uuid/:uuid/task-context', progressCtrl.getLessonTaskContext); router.get('/lesson/uuid/:uuid', ctrl.getLessonByUuid); router.get('/quiz/uuid/:uuid', ctrl.getQuizByUuid); // Courses router.get('/', ctrl.getCourses); router.get('/:courseId', ctrl.getCourse); // Unit router.get('/:courseId/units/:unitId', ctrl.getUnit); // Lesson router.get('/:courseId/units/:unitId/lessons/:lessonId', ctrl.getLesson); // Quiz (no answers) router.get('/:courseId/units/:unitId/quiz', ctrl.getUnitQuiz); // Assessment router.get( '/:courseId/assessment', ctrl.getCourseAssessment); router.post('/:courseId/assessment/:assessmentId/start', ctrl.startCourseAssessment); router.get( '/:courseId/assessment/:assessmentId/session', ctrl.getAssessmentSession); router.patch('/:courseId/assessment/:assessmentId/draft', ctrl.saveDraft); router.patch('/:courseId/units/:unitId/quiz/:quizId/draft', ctrl.saveQuizDraft); router.post('/:courseId/units/:unitId/quiz/:quizId/submit', ctrl.submitUnitQuiz); router.post('/:courseId/assessment/:assessmentId/submit', ctrl.submitCourseAssessment); // Reading progress router.get( '/:courseId/progress/summary', progressCtrl.getCourseProgressSummary); router.get( '/:courseId/progress', progressCtrl.getCourseProgress); router.get( '/:courseId/task-context', progressCtrl.getCourseTaskContext); router.post('/:courseId/units/:unitId/lessons/:lessonId/progress', progressCtrl.upsertLessonProgress); router.post('/:courseId/units/:unitId/lessons/:lessonId/watch-progress', progressCtrl.upsertWatchProgress); router.post('/:courseId/units/:unitId/lessons/:lessonId/mark-complete', progressCtrl.markLessonComplete); module.exports = router;