contract_store.py 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. import re
  2. from pydantic import BaseModel, Field, field_validator
  3. class TemplatesCreate(BaseModel):
  4. """模板创建请求模型"""
  5. store_id: int = Field(gt=0, description="入驻店铺ID")
  6. store_name: str = Field(description="商家店铺名称")
  7. business_segment: str = Field(description="入驻店铺经营板块")
  8. merchant_name: str = Field(description="商家姓名")
  9. contact_phone: str = Field(description="联系电话")
  10. contract_url: str | None = Field(default=None, description="合同下载地址,合同文件id,以及签署状态")
  11. ord_id: str = Field(description="企业用户的统一社会信用代码")
  12. @field_validator("contact_phone")
  13. @classmethod
  14. def validate_contact_phone(cls, value: str) -> str:
  15. if not re.fullmatch(r"^1\d{10}$", value):
  16. raise ValueError("contact_phone 格式错误,应为11位手机号")
  17. return value
  18. @field_validator("ord_id")
  19. @classmethod
  20. def validate_ord_id(cls, value: str) -> str:
  21. if not re.fullmatch(r"^[0-9A-Z]{18}$", value):
  22. raise ValueError("ord_id 格式错误,应为18位大写字母或数字")
  23. return value
  24. class SignUrl(BaseModel):
  25. """签署合同页面请求模型"""
  26. sign_flow_id: str = Field(description="合同相关的签署id")
  27. contact_phone: str = Field(description="联系电话")