unit.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. """商品单位Schema"""
  2. from typing import Optional, List
  3. from pydantic import BaseModel, Field
  4. class UnitBase(BaseModel):
  5. """单位基础Schema"""
  6. name: str = Field(..., description="单位名称")
  7. code: str = Field(..., description="单位编码")
  8. is_active: bool = Field(True, description="是否启用")
  9. sort_order: int = Field(0, description="排序字段,数值越小越靠前")
  10. class UnitCreate(UnitBase):
  11. """创建单位"""
  12. pass
  13. class UnitUpdate(BaseModel):
  14. """更新单位"""
  15. name: Optional[str] = Field(None, description="单位名称")
  16. code: Optional[str] = Field(None, description="单位编码")
  17. is_active: Optional[bool] = Field(None, description="是否启用")
  18. sort_order: Optional[int] = Field(None, description="排序字段")
  19. class UnitResponse(UnitBase):
  20. """单位响应"""
  21. id: str
  22. create_at: Optional[str] = None
  23. create_by: Optional[str] = None
  24. create_name: Optional[str] = None
  25. update_at: Optional[str] = None
  26. update_by: Optional[str] = None
  27. class Config:
  28. from_attributes = True
  29. class UnitListResponse(BaseModel):
  30. """单位列表响应"""
  31. items: List[UnitResponse]
  32. total: int
  33. page: int
  34. pageSize: int
  35. totalPages: int