// patrolRoutes.js // 일일순회점검 시스템 라우트 const express = require('express'); const router = express.Router(); const patrolController = require('../controllers/patrolController'); // ==================== 순회점검 세션 ==================== // 세션 목록 조회 // GET /patrol/sessions?patrol_date=2026-02-04&patrol_time=morning&category_id=1 router.get('/sessions', patrolController.getSessions); // 세션 시작/조회 (POST로 생성하거나 기존 세션 반환) // POST /patrol/sessions { patrol_date, patrol_time, category_id } router.post('/sessions', patrolController.getOrCreateSession); // 세션 상세 조회 router.get('/sessions/:sessionId', patrolController.getSession); // 세션 완료 router.patch('/sessions/:sessionId/complete', patrolController.completeSession); // 세션 메모 업데이트 router.patch('/sessions/:sessionId/notes', patrolController.updateSessionNotes); // 세션별 작업장 점검 현황 router.get('/sessions/:sessionId/workplace-status', patrolController.getWorkplaceCheckStatus); // ==================== 체크리스트 항목 ==================== // 체크리스트 항목 조회 (필터링 가능) // GET /patrol/checklist?category_id=1&workplace_id=2 router.get('/checklist', patrolController.getChecklistItems); // 체크리스트 항목 CRUD router.post('/checklist', patrolController.createChecklistItem); router.put('/checklist/:itemId', patrolController.updateChecklistItem); router.delete('/checklist/:itemId', patrolController.deleteChecklistItem); // ==================== 체크 기록 ==================== // 세션별 체크 기록 조회 // GET /patrol/sessions/:sessionId/records?workplace_id=1 router.get('/sessions/:sessionId/records', patrolController.getCheckRecords); // 체크 기록 저장 (단건) router.post('/sessions/:sessionId/records', patrolController.saveCheckRecord); // 체크 기록 일괄 저장 router.post('/sessions/:sessionId/records/batch', patrolController.saveCheckRecords); // ==================== 작업장 물품 현황 ==================== // 작업장별 물품 조회 router.get('/workplaces/:workplaceId/items', patrolController.getWorkplaceItems); // 물품 CRUD router.post('/workplaces/:workplaceId/items', patrolController.createWorkplaceItem); router.put('/items/:itemId', patrolController.updateWorkplaceItem); router.delete('/items/:itemId', patrolController.deleteWorkplaceItem); // ==================== 물품 유형 ==================== // 물품 유형 목록 router.get('/item-types', patrolController.getItemTypes); // ==================== 대시보드/통계 ==================== // 오늘 순회점검 현황 router.get('/today-status', patrolController.getTodayStatus); module.exports = router;