ERP-node/backend-node/src/routes/screenManagementRoutes.ts

75 lines
2.4 KiB
TypeScript
Raw Normal View History

2025-09-01 11:48:12 +09:00
import express from "express";
import { authenticateToken } from "../middleware/authMiddleware";
import {
getScreens,
2025-09-01 18:42:59 +09:00
getScreen,
getScreenMenu,
createScreen,
updateScreen,
updateScreenInfo,
deleteScreen,
2025-09-08 13:10:09 +09:00
checkScreenDependencies,
restoreScreen,
permanentDeleteScreen,
getDeletedScreens,
bulkPermanentDeleteScreens,
2025-09-03 18:23:47 +09:00
copyScreen,
getTables,
2025-09-02 11:16:40 +09:00
getTableInfo,
getTableColumns,
saveLayout,
getLayout,
2025-09-01 17:57:52 +09:00
generateScreenCode,
2025-09-01 18:42:59 +09:00
assignScreenToMenu,
getScreensByMenu,
unassignScreenFromMenu,
2025-09-08 13:10:09 +09:00
cleanupDeletedScreenMenuAssignments,
} from "../controllers/screenManagementController";
2025-09-01 11:48:12 +09:00
const router = express.Router();
// 모든 라우트에 인증 미들웨어 적용
router.use(authenticateToken);
// 화면 관리
router.get("/screens", getScreens);
2025-09-01 18:42:59 +09:00
router.get("/screens/:id", getScreen);
router.get("/screens/:id/menu", getScreenMenu); // 화면에 할당된 메뉴 조회
router.post("/screens", createScreen);
router.put("/screens/:id", updateScreen);
router.put("/screens/:id/info", updateScreenInfo); // 화면 정보만 수정
2025-09-08 13:10:09 +09:00
router.get("/screens/:id/dependencies", checkScreenDependencies); // 의존성 체크
router.delete("/screens/:id", deleteScreen); // 휴지통으로 이동
2025-09-03 18:23:47 +09:00
router.post("/screens/:id/copy", copyScreen);
2025-09-01 11:48:12 +09:00
2025-09-08 13:10:09 +09:00
// 휴지통 관리
router.get("/screens/trash/list", getDeletedScreens); // 휴지통 화면 목록
router.post("/screens/:id/restore", restoreScreen); // 휴지통에서 복원
router.delete("/screens/:id/permanent", permanentDeleteScreen); // 영구 삭제
router.delete("/screens/trash/bulk", bulkPermanentDeleteScreens); // 일괄 영구 삭제
2025-09-01 17:57:52 +09:00
// 화면 코드 자동 생성
router.get("/generate-screen-code/:companyCode", generateScreenCode);
// 테이블 관리
router.get("/tables", getTables);
2025-09-02 11:16:40 +09:00
router.get("/tables/:tableName", getTableInfo); // 특정 테이블 정보 조회 (최적화)
router.get("/tables/:tableName/columns", getTableColumns);
2025-09-01 11:48:12 +09:00
// 레이아웃 관리
router.post("/screens/:screenId/layout", saveLayout);
router.get("/screens/:screenId/layout", getLayout);
2025-09-01 11:48:12 +09:00
2025-09-01 18:42:59 +09:00
// 메뉴-화면 할당 관리
router.post("/screens/:screenId/assign-menu", assignScreenToMenu);
router.get("/menus/:menuObjid/screens", getScreensByMenu);
router.delete("/screens/:screenId/menus/:menuObjid", unassignScreenFromMenu);
2025-09-08 13:10:09 +09:00
// 관리자용 정리 기능
router.post(
"/admin/cleanup-deleted-screen-menu-assignments",
cleanupDeletedScreenMenuAssignments
);
2025-09-01 11:48:12 +09:00
export default router;