import { Router } from "express"; import { createProject, getProject, listProjects, updateProjectSettings, } from "../controllers/project.controller.js"; import { createDistributionBoard, listDistributionBoardsByProject, } from "../controllers/distribution-board.controller.js"; import { listCircuitListsByProject } from "../controllers/circuit-list.controller.js"; import { createFloor, listFloorsByProject } from "../controllers/floor.controller.js"; import { createRoom, listRoomsByProject } from "../controllers/room.controller.js"; import { getCircuitTree } from "../controllers/circuit-tree.controller.js"; import { getProjectHistory, listProjectRevisions, } from "../controllers/project-history.controller.js"; import { executeProjectCommand, redoProjectCommand, undoProjectCommand, } from "../controllers/project-command.controller.js"; import { createNamedProjectSnapshot, listProjectSnapshots, restoreProjectSnapshot, } from "../controllers/project-snapshot.controller.js"; import { exportProjectTransfer, importProjectTransfer, } from "../controllers/project-transfer.controller.js"; export const projectRouter = Router(); projectRouter.get("/", listProjects); projectRouter.post("/", createProject); projectRouter.get("/:projectId", getProject); projectRouter.get("/:projectId/export", exportProjectTransfer); projectRouter.post("/:projectId/import", importProjectTransfer); projectRouter.get("/:projectId/history", getProjectHistory); projectRouter.get("/:projectId/history/revisions", listProjectRevisions); projectRouter.post("/:projectId/commands", executeProjectCommand); projectRouter.post("/:projectId/history/undo", undoProjectCommand); projectRouter.post("/:projectId/history/redo", redoProjectCommand); projectRouter.get("/:projectId/snapshots", listProjectSnapshots); projectRouter.post("/:projectId/snapshots", createNamedProjectSnapshot); projectRouter.post( "/:projectId/snapshots/:snapshotId/restore", restoreProjectSnapshot ); projectRouter.put("/:projectId", updateProjectSettings); projectRouter.get("/:projectId/distribution-boards", listDistributionBoardsByProject); projectRouter.post("/:projectId/distribution-boards", createDistributionBoard); projectRouter.get("/:projectId/circuit-lists", listCircuitListsByProject); projectRouter.get("/:projectId/circuit-lists/:circuitListId/tree", getCircuitTree); projectRouter.get("/:projectId/floors", listFloorsByProject); projectRouter.post("/:projectId/floors", createFloor); projectRouter.get("/:projectId/rooms", listRoomsByProject); projectRouter.post("/:projectId/rooms", createRoom);