o2o-negosium-original/negodata/backend/router/v1/supplier/protocol.py
Mina Choi 1f778ab975 [feat] negodata/backend: 상품·협력사·견적 도메인 CRUD + delivery_type 코드화 + 공용 /v1/enums
- item/supplier/quotation/quotation_setting CRUD·service·router 추가
- item protocol delivery_type str→int (ERD/스키마 SMALLINT 일치)
- DeliveryType enum + 한글 라벨, 공용 GET /v1/enums (도메인 코드 메타데이터)
- CompanyBrief → CompanyData 로 *Data 네이밍 통일
- CORS: WebServerConfig.client_url(단일) 도입 (config_models/router)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 15:58:38 +09:00

67 lines
1.6 KiB
Python

import uuid
from datetime import datetime
from typing import Optional
from pydantic import ConfigDict
from common.models.gmodel import Res_WebPacketProtocol, WebPacketProtocol
class SupplierProtocol(WebPacketProtocol):
pass
class Req_CreateSupplier(SupplierProtocol):
name: str = ""
code: Optional[str] = None
manager_name: Optional[str] = None
manager_email: Optional[str] = None
manager_contact_number: Optional[str] = None
priority: Optional[str] = None
class Req_UpdateSupplier(SupplierProtocol):
name: Optional[str] = None
code: Optional[str] = None
manager_name: Optional[str] = None
manager_email: Optional[str] = None
manager_contact_number: Optional[str] = None
priority: Optional[str] = None
class SupplierData(WebPacketProtocol):
model_config = ConfigDict(from_attributes=True)
supplier_id: uuid.UUID
company_id: uuid.UUID
user_id: uuid.UUID
name: str
code: Optional[str] = None
manager_name: Optional[str] = None
manager_email: Optional[str] = None
manager_contact_number: Optional[str] = None
priority: Optional[str] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
class Res_Supplier(Res_WebPacketProtocol):
supplier: Optional[SupplierData] = None
class Res_SupplierList(Res_WebPacketProtocol):
suppliers: list[SupplierData] = []
total: int = 0
page: int = 0
size: int = 0
class Res_DeleteSupplier(Res_WebPacketProtocol):
pass
class Res_ExcelUpload(Res_WebPacketProtocol):
received_filename: Optional[str] = None
status: str = ""
message: str = ""