/**
 * 세금계산서 라우터
 * /api/tax-invoice 경로 처리
 */

import { Router } from "express";
import { TaxInvoiceController } from "../controllers/taxInvoiceController";
import { authenticateToken } from "../middleware/authMiddleware";

const router = Router();

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

// 목록 조회
router.get("/", TaxInvoiceController.getList);

// 월별 통계 (상세 조회보다 먼저 정의해야 함)
router.get("/stats/monthly", TaxInvoiceController.getMonthlyStats);

// 비용 유형별 통계
router.get("/stats/cost-type", TaxInvoiceController.getCostTypeStats);

// 상세 조회
router.get("/:id", TaxInvoiceController.getById);

// 생성
router.post("/", TaxInvoiceController.create);

// 수정
router.put("/:id", TaxInvoiceController.update);

// 삭제
router.delete("/:id", TaxInvoiceController.delete);

// 발행
router.post("/:id/issue", TaxInvoiceController.issue);

// 취소
router.post("/:id/cancel", TaxInvoiceController.cancel);

export default router;

