import { Router } from "express"; import { getCategoryValueCascadingGroups, getCategoryValueCascadingGroupById, getCategoryValueCascadingByCode, createCategoryValueCascadingGroup, updateCategoryValueCascadingGroup, deleteCategoryValueCascadingGroup, saveCategoryValueCascadingMappings, getCategoryValueCascadingOptions, getCategoryValueCascadingParentOptions, getCategoryValueCascadingChildOptions, getCategoryValueCascadingMappingsByTable, } from "../controllers/categoryValueCascadingController"; import { authenticateToken } from "../middleware/authMiddleware"; const router = Router(); // 모든 라우트에 인증 적용 router.use(authenticateToken); // ============================================ // 카테고리 값 연쇄관계 그룹 CRUD // ============================================ // 그룹 목록 조회 router.get("/groups", getCategoryValueCascadingGroups); // 그룹 상세 조회 (ID) router.get("/groups/:groupId", getCategoryValueCascadingGroupById); // 관계 코드로 조회 router.get("/code/:code", getCategoryValueCascadingByCode); // 그룹 생성 router.post("/groups", createCategoryValueCascadingGroup); // 그룹 수정 router.put("/groups/:groupId", updateCategoryValueCascadingGroup); // 그룹 삭제 router.delete("/groups/:groupId", deleteCategoryValueCascadingGroup); // ============================================ // 카테고리 값 연쇄관계 매핑 // ============================================ // 매핑 일괄 저장 router.post("/groups/:groupId/mappings", saveCategoryValueCascadingMappings); // ============================================ // 연쇄 옵션 조회 (실제 드롭다운에서 사용) // ============================================ // 부모 카테고리 값 목록 조회 router.get("/parent-options/:code", getCategoryValueCascadingParentOptions); // 자식 카테고리 값 목록 조회 (매핑 설정 UI용) router.get("/child-options/:code", getCategoryValueCascadingChildOptions); // 연쇄 옵션 조회 (부모 값 기반 자식 옵션) router.get("/options/:code", getCategoryValueCascadingOptions); // ============================================ // 테이블별 매핑 조회 (테이블 목록 표시용) // ============================================ // 테이블명으로 해당 테이블의 모든 연쇄관계 매핑 조회 router.get( "/table/:tableName/mappings", getCategoryValueCascadingMappingsByTable ); export default router;