/*********************************************************************************************************************************************************************** * File Name: lessons.routes.js (admin) * Type of Program: Router * Description: Standalone Lesson library — Lessons run independently of Units. * Unit membership (attach/detach/reorder) lives under * /admin/units/:unitId/lessons. * * Author: Kenneth Obsequio (@lash0000) * Date Created: Jul. 7, 2026 ***********************************************************************************************************************************************************************/ const router = require("express").Router(); const ctrl = require("../../controllers/admin/lessons.controller"); // Guards are applied by admin.routes.js (authenticate → requireAdmin → adminLimiter) // ── static segments first ───────────────────────────────────────────────────── router.get("/", ctrl.getLessons); router.post("/", ctrl.createLesson); router.get("/flat", ctrl.getLessonsFlat); router.get("/field-values", ctrl.getLessonFieldValues); router.delete("/bulk", ctrl.bulkArchiveLessons); router.delete("/bulk/permanent", ctrl.bulkPermanentlyDeleteLessons); router.get("/archives", ctrl.getArchivedLessons); router.patch("/restore/bulk", ctrl.bulkRestoreLessons); router.get("/archives/:lessonId", ctrl.getArchivedLesson); // ── then :lessonId ──────────────────────────────────────────────────────────── router.patch("/:lessonId/restore", ctrl.restoreLesson); router.get("/:lessonId/permanent-delete-impact", ctrl.getLessonPermanentDeleteImpact); router.get("/:lessonId", ctrl.getLesson); router.put("/:lessonId", ctrl.updateLesson); router.delete("/:lessonId", ctrl.archiveLesson); router.delete("/:lessonId/permanent", ctrl.permanentlyDeleteLesson); // ── Lesson page (block content) ─────────────────────────────────────────────── router.get("/:lessonId/page", ctrl.getLessonPage); router.put("/:lessonId/page", ctrl.upsertLessonPage); module.exports = router;