base_schema.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # -*- coding: utf-8 -*-
  2. from pydantic import BaseModel, ConfigDict, Field
  3. from app.core.validator import DateTimeStr
  4. class UserInfoSchema(BaseModel):
  5. """用户信息模型"""
  6. model_config = ConfigDict(from_attributes=True)
  7. id: int | None = Field(default=None, description="用户ID")
  8. name: str | None = Field(default=None, description="用户姓名")
  9. username: str | None = Field(default=None, description="用户名")
  10. class CommonSchema(BaseModel):
  11. """通用信息模型"""
  12. model_config = ConfigDict(from_attributes=True)
  13. id: int = Field(description="编号ID")
  14. name: str = Field(description="名称")
  15. class BaseSchema(BaseModel):
  16. """通用输出模型,包含基础字段和审计字段"""
  17. model_config = ConfigDict(from_attributes=True)
  18. id: int | None = Field(default=None, description="主键ID")
  19. uuid: str | None = Field(default=None, description="UUID")
  20. status: str = Field(default="0", description="状态")
  21. description: str | None = Field(default=None, description="描述")
  22. created_time: DateTimeStr | None = Field(default=None, description="创建时间")
  23. updated_time: DateTimeStr | None = Field(default=None, description="更新时间")
  24. class UserBySchema(BaseModel):
  25. """通用创建模型,包含基础字段和审计字段"""
  26. model_config = ConfigDict(from_attributes=True)
  27. created_id: int | None = Field(default=None, description="创建人ID")
  28. created_by: UserInfoSchema | None = Field(default=None, description="创建人信息")
  29. updated_id: int | None = Field(default=None, description="更新人ID")
  30. updated_by: UserInfoSchema | None = Field(default=None, description="更新人信息")
  31. class BatchSetAvailable(BaseModel):
  32. """批量设置可用状态的请求模型"""
  33. ids: list[int] = Field(default_factory=list, description="ID列表")
  34. status: str = Field(default="0", description="是否可用")
  35. class UploadResponseSchema(BaseModel):
  36. """上传响应模型"""
  37. model_config = ConfigDict(from_attributes=True)
  38. file_path: str | None = Field(default=None, description='新文件映射路径')
  39. file_name: str | None = Field(default=None, description='新文件名称')
  40. origin_name: str | None = Field(default=None, description='原文件名称')
  41. file_url: str | None = Field(default=None, description='新文件访问地址')
  42. class DownloadFileSchema(BaseModel):
  43. """下载文件模型"""
  44. file_path: str = Field(..., description='新文件映射路径')
  45. file_name: str = Field(..., description='新文件名称')