deep-risk/backend/app/schemas/settlement.py
2025-12-14 20:08:27 +08:00

77 lines
2.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
佣金结算单相关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