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:
hankin
2026-05-11 07:24:19 +00:00
parent 0f4c6b7924
commit 815cbf9d8c
2526 changed files with 11875 additions and 804148 deletions
+13
View File
@@ -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