contract_lawyer.py 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. from datetime import datetime
  2. from typing import Optional, List, Any
  3. from pydantic import BaseModel, Field
  4. class ContractItemResponse(BaseModel):
  5. contract_url: str = Field(description="合同模板链接")
  6. file_name: str = Field(description="文件名称")
  7. file_id: str = Field(description="文件ID")
  8. status: int = Field(description="签署状态")
  9. sign_flow_id: str = Field(description="签署流程ID")
  10. sign_url: str = Field(default="", description="签署页面")
  11. signing_time: str = Field(default="", description="签署时间")
  12. effective_time: str = Field(default="", description="生效时间")
  13. expiry_time: str = Field(default="", description="到期时间")
  14. contract_download_url: str = Field(default="", description="已签下载链接")
  15. is_master: int = Field(description="主合同标识")
  16. contract_type: Optional[str] = Field(default=None, description="合同类型")
  17. contract_name: Optional[str] = Field(default=None, description="合同名称")
  18. class LawyerContractResponse(BaseModel):
  19. id: int = Field(description="主键")
  20. lawyer_id: int = Field(description="律所ID")
  21. law_firm_name: str = Field(description="律所名称")
  22. business_segment: str = Field(description="业务板块")
  23. contact_name: str = Field(description="联系人姓名")
  24. contact_phone: str = Field(description="联系电话")
  25. signing_status: str = Field(description="签署状态")
  26. contract_url: str = Field(description="合同URL(JSON字符串)")
  27. ord_id: str = Field(description="统一社会信用代码")
  28. signing_time: Optional[datetime] = Field(default=None, description="签署时间")
  29. effective_time: Optional[datetime] = Field(default=None, description="生效时间")
  30. expiry_time: Optional[datetime] = Field(default=None, description="到期时间")
  31. created_time: Optional[datetime] = Field(default=None, description="创建时间")
  32. updated_time: Optional[datetime] = Field(default=None, description="更新时间")
  33. class Config:
  34. from_attributes = True
  35. class TemplatesCreateResponse(BaseModel):
  36. success: bool = Field(description="是否成功")
  37. message: str = Field(description="响应消息")
  38. sign_flow_id: Optional[str] = Field(default=None, description="签署流程ID")
  39. file_id: Optional[str] = Field(default=None, description="文件ID")
  40. contract_url: Optional[str] = Field(default=None, description="合同URL")
  41. created_contracts: Optional[List[dict]] = Field(default=None, description="本次创建的合同列表")
  42. class ErrorResponse(BaseModel):
  43. success: bool = Field(default=False, description="是否成功")
  44. message: str = Field(description="错误消息")
  45. raw: Optional[Any] = Field(default=None, description="原始错误数据")
  46. class SuccessResponse(BaseModel):
  47. code: str = Field(description="响应代码")
  48. msg: str = Field(description="响应消息")
  49. class PaginatedResponse(BaseModel):
  50. items: List[dict] = Field(description="数据列表")
  51. total: int = Field(description="总记录数")
  52. page: int = Field(description="当前页码")
  53. page_size: int = Field(description="每页条数")
  54. total_pages: int = Field(description="总页数")
  55. class ModuleStatusResponse(BaseModel):
  56. module: str = Field(description="模块名称")
  57. status: str = Field(description="状态")