/**
 * 테이블 이력 조회 라우트
 */

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

const router = Router();

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

// 이력 테이블 존재 여부 확인
router.get("/:tableName/check", TableHistoryController.checkHistoryTableExists);

// 테이블 전체 이력 요약
router.get(
  "/:tableName/summary",
  TableHistoryController.getTableHistorySummary
);

// 전체 테이블 이력 조회 (레코드 ID 없이)
router.get("/:tableName/all", TableHistoryController.getAllTableHistory);

// 특정 레코드의 타임라인
router.get(
  "/:tableName/:recordId/timeline",
  TableHistoryController.getRecordTimeline
);

// 특정 레코드의 변경 이력 (상세)
router.get("/:tableName/:recordId", TableHistoryController.getRecordHistory);

export default router;
