93 lines
2.2 KiB
Python
93 lines
2.2 KiB
Python
"""
|
||
客户模块请求模型
|
||
|
||
定义客户管理相关的请求体数据模型,供 customers 路由使用。
|
||
包含客户的创建、更新和批量导入操作的请求体。
|
||
"""
|
||
|
||
from pydantic import BaseModel
|
||
|
||
|
||
class CreateCustomerRequest(BaseModel):
|
||
"""创建客户请求体。被 POST /api/customers 路由使用。"""
|
||
|
||
customer_name: str
|
||
"""客户名称"""
|
||
|
||
mobile: str
|
||
"""客户联系电话"""
|
||
|
||
address: str | None = None
|
||
"""客户地址,可选"""
|
||
|
||
settlement_type: str | None = None
|
||
"""结算方式(如现结、月结等)"""
|
||
|
||
settlement_days: int = 0
|
||
"""账期天数,用于月结场景"""
|
||
|
||
settlement_day_of_month: int | None = None
|
||
"""每月结算日(1-28),用于月结模式"""
|
||
|
||
reminder_day_of_month: int | None = None
|
||
"""每月提醒日(1-28),用于月结模式"""
|
||
|
||
customer_type: str | None = None
|
||
"""客户类型(如普通客户、VIP 客户等)"""
|
||
|
||
salesman_id: int | None = None
|
||
"""所属业务员 ID"""
|
||
|
||
credit_limit: float = 0
|
||
"""信用额度"""
|
||
|
||
remark: str | None = None
|
||
"""备注信息"""
|
||
|
||
|
||
class ImportCustomerRequest(BaseModel):
|
||
"""批量导入客户请求体。被 POST /api/customers/import 路由使用。"""
|
||
|
||
file_url: str
|
||
"""导入文件的 URL(Excel 文件)"""
|
||
|
||
import_mode: str = "skip_duplicate"
|
||
"""导入模式:skip_duplicate-跳过重复,cover-覆盖重复"""
|
||
|
||
|
||
class UpdateCustomerRequest(BaseModel):
|
||
"""更新客户请求体。被 PUT /api/customers/{id} 路由使用。"""
|
||
|
||
customer_name: str
|
||
"""客户名称"""
|
||
|
||
mobile: str
|
||
"""客户联系电话"""
|
||
|
||
address: str | None = None
|
||
"""客户地址,可选"""
|
||
|
||
settlement_type: str | None = None
|
||
"""结算方式"""
|
||
|
||
settlement_days: int = 0
|
||
"""账期天数"""
|
||
|
||
settlement_day_of_month: int | None = None
|
||
"""每月结算日(1-28),用于月结模式"""
|
||
|
||
reminder_day_of_month: int | None = None
|
||
"""每月提醒日(1-28),用于月结模式"""
|
||
|
||
customer_type: str | None = None
|
||
"""客户类型"""
|
||
|
||
salesman_id: int | None = None
|
||
"""所属业务员 ID"""
|
||
|
||
credit_limit: float = 0
|
||
"""信用额度"""
|
||
|
||
remark: str | None = None
|
||
"""备注信息"""
|