import { Router } from "express";
import { authenticateToken } from "../middleware/authMiddleware";
import * as departmentController from "../controllers/departmentController";

const router = Router();

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

/**
 * 부서 관리 API 라우트
 * 기본 경로: /api/departments
 */

// 부서 목록 조회 (회사별)
router.get("/companies/:companyCode/departments", departmentController.getDepartments);

// 부서 상세 조회
router.get("/:deptCode", departmentController.getDepartment);

// 부서 생성
router.post("/companies/:companyCode/departments", departmentController.createDepartment);

// 부서 수정
router.put("/:deptCode", departmentController.updateDepartment);

// 부서 삭제
router.delete("/:deptCode", departmentController.deleteDepartment);

// 부서원 목록 조회
router.get("/:deptCode/members", departmentController.getDepartmentMembers);

// 사용자 검색 (부서원 추가용)
router.get("/companies/:companyCode/users/search", departmentController.searchUsers);

// 부서원 추가
router.post("/:deptCode/members", departmentController.addDepartmentMember);

// 부서원 제거
router.delete("/:deptCode/members/:userId", departmentController.removeDepartmentMember);

// 주 부서 설정
router.put("/:deptCode/members/:userId/primary", departmentController.setPrimaryDepartment);

export default router;

