/**
 * 다단계 계층 (Hierarchy) 라우트
 */

import express from "express";
import {
  getHierarchyGroups,
  getHierarchyGroupDetail,
  createHierarchyGroup,
  updateHierarchyGroup,
  deleteHierarchyGroup,
  addLevel,
  updateLevel,
  deleteLevel,
  getLevelOptions,
} from "../controllers/cascadingHierarchyController";
import { authenticateToken } from "../middleware/authMiddleware";

const router = express.Router();

// 인증 미들웨어 적용
router.use(authenticateToken);

// =====================================================
// 계층 그룹 관리 API
// =====================================================

// 그룹 목록 조회
router.get("/", getHierarchyGroups);

// 그룹 상세 조회 (레벨 포함)
router.get("/:groupCode", getHierarchyGroupDetail);

// 그룹 생성
router.post("/", createHierarchyGroup);

// 그룹 수정
router.put("/:groupCode", updateHierarchyGroup);

// 그룹 삭제
router.delete("/:groupCode", deleteHierarchyGroup);

// =====================================================
// 계층 레벨 관리 API
// =====================================================

// 레벨 추가
router.post("/:groupCode/levels", addLevel);

// 레벨 수정
router.put("/levels/:levelId", updateLevel);

// 레벨 삭제
router.delete("/levels/:levelId", deleteLevel);

// =====================================================
// 계층 옵션 조회 API (실제 사용)
// =====================================================

// 특정 레벨의 옵션 조회
router.get("/:groupCode/options/:levelOrder", getLevelOptions);

export default router;











