Files
shanxia2.0/backend/app/schemas/db/inventory.py
T
2026-08-04 14:02:01 +08:00

81 lines
4.0 KiB
Python

from typing import Optional
from pydantic import BaseModel, Field
class InboundOutboundBase(BaseModel):
date: str = Field(max_length=255)
partner_company: str = Field(max_length=255, alias="partnerCompany")
business_type: str = Field(max_length=255, alias="businessType")
product_id: Optional[str] = Field(default=None, alias="productId")
product: str = Field(max_length=255)
specification: Optional[str] = Field(default=None, max_length=255)
quantity: float = Field()
plan_no: Optional[str] = Field(default=None, max_length=255, alias="planNo")
batch_no: Optional[str] = Field(default=None, max_length=255, alias="batchNo")
vehicle_no: str = Field(max_length=255, alias="vehicleNo")
status: Optional[str] = Field(default=None, max_length=50)
remarks: Optional[str] = Field(default=None)
purchase_plan_id: Optional[str] = Field(default=None, alias="purchasePlanId")
model_config = {"from_attributes": True, "populate_by_name": True}
class InboundOutboundCreate(BaseModel):
date: str = Field(max_length=255)
partner_company: str = Field(max_length=255, alias="partnerCompany")
business_type: str = Field(max_length=255, alias="businessType")
product_id: str = Field(alias="productId")
quantity: float = Field()
plan_no: Optional[str] = Field(default=None, max_length=255, alias="planNo")
batch_no: Optional[str] = Field(default=None, max_length=255, alias="batchNo")
vehicle_no: str = Field(max_length=255, alias="vehicleNo")
status: Optional[str] = Field(default=None, max_length=50)
remarks: Optional[str] = Field(default=None)
purchase_plan_id: Optional[str] = Field(default=None, alias="purchasePlanId")
model_config = {"populate_by_name": True}
class InboundOutboundUpdate(BaseModel):
date: Optional[str] = Field(default=None, max_length=255)
partner_company: Optional[str] = Field(default=None, max_length=255, alias="partnerCompany")
business_type: Optional[str] = Field(default=None, max_length=255, alias="businessType")
product_id: Optional[str] = Field(default=None, alias="productId")
product: Optional[str] = Field(default=None, max_length=255)
specification: Optional[str] = Field(default=None, max_length=255)
quantity: Optional[float] = Field(default=None)
plan_no: Optional[str] = Field(default=None, max_length=255, alias="planNo")
batch_no: Optional[str] = Field(default=None, max_length=255, alias="batchNo")
vehicle_no: Optional[str] = Field(default=None, max_length=255, alias="vehicleNo")
status: Optional[str] = Field(default=None, max_length=50)
remarks: Optional[str] = Field(default=None)
purchase_plan_id: Optional[str] = Field(default=None, alias="purchasePlanId")
model_config = {"populate_by_name": True}
class CreateLinkForPlanPayload(BaseModel):
purchase_plan_id: str = Field(alias="purchasePlanId")
remarks: Optional[str] = None
model_config = {"populate_by_name": True}
class InboundOutboundRead(InboundOutboundBase):
id: str
is_deleted: int = Field(default=0, alias="isDeleted")
created_at: str = Field(alias="createdAt")
create_by: Optional[str] = Field(default=None, alias="createBy")
create_by_name: Optional[str] = Field(default=None, alias="createByName")
gross_weight: Optional[float] = Field(default=None, alias="grossWeight")
tare_weight: Optional[float] = Field(default=None, alias="tareWeight")
deduction: Optional[float] = Field(default=None)
net_weight: Optional[float] = Field(default=None, alias="netWeight")
gross_weight_time: Optional[str] = Field(default=None, alias="grossWeightTime")
tare_weight_time: Optional[str] = Field(default=None, alias="tareWeightTime")
has_weighing_slip: bool = Field(default=False, alias="hasWeighingSlip")
site_feedback_remark: Optional[str] = Field(default=None, alias="siteFeedbackRemark")
site_feedback_images: Optional[list[str]] = Field(default=None, alias="siteFeedbackImages")
site_feedback_time: Optional[str] = Field(default=None, alias="siteFeedbackTime")