master_data.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from __future__ import annotations
  2. from pydantic import BaseModel, Field
  3. class CompanyBase(BaseModel):
  4. name: str = Field(min_length=1, max_length=255)
  5. remarks: str | None = Field(default=None)
  6. model_config = {"from_attributes": True}
  7. class CompanyCreate(CompanyBase):
  8. pass
  9. class CompanyUpdate(BaseModel):
  10. name: str | None = Field(default=None, min_length=1, max_length=255)
  11. remarks: str | None = Field(default=None)
  12. class CompanyRead(CompanyBase):
  13. id: int
  14. class CargoBase(BaseModel):
  15. name: str = Field(min_length=1, max_length=255)
  16. remarks: str | None = Field(default=None)
  17. model_config = {"from_attributes": True}
  18. class CargoCreate(CargoBase):
  19. pass
  20. class CargoUpdate(BaseModel):
  21. name: str | None = Field(default=None, min_length=1, max_length=255)
  22. remarks: str | None = Field(default=None)
  23. class CargoRead(CargoBase):
  24. id: int
  25. # ==================== 车牌号 ====================
  26. class VehicleBase(BaseModel):
  27. vehicle_no: str = Field(min_length=1, max_length=255, alias="vehicleNo")
  28. remarks: str | None = Field(default=None)
  29. model_config = {"from_attributes": True, "populate_by_name": True}
  30. class VehicleCreate(VehicleBase):
  31. pass
  32. class VehicleUpdate(BaseModel):
  33. vehicle_no: str | None = Field(default=None, min_length=1, max_length=255, alias="vehicleNo")
  34. remarks: str | None = Field(default=None)
  35. model_config = {"populate_by_name": True}
  36. class VehicleRead(VehicleBase):
  37. id: int