const express = require('express'); const router = express.Router(); const visitRequestController = require('../controllers/visitRequestController'); const { requireAuth, requireAdmin, requirePage } = require('../middleware/auth'); router.use(requireAuth); // Visit requests CRUD router.post('/requests', requirePage('safety_visit_request'), visitRequestController.createVisitRequest); router.get('/requests', visitRequestController.getAllVisitRequests); router.get('/requests/:id', visitRequestController.getVisitRequestById); router.put('/requests/:id', requirePage('safety_visit_request'), visitRequestController.updateVisitRequest); router.delete('/requests/:id', requirePage('safety_visit_request'), visitRequestController.deleteVisitRequest); router.put('/requests/:id/approve', requireAdmin, visitRequestController.approveVisitRequest); router.put('/requests/:id/reject', requireAdmin, visitRequestController.rejectVisitRequest); // Check-in / Check-out router.put('/requests/:id/check-in', visitRequestController.checkIn); router.put('/requests/:id/check-out', visitRequestController.checkOut); // Entry Dashboard (통합 출입 현황) router.get('/entry-dashboard', visitRequestController.getEntryDashboard); router.get('/entry-dashboard/stats', visitRequestController.getEntryStats); // Categories & Workplaces router.get('/categories', visitRequestController.getAllCategories); router.get('/workplaces', visitRequestController.getWorkplaces); // Departments router.get('/departments', visitRequestController.getDepartments); // Visit purposes router.get('/purposes', visitRequestController.getAllVisitPurposes); router.get('/purposes/active', visitRequestController.getActiveVisitPurposes); router.post('/purposes', requireAdmin, visitRequestController.createVisitPurpose); router.put('/purposes/:id', requireAdmin, visitRequestController.updateVisitPurpose); router.delete('/purposes/:id', requireAdmin, visitRequestController.deleteVisitPurpose); // Training records router.post('/training', requireAdmin, visitRequestController.createTrainingRecord); router.get('/training', visitRequestController.getTrainingRecords); router.get('/training/request/:requestId', visitRequestController.getTrainingRecordByRequestId); router.put('/training/:id', requireAdmin, visitRequestController.updateTrainingRecord); router.post('/training/:id/complete', requireAdmin, visitRequestController.completeTraining); module.exports = router;