dingdanquanliucheng/backend/app/schemas/orders.py
2026-05-14 13:51:06 +08:00

66 lines
1.6 KiB
Python

from pydantic import BaseModel, Field
class OrderListQuery(BaseModel):
order_status: str | None = None
customer_name: str | None = None
customer_mobile: str | None = None
salesman_id: int | None = None
factory_id: int | None = None
order_source: str | None = None
start_time: str | None = None
end_time: str | None = None
page_no: int = 1
page_size: int = 20
class OrderItemPayload(BaseModel):
product_id: int | None = None
product_name: str
specification: str
unit: str
quantity: float
sale_price: float
cost_price: float
rebate_amount: float = 0
freight_amount: float = 0
tax_amount: float = 0
other_fee_amount: float = 0
remark: str | None = None
class CreateOrderRequest(BaseModel):
customer_name: str
customer_mobile: str
customer_address: str | None = None
order_source: str | None = None
delivery_type: str | None = None
factory_id: int | None = None
commission_amount: float = 0
rebate_total: float = 0
freight_total: float = 0
tax_total: float = 0
other_fee_total: float = 0
remark: str | None = None
items: list[OrderItemPayload] = Field(default_factory=list)
class CancelOrderRequest(BaseModel):
cancel_reason: str
cancel_opinion: str | None = None
class ApproveOrderRequest(BaseModel):
approve_result: str
approve_opinion: str | None = None
class SupplierTextRequest(BaseModel):
supplier_id: int
class ConfirmSupplierTextRequest(BaseModel):
supplier_id: int
text_content: str
remark: str | None = None