// 수집 관리 라우트
// 작성일: 2024-12-23

import { Router } from 'express';
import { CollectionController } from '../controllers/collectionController';
import { authenticateToken } from '../middleware/authMiddleware';

const router = Router();

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

/**
 * GET /api/collections
 * 수집 설정 목록 조회
 */
router.get('/', CollectionController.getCollectionConfigs);

/**
 * GET /api/collections/:id
 * 수집 설정 상세 조회
 */
router.get('/:id', CollectionController.getCollectionConfigById);

/**
 * POST /api/collections
 * 수집 설정 생성
 */
router.post('/', CollectionController.createCollectionConfig);

/**
 * PUT /api/collections/:id
 * 수집 설정 수정
 */
router.put('/:id', CollectionController.updateCollectionConfig);

/**
 * DELETE /api/collections/:id
 * 수집 설정 삭제
 */
router.delete('/:id', CollectionController.deleteCollectionConfig);

/**
 * POST /api/collections/:id/execute
 * 수집 작업 실행
 */
router.post('/:id/execute', CollectionController.executeCollection);

/**
 * GET /api/collections/jobs
 * 수집 작업 목록 조회
 */
router.get('/jobs/list', CollectionController.getCollectionJobs);

/**
 * GET /api/collections/:configId/history
 * 수집 이력 조회
 */
router.get('/:configId/history', CollectionController.getCollectionHistory);

export default router;
