storage_occupancy.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. """库位占用记录 schemas"""
  2. from datetime import datetime
  3. from typing import Optional
  4. from pydantic import BaseModel, ConfigDict, Field
  5. class OccupancyCreateBody(BaseModel):
  6. """手动入库请求"""
  7. model_config = ConfigDict(populate_by_name=True)
  8. slot_id: str = Field(..., alias="slotId")
  9. item_type: str = Field("other", alias="itemType")
  10. item_code: str = Field(..., alias="itemCode")
  11. item_name: str = Field(..., alias="itemName")
  12. item_source: str = Field("manual", alias="itemSource")
  13. remark: Optional[str] = None
  14. class OccupancyListQuery(BaseModel):
  15. """占用记录查询"""
  16. model_config = ConfigDict(populate_by_name=True)
  17. slot_id: str = Field(..., alias="slotId")
  18. occupancy_status: Optional[str] = Field("stored", alias="occupancyStatus")
  19. item_type: Optional[str] = Field(None, alias="itemType")
  20. page: int = 1
  21. page_size: int = Field(20, alias="pageSize")
  22. class OccupancyHistoryQuery(BaseModel):
  23. """出入库历史查询"""
  24. model_config = ConfigDict(populate_by_name=True)
  25. slot_id: Optional[str] = Field(None, alias="slotId")
  26. facility_node_id: Optional[str] = Field(None, alias="facilityNodeId")
  27. item_type: Optional[str] = Field(None, alias="itemType")
  28. start_date: Optional[str] = Field(None, alias="startDate")
  29. end_date: Optional[str] = Field(None, alias="endDate")
  30. page: int = 1
  31. page_size: int = Field(20, alias="pageSize")