覆盖所有模块: - api 层:17 个路由文件,每个接口标注用途、参数、返回值、权限 - services 层:18 个服务文件,每个方法标注作用、参数、返回值、调用方 - repositories 层:13 个仓储文件,每个方法标注查询逻辑和被调用方 - schemas 层:11 个请求/响应体文件,每个字段标注业务含义 - core 层:config、security、exceptions、responses、error_codes - models 层:19 个 ORM 模型类,每个表标注业务含义和关联关系 - scripts:bootstrap_data、smoke_check - migrations:env.py 和版本迁移文件 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
81 lines
1.8 KiB
Python
81 lines
1.8 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
|
||
"""账期天数,用于月结场景"""
|
||
|
||
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
|
||
"""账期天数"""
|
||
|
||
customer_type: str | None = None
|
||
"""客户类型"""
|
||
|
||
salesman_id: int | None = None
|
||
"""所属业务员 ID"""
|
||
|
||
credit_limit: float = 0
|
||
"""信用额度"""
|
||
|
||
remark: str | None = None
|
||
"""备注信息"""
|