77 lines
2.9 KiB
Python
77 lines
2.9 KiB
Python
"""
|
||
佣金结算单相关Pydantic模型
|
||
"""
|
||
from datetime import date, datetime
|
||
from typing import Optional, List
|
||
from pydantic import BaseModel, Field
|
||
|
||
|
||
class SettlementBase(BaseModel):
|
||
"""佣金结算单基础模型"""
|
||
settlement_no: str = Field(..., description="结算单号")
|
||
streamer_id: str = Field(..., description="主播ID")
|
||
streamer_name: str = Field(..., description="主播姓名")
|
||
streamer_entity_type: str = Field(..., description="主播主体类型")
|
||
settlement_period: str = Field(..., description="结算周期(YYYY-MM)")
|
||
settlement_start_date: date = Field(..., description="结算开始日期")
|
||
settlement_end_date: date = Field(..., description="结算结束日期")
|
||
order_count: int = Field(..., description="订单数量")
|
||
total_sales: float = Field(..., description="总销售额")
|
||
total_commission: float = Field(..., description="总佣金")
|
||
platform_service_fee: float = Field(..., description="平台服务费")
|
||
actual_settlement_amount: float = Field(..., description="实际结算金额")
|
||
tax_withholding: float = Field(..., description="代扣代缴税费")
|
||
payment_method: str = Field(..., description="付款方式")
|
||
payment_account_no: str = Field(..., description="付款账号")
|
||
payment_account_name: str = Field(..., description="付款账户名")
|
||
payment_time: Optional[datetime] = Field(None, description="付款时间")
|
||
payment_status: str = Field(..., description="付款状态")
|
||
settlement_status: str = Field(..., description="结算状态")
|
||
remark: Optional[str] = Field(None, description="备注")
|
||
|
||
|
||
class SettlementCreate(SettlementBase):
|
||
"""创建佣金结算单"""
|
||
pass
|
||
|
||
|
||
class SettlementUpdate(BaseModel):
|
||
"""更新佣金结算单"""
|
||
settlement_no: Optional[str] = None
|
||
streamer_id: Optional[str] = None
|
||
streamer_name: Optional[str] = None
|
||
streamer_entity_type: Optional[str] = None
|
||
settlement_period: Optional[str] = None
|
||
settlement_start_date: Optional[date] = None
|
||
settlement_end_date: Optional[date] = None
|
||
order_count: Optional[int] = None
|
||
total_sales: Optional[float] = None
|
||
total_commission: Optional[float] = None
|
||
platform_service_fee: Optional[float] = None
|
||
actual_settlement_amount: Optional[float] = None
|
||
tax_withholding: Optional[float] = None
|
||
payment_method: Optional[str] = None
|
||
payment_account_no: Optional[str] = None
|
||
payment_account_name: Optional[str] = None
|
||
payment_time: Optional[datetime] = None
|
||
payment_status: Optional[str] = None
|
||
settlement_status: Optional[str] = None
|
||
remark: Optional[str] = None
|
||
|
||
|
||
class SettlementResponse(SettlementBase):
|
||
"""佣金结算单响应模型"""
|
||
id: int
|
||
settlement_id: str
|
||
|
||
class Config:
|
||
from_attributes = True
|
||
|
||
|
||
class SettlementListResponse(BaseModel):
|
||
"""佣金结算单列表响应模型"""
|
||
records: List[SettlementResponse]
|
||
total: int
|
||
page: int
|
||
size: int
|