from uuid import UUID from fastapi import APIRouter, Depends from common.models.gmodel import UserInfo from router.v1.validator.dependencies import IsValidAccessToken, RemoveNoneResponse from services.quotation_setting_service import QuotationSettingService from .protocol import ( Req_CreateQuotationSetting, Req_UpdateQuotationSetting, Res_DeleteQuotationSetting, Res_QuotationSetting, Res_QuotationSettingList, ) # 라우터(컨트롤러). 인증(Depends(IsValidAccessToken))으로 UserInfo 를 받아 user_id 로 스코프. router = APIRouter( prefix="/v1/quotation-setting", tags=["QuotationSetting"], responses={404: {"description": "Not found"}} ) @router.get(path="/list", response_model=Res_QuotationSettingList, summary="견적 설정 목록") async def list_settings(service: QuotationSettingService = Depends(), user_info: UserInfo = Depends(IsValidAccessToken)): return RemoveNoneResponse(await service.list_settings(user_info.user_id)) @router.post(path="/create", response_model=Res_QuotationSetting, summary="견적 설정 등록") async def create_setting( req: Req_CreateQuotationSetting, service: QuotationSettingService = Depends(), user_info: UserInfo = Depends(IsValidAccessToken), ): return RemoveNoneResponse(await service.create_setting(user_info.user_id, req)) @router.patch(path="/update/{qt_setting_id}", response_model=Res_QuotationSetting, summary="견적 설정 수정") async def update_setting( qt_setting_id: UUID, req: Req_UpdateQuotationSetting, service: QuotationSettingService = Depends(), user_info: UserInfo = Depends(IsValidAccessToken), ): return RemoveNoneResponse( await service.update_setting(user_info.user_id, str(qt_setting_id), req) ) @router.delete(path="/delete/{qt_setting_id}", response_model=Res_DeleteQuotationSetting, summary="견적 설정 삭제") async def delete_setting( qt_setting_id: UUID, service: QuotationSettingService = Depends(), user_info: UserInfo = Depends(IsValidAccessToken) ): return RemoveNoneResponse(await service.delete_setting(user_info.user_id, str(qt_setting_id)))