72 lines
1.5 KiB
TypeScript
72 lines
1.5 KiB
TypeScript
/**
|
|
* 차량 운행 이력 및 리포트 라우트
|
|
*/
|
|
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;
|
|
|