Files
geMoldInsight/src/api/inventory/schemas/purchase_order_schemas.py
T

62 lines
1.3 KiB
Python
Raw Normal View History

2026-03-08 22:58:25 +08:00
from pydantic import BaseModel
from typing import Optional, List
from datetime import datetime
class PurchaseOrderItemCreate(BaseModel):
product_id: int
quantity: int
unit_price: float
remark: Optional[str] = None
class PurchaseOrderCreate(BaseModel):
supplier_id: int
expected_date: Optional[datetime] = None
remark: Optional[str] = None
items: List[PurchaseOrderItemCreate]
class PurchaseOrderResponse(BaseModel):
id: int
order_no: str
supplier_name: str
order_date: datetime
expected_date: Optional[datetime]
status: str
total_amount: float
paid_amount: float
remark: Optional[str]
created_at: datetime
class Config:
from_attributes = True
2026-03-17 22:20:56 +08:00
class PurchaseOrderItemResponse(BaseModel):
id: int
product_id: int
product_sku: str
product_name: str
quantity: int
received_quantity: int
unit_price: float
amount: float
remark: Optional[str] = None
class PurchaseOrderDetailResponse(PurchaseOrderResponse):
supplier_id: int
items: List[PurchaseOrderItemResponse]
class PurchaseOrderReceiveItem(BaseModel):
item_id: int
receive_quantity: int
class PurchaseOrderReceiveRequest(BaseModel):
warehouse_id: Optional[int] = None
items: List[PurchaseOrderReceiveItem]
remark: Optional[str] = None