/**
 * 차량 운행 이력 및 리포트 라우트
 */
import { Router } from "express";
import {
  startTrip,
  endTrip,
  addTripLocation,
  getTripList,
  getTripDetail,
  getActiveTrip,
  cancelTrip,
} from "../controllers/vehicleTripController";
import {
  getDailyReport,
  getWeeklyReport,
  getMonthlyReport,
  getSummaryReport,
  getDriverReport,
  getRouteReport,
} from "../controllers/vehicleReportController";
import { authenticateToken } from "../middleware/authMiddleware";

const router = Router();

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

// === 운행 관리 ===
// 운행 시작
router.post("/trip/start", startTrip);

// 운행 종료
router.post("/trip/end", endTrip);

// 위치 기록 추가 (연속 추적)
router.post("/trip/location", addTripLocation);

// 활성 운행 조회 (현재 진행 중)
router.get("/trip/active", getActiveTrip);

// 운행 취소
router.post("/trip/cancel", cancelTrip);

// 운행 이력 목록 조회
router.get("/trips", getTripList);

// 운행 상세 조회 (경로 포함)
router.get("/trips/:tripId", getTripDetail);

// === 리포트 ===
// 요약 통계 (대시보드용)
router.get("/reports/summary", getSummaryReport);

// 일별 통계
router.get("/reports/daily", getDailyReport);

// 주별 통계
router.get("/reports/weekly", getWeeklyReport);

// 월별 통계
router.get("/reports/monthly", getMonthlyReport);

// 운전자별 통계
router.get("/reports/by-driver", getDriverReport);

// 구간별 통계
router.get("/reports/by-route", getRouteReport);

export default router;

