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

const router = Router();

/**
 * GET /api/db-type-categories
 * 모든 DB 타입 카테고리 조회
 */
router.get("/", authenticateToken, DbTypeCategoryController.getAllCategories);

/**
 * GET /api/db-type-categories/stats/connections
 * DB 타입별 연결 통계 조회
 */
router.get("/stats/connections", authenticateToken, DbTypeCategoryController.getConnectionStatsByType);

/**
 * GET /api/db-type-categories/:typeCode
 * 특정 DB 타입 카테고리 조회
 */
router.get("/:typeCode", authenticateToken, DbTypeCategoryController.getCategoryByTypeCode);

/**
 * POST /api/db-type-categories
 * DB 타입 카테고리 생성
 */
router.post("/", authenticateToken, DbTypeCategoryController.createCategory);

/**
 * POST /api/db-type-categories/initialize
 * 기본 DB 타입 카테고리 초기화
 */
router.post("/initialize", authenticateToken, DbTypeCategoryController.initializeDefaultCategories);

/**
 * PUT /api/db-type-categories/:typeCode
 * DB 타입 카테고리 수정
 */
router.put("/:typeCode", authenticateToken, DbTypeCategoryController.updateCategory);

/**
 * DELETE /api/db-type-categories/:typeCode
 * DB 타입 카테고리 삭제 (비활성화)
 */
router.delete("/:typeCode", authenticateToken, DbTypeCategoryController.deleteCategory);

export default router;
