dict_item_schema.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. """
  2. 字典项Schema定义
  3. """
  4. from pydantic import BaseModel, Field
  5. from typing import Optional
  6. from datetime import datetime
  7. class DictItemBase(BaseModel):
  8. """字典项基础模型"""
  9. dict_name: str = Field(..., max_length=512, description="字典名称")
  10. dict_value: str = Field(..., max_length=512, description="字典值")
  11. dict_desc: Optional[str] = Field(None, max_length=512, description="字典备注")
  12. category_id: str = Field(..., max_length=255, description="字典类型id")
  13. enable_flag: str = Field(default="1", max_length=1, description="启用标志位:1启用0禁用")
  14. sort: Optional[int] = Field(None, description="排序")
  15. class DictItemCreate(DictItemBase):
  16. """创建字典项请求模型"""
  17. pass
  18. class DictItemUpdate(BaseModel):
  19. """更新字典项请求模型"""
  20. dict_name: Optional[str] = Field(None, max_length=512, description="字典名称")
  21. dict_value: Optional[str] = Field(None, max_length=512, description="字典值")
  22. dict_desc: Optional[str] = Field(None, max_length=512, description="字典备注")
  23. category_id: Optional[str] = Field(None, max_length=255, description="字典类型id")
  24. enable_flag: Optional[str] = Field(None, max_length=1, description="启用标志位:1启用0禁用")
  25. sort: Optional[int] = Field(None, description="排序")
  26. class DictItemResponse(DictItemBase):
  27. """字典项响应模型"""
  28. dict_id: int = Field(..., description="字典id")
  29. del_flag: str = Field(default="0", description="删除标志位:1是0否")
  30. created_by: Optional[str] = Field(None, description="创建人")
  31. created_time: Optional[datetime] = Field(None, description="创建时间")
  32. updated_by: Optional[str] = Field(None, description="修改人")
  33. updated_time: Optional[datetime] = Field(None, description="修改时间")
  34. created_by_name: Optional[str] = Field(None, description="创建人姓名")
  35. updated_by_name: Optional[str] = Field(None, description="修改人姓名")
  36. category_name: Optional[str] = Field(None, description="字典类型名称")
  37. class Config:
  38. from_attributes = True
  39. class DictItemListRequest(BaseModel):
  40. """字典项列表查询请求"""
  41. category_id: Optional[str] = Field(None, description="字典类型id")
  42. keyword: Optional[str] = Field(None, description="关键字搜索")
  43. enable_flag: Optional[str] = Field(None, description="启用标志位")
  44. page: int = Field(default=1, ge=1, description="页码")
  45. page_size: int = Field(default=10, ge=1, le=100, description="每页数量")
  46. class DictItemBatchDeleteRequest(BaseModel):
  47. """批量删除字典项请求"""
  48. dict_ids: list[int] = Field(..., description="字典项id列表")