const router = require("express").Router(); const controller = require("../../controllers/admin/task.controller"); const { sensitiveOpsLimiter } = require("../../middleware/rateLimiter.middleware"); // ─── Task Lists ─────────────────────────────────────────────────────────────── router.get("/", controller.getTaskLists); router.get("/archived", controller.getArchivedTaskLists); router.get("/field-values", controller.getTaskListFieldValues); router.post("/", sensitiveOpsLimiter, controller.createTaskList); router.post("/bulk-archive", sensitiveOpsLimiter, controller.bulkArchiveTaskLists); router.post("/bulk-restore", sensitiveOpsLimiter, controller.bulkRestoreTaskLists); // ─── Task List (single) ─────────────────────────────────────────────────────── router.get("/:taskListId", controller.getTaskList); router.patch("/:taskListId", sensitiveOpsLimiter, controller.updateTaskList); router.delete("/:taskListId", sensitiveOpsLimiter, controller.archiveTaskList); router.patch("/:taskListId/restore", sensitiveOpsLimiter, controller.restoreTaskList); // ─── Task List Groups ───────────────────────────────────────────────────────── router.get("/:taskListId/groups", controller.getTaskListGroups); router.post("/:taskListId/groups/assign", sensitiveOpsLimiter, controller.assignGroups); router.post("/:taskListId/groups/unassign", sensitiveOpsLimiter, controller.unassignGroups); // ─── Tasks (nested under task-list) ────────────────────────────────────────── router.get("/:taskListId/tasks", controller.getTasks); router.get("/:taskListId/tasks/archived", controller.getArchivedTasks); router.get("/:taskListId/tasks/field-values", controller.getTaskFieldValues); router.post("/:taskListId/tasks", sensitiveOpsLimiter, controller.createTask); router.post("/:taskListId/tasks/bulk-archive", sensitiveOpsLimiter, controller.bulkArchiveTasks); router.post("/:taskListId/tasks/bulk-restore", sensitiveOpsLimiter, controller.bulkRestoreTasks); // ─── Tasks (single) ─────────────────────────────────────────────────────────── router.get("/:taskListId/tasks/:taskId", controller.getTask); router.patch("/:taskListId/tasks/:taskId", sensitiveOpsLimiter, controller.updateTask); router.delete("/:taskListId/tasks/:taskId", sensitiveOpsLimiter, controller.archiveTask); router.patch("/:taskListId/tasks/:taskId/restore", sensitiveOpsLimiter, controller.restoreTask); module.exports = router;