import { Router } from "express"; import { getCategoryColumns, getCategoryValues, addCategoryValue, updateCategoryValue, deleteCategoryValue, bulkDeleteCategoryValues, reorderCategoryValues, getColumnMapping, createColumnMapping, getLogicalColumns, deleteColumnMapping, getSecondLevelMenus, } from "../controllers/tableCategoryValueController"; import { authenticateToken } from "../middleware/authMiddleware"; const router = Router(); // 모든 라우트에 인증 미들웨어 적용 router.use(authenticateToken); // 테이블의 카테고리 컬럼 목록 조회 router.get("/:tableName/columns", getCategoryColumns); // 카테고리 값 목록 조회 router.get("/:tableName/:columnName/values", getCategoryValues); // 카테고리 값 추가 router.post("/values", addCategoryValue); // 카테고리 값 수정 router.put("/values/:valueId", updateCategoryValue); // 카테고리 값 삭제 router.delete("/values/:valueId", deleteCategoryValue); // 카테고리 값 일괄 삭제 router.post("/values/bulk-delete", bulkDeleteCategoryValues); // 카테고리 값 순서 변경 router.post("/values/reorder", reorderCategoryValues); // ================================================ // 컬럼 매핑 관련 라우트 (논리명 ↔ 물리명) // ================================================ // 2레벨 메뉴 목록 조회 (메뉴 선택용) router.get("/second-level-menus", getSecondLevelMenus); // 컬럼 매핑 조회 router.get("/column-mapping/:tableName/:menuObjid", getColumnMapping); // 논리적 컬럼 목록 조회 router.get("/logical-columns/:tableName/:menuObjid", getLogicalColumns); // 컬럼 매핑 생성/수정 router.post("/column-mapping", createColumnMapping); // 컬럼 매핑 삭제 router.delete("/column-mapping/:mappingId", deleteColumnMapping); export default router;