import { Router } from "express"; import { getAdminMenus, getUserMenus, getMenuInfo, saveMenu, // 메뉴 추가 updateMenu, // 메뉴 수정 deleteMenu, // 메뉴 삭제 deleteMenusBatch, // 메뉴 일괄 삭제 toggleMenuStatus, // 메뉴 상태 토글 copyMenu, // 메뉴 복사 getUserList, getUserInfo, // 사용자 상세 조회 getUserHistory, // 사용자 변경이력 조회 changeUserStatus, // 사용자 상태 변경 resetUserPassword, // 사용자 비밀번호 초기화 updateProfile, // 프로필 수정 getDepartmentList, // 부서 목록 조회 checkDuplicateUserId, // 사용자 ID 중복 체크 saveUser, // 사용자 등록/수정 getCompanyList, getCompanyListFromDB, // 실제 DB에서 회사 목록 조회 getCompanyByCode, // 회사 단건 조회 createCompany, // 회사 등록 updateCompany, // 회사 수정 deleteCompany, // 회사 삭제 getUserLocale, setUserLocale, getTableSchema, // 테이블 스키마 조회 } from "../controllers/adminController"; import { authenticateToken } from "../middleware/authMiddleware"; const router = Router(); // 모든 admin 라우트에 인증 미들웨어 적용 router.use(authenticateToken); // 메뉴 관련 API router.get("/menus", getAdminMenus); router.get("/user-menus", getUserMenus); router.get("/menus/:menuId", getMenuInfo); router.post("/menus", saveMenu); // 메뉴 추가 router.post("/menus/:menuObjid/copy", copyMenu); // 메뉴 복사 (NEW!) router.put("/menus/:menuId", updateMenu); // 메뉴 수정 router.put("/menus/:menuId/toggle", toggleMenuStatus); // 메뉴 상태 토글 router.delete("/menus/batch", deleteMenusBatch); // 메뉴 일괄 삭제 (순서 중요!) router.delete("/menus/:menuId", deleteMenu); // 메뉴 삭제 // 사용자 관리 API router.get("/users", getUserList); router.get("/users/:userId", getUserInfo); // 사용자 상세 조회 router.get("/users/:userId/history", getUserHistory); // 사용자 변경이력 조회 router.patch("/users/:userId/status", changeUserStatus); // 사용자 상태 변경 router.post("/users", saveUser); // 사용자 등록/수정 (기존) router.put("/users/:userId", saveUser); // 사용자 수정 (REST API) router.put("/profile", updateProfile); // 프로필 수정 router.post("/users/check-duplicate", checkDuplicateUserId); // 사용자 ID 중복 체크 router.post("/users/reset-password", resetUserPassword); // 사용자 비밀번호 초기화 // 부서 관리 API router.get("/departments", getDepartmentList); // 부서 목록 조회 // 회사 관리 API router.get("/companies", getCompanyList); router.get("/companies/db", getCompanyListFromDB); // 실제 DB에서 회사 목록 조회 router.get("/companies/:companyCode", getCompanyByCode); // 회사 단건 조회 router.post("/companies", createCompany); // 회사 등록 router.put("/companies/:companyCode", updateCompany); // 회사 수정 router.delete("/companies/:companyCode", deleteCompany); // 회사 삭제 // 사용자 로케일 API router.get("/user-locale", getUserLocale); router.post("/user-locale", setUserLocale); // 테이블 스키마 API (엑셀 업로드 컬럼 매핑용) router.get("/tables/:tableName/schema", getTableSchema); export default router;