const express = require('express');
const router = express.Router();
const AttendanceController = require('../controllers/attendanceController');
const { verifyToken } = require('../middlewares/auth');

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

// 일일 근태 현황 조회 (대시보드용)
router.get('/daily-status', AttendanceController.getDailyAttendanceStatus);

// 일일 근태 기록 조회
router.get('/daily-records', AttendanceController.getDailyAttendanceRecords);

// 기간별 근태 기록 조회 (월별 조회용)
router.get('/records', AttendanceController.getAttendanceRecordsByRange);

// 근태 기록 생성/업데이트
router.post('/records', AttendanceController.upsertAttendanceRecord);
router.put('/records', AttendanceController.upsertAttendanceRecord);

// 휴가 처리
router.post('/vacation', AttendanceController.processVacation);

// 초과근무 승인
router.post('/overtime/approve', AttendanceController.approveOvertime);

// 근로 유형 목록 조회
router.get('/attendance-types', AttendanceController.getAttendanceTypes);

// 휴가 유형 목록 조회
router.get('/vacation-types', AttendanceController.getVacationTypes);

// 작업자 휴가 잔여 조회
router.get('/vacation-balance/:user_id', AttendanceController.getWorkerVacationBalance);

// 월별 근태 통계
router.get('/monthly-stats', AttendanceController.getMonthlyAttendanceStats);

// 출근 체크 목록 조회 (아침용, 휴가 정보 포함)
router.get('/checkin-list', AttendanceController.getCheckinList);

// 출근 체크 일괄 저장
router.post('/checkins', AttendanceController.saveCheckins);

module.exports = router;
