inventory.py 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. from typing import Optional
  2. from pydantic import BaseModel, Field
  3. class InboundOutboundBase(BaseModel):
  4. date: str = Field(max_length=255)
  5. partner_company: str = Field(max_length=255, alias="partnerCompany")
  6. business_type: str = Field(max_length=255, alias="businessType")
  7. product_id: Optional[str] = Field(default=None, alias="productId")
  8. product: str = Field(max_length=255)
  9. specification: Optional[str] = Field(default=None, max_length=255)
  10. quantity: float = Field()
  11. plan_no: Optional[str] = Field(default=None, max_length=255, alias="planNo")
  12. batch_no: Optional[str] = Field(default=None, max_length=255, alias="batchNo")
  13. vehicle_no: str = Field(max_length=255, alias="vehicleNo")
  14. status: Optional[str] = Field(default=None, max_length=50)
  15. remarks: Optional[str] = Field(default=None)
  16. purchase_plan_id: Optional[str] = Field(default=None, alias="purchasePlanId")
  17. model_config = {"from_attributes": True, "populate_by_name": True}
  18. class InboundOutboundCreate(BaseModel):
  19. date: str = Field(max_length=255)
  20. partner_company: str = Field(max_length=255, alias="partnerCompany")
  21. business_type: str = Field(max_length=255, alias="businessType")
  22. product_id: str = Field(alias="productId")
  23. quantity: float = Field()
  24. plan_no: Optional[str] = Field(default=None, max_length=255, alias="planNo")
  25. batch_no: Optional[str] = Field(default=None, max_length=255, alias="batchNo")
  26. vehicle_no: str = Field(max_length=255, alias="vehicleNo")
  27. status: Optional[str] = Field(default=None, max_length=50)
  28. remarks: Optional[str] = Field(default=None)
  29. purchase_plan_id: Optional[str] = Field(default=None, alias="purchasePlanId")
  30. model_config = {"populate_by_name": True}
  31. class InboundOutboundUpdate(BaseModel):
  32. date: Optional[str] = Field(default=None, max_length=255)
  33. partner_company: Optional[str] = Field(default=None, max_length=255, alias="partnerCompany")
  34. business_type: Optional[str] = Field(default=None, max_length=255, alias="businessType")
  35. product_id: Optional[str] = Field(default=None, alias="productId")
  36. product: Optional[str] = Field(default=None, max_length=255)
  37. specification: Optional[str] = Field(default=None, max_length=255)
  38. quantity: Optional[float] = Field(default=None)
  39. plan_no: Optional[str] = Field(default=None, max_length=255, alias="planNo")
  40. batch_no: Optional[str] = Field(default=None, max_length=255, alias="batchNo")
  41. vehicle_no: Optional[str] = Field(default=None, max_length=255, alias="vehicleNo")
  42. status: Optional[str] = Field(default=None, max_length=50)
  43. remarks: Optional[str] = Field(default=None)
  44. purchase_plan_id: Optional[str] = Field(default=None, alias="purchasePlanId")
  45. model_config = {"populate_by_name": True}
  46. class CreateLinkForPlanPayload(BaseModel):
  47. purchase_plan_id: str = Field(alias="purchasePlanId")
  48. remarks: Optional[str] = None
  49. model_config = {"populate_by_name": True}
  50. class InboundOutboundRead(InboundOutboundBase):
  51. id: str
  52. is_deleted: int = Field(default=0, alias="isDeleted")
  53. created_at: str = Field(alias="createdAt")
  54. create_by: Optional[str] = Field(default=None, alias="createBy")
  55. create_by_name: Optional[str] = Field(default=None, alias="createByName")
  56. gross_weight: Optional[float] = Field(default=None, alias="grossWeight")
  57. tare_weight: Optional[float] = Field(default=None, alias="tareWeight")
  58. deduction: Optional[float] = Field(default=None)
  59. net_weight: Optional[float] = Field(default=None, alias="netWeight")
  60. gross_weight_time: Optional[str] = Field(default=None, alias="grossWeightTime")
  61. tare_weight_time: Optional[str] = Field(default=None, alias="tareWeightTime")
  62. has_weighing_slip: bool = Field(default=False, alias="hasWeighingSlip")
  63. site_feedback_remark: Optional[str] = Field(default=None, alias="siteFeedbackRemark")
  64. site_feedback_images: Optional[list[str]] = Field(default=None, alias="siteFeedbackImages")
  65. site_feedback_time: Optional[str] = Field(default=None, alias="siteFeedbackTime")