65 lines
1.7 KiB
Python
65 lines
1.7 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 SupplierItemProtocol(WebPacketProtocol):
|
|
pass
|
|
|
|
|
|
class Req_CreateSupplierItem(SupplierItemProtocol):
|
|
supplier_id: uuid.UUID
|
|
item_id: uuid.UUID
|
|
supply_type: int = 0
|
|
|
|
|
|
class Req_UpdateSupplyType(SupplierItemProtocol):
|
|
supply_type: int
|
|
|
|
|
|
class Req_BulkMapByNames(SupplierItemProtocol):
|
|
names: list[str] = []
|
|
|
|
|
|
class SupplierItemData(WebPacketProtocol):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
supplier_item_id: uuid.UUID
|
|
item_id: uuid.UUID
|
|
item_name: str
|
|
item_code: Optional[str] = None
|
|
supply_type: int
|
|
item_category: Optional[str] = None
|
|
item_manufacturer: Optional[str] = None
|
|
created_at: Optional[datetime] = None
|
|
updated_at: Optional[datetime] = None
|
|
|
|
|
|
class ItemSupplyType(WebPacketProtocol):
|
|
supplier_id: uuid.UUID
|
|
supply_type: int
|
|
supplier_name: Optional[str] = None
|
|
supplier_item_id: Optional[uuid.UUID] = None # 상품측 매핑 편집(수정/삭제)용
|
|
|
|
|
|
class Res_SupplierItem(Res_WebPacketProtocol):
|
|
supplier_item: Optional[SupplierItemData] = None
|
|
|
|
|
|
class Res_SupplierItemList(Res_WebPacketProtocol):
|
|
supplier_items: list[SupplierItemData] = []
|
|
|
|
|
|
class Res_ItemSupplyTypeList(Res_WebPacketProtocol):
|
|
suppliers: list[ItemSupplyType] = []
|
|
|
|
|
|
class Res_BulkMapByNames(Res_WebPacketProtocol):
|
|
created_count: int = 0
|
|
skipped_count: int = 0 # 이미 매핑돼 있어 건너뛴 상품 수
|
|
unmatched: list[str] = [] # 회사 상품 목록에 이름이 없어 매핑 못한 입력명들
|