schema.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from datetime import datetime
  2. from pydantic import BaseModel, ConfigDict, Field
  3. class InstitutionCreateSchema(BaseModel):
  4. """创建费控制度请求模型"""
  5. enterprise_id: str = Field(..., description="企业ID")
  6. institution_id: str | None = Field(default=None, description="费控规则ID")
  7. institution_name: str | None = Field(default=None, description="制度名称")
  8. institution_desc: str | None = Field(default=None, description="制度描述")
  9. scene_type: str | None = Field(default=None, description="因公场景")
  10. expense_type: str | None = Field(default=None, description="费用类型")
  11. expense_sub_type: str | None = Field(default=None, description="费用类型子类")
  12. status: str | None = Field(default=None, description="状态")
  13. effective: str | None = Field(default=None, description="是否启用: 0(停用)/1(启用)")
  14. effective_start_date: datetime | None = Field(default=None, description="制度生效起始时间")
  15. effective_end_date: datetime | None = Field(default=None, description="制度生效结束时间")
  16. consult_mode: str | None = Field(default=None, description="费控咨询模式")
  17. multi_employee_share_mode: str | None = Field(default=None, description="多员工分享模式")
  18. currency: str | None = Field(default=None, description="货币类型")
  19. grant_mode: str | None = Field(default=None, description="发放模式: manual(手动)/period(周期)")
  20. period_type: str | None = Field(default=None, description="周期类型")
  21. amount: float | None = Field(default=None, description="发放金额")
  22. single_limit: float | None = Field(default=None, description="单次消费限额")
  23. effective_time_type: str | None = Field(default=None, description="有效时间类型")
  24. applicable_scope: str | None = Field(default=None, description="适用范围")
  25. class InstitutionUpdateSchema(InstitutionCreateSchema):
  26. """更新费控制度请求模型"""
  27. pass
  28. class InstitutionListOutSchema(InstitutionCreateSchema):
  29. """费控制度列表输出模型"""
  30. model_config = ConfigDict(from_attributes=True)
  31. tenant_id: int = Field(description="租户ID")
  32. created_time: datetime | None = Field(default=None, description="创建时间")
  33. updated_time: datetime | None = Field(default=None, description="修改时间")