const express = require('express'); const router = express.Router(); const visitRequestController = require('../controllers/visitRequestController'); const { verifyToken } = require('../middlewares/authMiddleware'); // 모든 라우트에 인증 미들웨어 적용 router.use(verifyToken); // ==================== 출입 신청 관리 ==================== // 출입 신청 생성 router.post('/requests', visitRequestController.createVisitRequest); // 출입 신청 목록 조회 (필터: status, visit_date, start_date, end_date, requester_id, category_id) router.get('/requests', visitRequestController.getAllVisitRequests); // 출입 신청 상세 조회 router.get('/requests/:id', visitRequestController.getVisitRequestById); // 출입 신청 수정 router.put('/requests/:id', visitRequestController.updateVisitRequest); // 출입 신청 삭제 router.delete('/requests/:id', visitRequestController.deleteVisitRequest); // 출입 신청 승인 router.put('/requests/:id/approve', visitRequestController.approveVisitRequest); // 출입 신청 반려 router.put('/requests/:id/reject', visitRequestController.rejectVisitRequest); // ==================== 방문 목적 관리 ==================== // 모든 방문 목적 조회 router.get('/purposes', visitRequestController.getAllVisitPurposes); // 활성 방문 목적만 조회 router.get('/purposes/active', visitRequestController.getActiveVisitPurposes); // 방문 목적 추가 router.post('/purposes', visitRequestController.createVisitPurpose); // 방문 목적 수정 router.put('/purposes/:id', visitRequestController.updateVisitPurpose); // 방문 목적 삭제 router.delete('/purposes/:id', visitRequestController.deleteVisitPurpose); // ==================== 안전교육 기록 관리 ==================== // 안전교육 기록 생성 router.post('/training', visitRequestController.createTrainingRecord); // 안전교육 기록 목록 조회 (필터: training_date, start_date, end_date, trainer_id) router.get('/training', visitRequestController.getTrainingRecords); // 특정 출입 신청의 안전교육 기록 조회 router.get('/training/request/:requestId', visitRequestController.getTrainingRecordByRequestId); // 안전교육 기록 수정 router.put('/training/:id', visitRequestController.updateTrainingRecord); // 안전교육 완료 (서명 포함) router.post('/training/:id/complete', visitRequestController.completeTraining); module.exports = router;