v0.2.0: CRM/ERP 系统升级 - 清理 .gitignore 并移除误提交的 venv/env/db 文件
- 更新 .gitignore:全面覆盖环境变量、数据库、日志、缓存、上传文件 - 移除误跟踪的 server/venv/、crm_data.db、.env 文件 - 新增 server/.env.example 模板 - 新增合同管理、利润核算、AI教练等功能模块 - 新增 Playwright e2e 测试套件 - 前后端多项功能升级和 bug 修复
This commit is contained in:
@@ -12,6 +12,16 @@ from typing import Any
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
# ── 开票信息子结构 ─────────────────────────────────────────
|
||||
class BillingInfoSchema(BaseModel):
|
||||
company_name: str | None = Field(default=None, max_length=200, description="开票公司全称")
|
||||
tax_id: str | None = Field(default=None, max_length=50, description="纳税人识别号")
|
||||
address: str | None = Field(default=None, max_length=300, description="地址")
|
||||
phone: str | None = Field(default=None, max_length=30, description="电话")
|
||||
bank_name: str | None = Field(default=None, max_length=200, description="开户行")
|
||||
bank_account: str | None = Field(default=None, max_length=50, description="银行账号")
|
||||
|
||||
|
||||
# ── 创建 ──────────────────────────────────────────────────
|
||||
class CustomerCreate(BaseModel):
|
||||
name: str = Field(..., min_length=1, max_length=200, examples=["中石化润滑油公司"])
|
||||
@@ -21,6 +31,7 @@ class CustomerCreate(BaseModel):
|
||||
phone: str | None = Field(default=None, max_length=30)
|
||||
email: str | None = Field(default=None, max_length=100)
|
||||
address: str | None = None
|
||||
billing_info: BillingInfoSchema | None = None
|
||||
status: int = Field(default=1, ge=0, le=1)
|
||||
|
||||
|
||||
@@ -33,6 +44,7 @@ class CustomerUpdate(BaseModel):
|
||||
phone: str | None = Field(default=None, max_length=30)
|
||||
email: str | None = Field(default=None, max_length=100)
|
||||
address: str | None = None
|
||||
billing_info: BillingInfoSchema | None = None
|
||||
status: int | None = Field(default=None, ge=0, le=1)
|
||||
|
||||
|
||||
@@ -48,6 +60,7 @@ class CustomerResponse(BaseModel):
|
||||
address: str | None = None
|
||||
ai_score: float = 0
|
||||
ai_persona: dict[str, Any] | None = None
|
||||
billing_info: dict[str, Any] | None = None
|
||||
owner_id: uuid.UUID | None = None
|
||||
owner_name: str | None = None
|
||||
status: int = 1
|
||||
|
||||
Reference in New Issue
Block a user