import { Router } from "express";
import { templateStandardController } from "../controllers/templateStandardController";
import { authenticateToken } from "../middleware/authMiddleware";

const router = Router();

// 모든 라우트에 인증 미들웨어 적용
router.use(authenticateToken);

// 템플릿 목록 조회
router.get(
  "/",
  templateStandardController.getTemplates.bind(templateStandardController)
);

// 템플릿 카테고리 목록 조회
router.get(
  "/categories",
  templateStandardController.getCategories.bind(templateStandardController)
);

// 템플릿 정렬 순서 일괄 업데이트
router.put(
  "/sort-order/bulk",
  templateStandardController.updateSortOrder.bind(templateStandardController)
);

// 템플릿 가져오기
router.post(
  "/import",
  templateStandardController.importTemplate.bind(templateStandardController)
);

// 템플릿 상세 조회
router.get(
  "/:templateCode",
  templateStandardController.getTemplate.bind(templateStandardController)
);

// 템플릿 내보내기
router.get(
  "/:templateCode/export",
  templateStandardController.exportTemplate.bind(templateStandardController)
);

// 템플릿 생성
router.post(
  "/",
  templateStandardController.createTemplate.bind(templateStandardController)
);

// 템플릿 수정
router.put(
  "/:templateCode",
  templateStandardController.updateTemplate.bind(templateStandardController)
);

// 템플릿 삭제
router.delete(
  "/:templateCode",
  templateStandardController.deleteTemplate.bind(templateStandardController)
);

// 템플릿 복제
router.post(
  "/:templateCode/duplicate",
  templateStandardController.duplicateTemplate.bind(templateStandardController)
);

export default router;
