92 lines
4.9 KiB
Python
92 lines
4.9 KiB
Python
from typing import Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class PurchasePlanBase(BaseModel):
|
|
plan_no: Optional[str] = Field(default=None, max_length=255, alias="planNo")
|
|
plan_date: str = Field(max_length=255, alias="planDate")
|
|
start_date: Optional[str] = Field(default=None, max_length=255, alias="startDate")
|
|
end_date: Optional[str] = Field(default=None, max_length=255, alias="endDate")
|
|
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)
|
|
planned_quantity: float = Field(alias="plannedQuantity")
|
|
vehicle_no: Optional[str] = Field(default="", max_length=255, alias="vehicleNo")
|
|
customer_name: Optional[str] = Field(default=None, max_length=255, alias="customerName")
|
|
remarks: Optional[str] = Field(default=None)
|
|
execution_status: Optional[str] = Field(default=None, max_length=50, alias="executionStatus")
|
|
executed_at: Optional[str] = Field(default=None, max_length=255, alias="executedAt")
|
|
last_weighing_slip_id: Optional[str] = Field(default=None, alias="lastWeighingSlipId")
|
|
executed_quantity: Optional[float] = Field(default=0, alias="executedQuantity")
|
|
auto_generate_enabled: int = Field(default=0, alias="autoGenerateEnabled")
|
|
auto_generate_end_month: Optional[str] = Field(
|
|
default=None, max_length=7, alias="autoGenerateEndMonth"
|
|
)
|
|
auto_generate_last_month: Optional[str] = Field(
|
|
default=None, max_length=7, alias="autoGenerateLastMonth"
|
|
)
|
|
|
|
model_config = {"from_attributes": True, "populate_by_name": True}
|
|
|
|
|
|
class PurchasePlanCreate(BaseModel):
|
|
plan_no: Optional[str] = Field(default=None, max_length=255, alias="planNo")
|
|
plan_date: str = Field(max_length=255, alias="planDate")
|
|
start_date: Optional[str] = Field(default=None, max_length=255, alias="startDate")
|
|
end_date: Optional[str] = Field(default=None, max_length=255, alias="endDate")
|
|
business_type: str = Field(max_length=255, alias="businessType")
|
|
product_id: str = Field(alias="productId")
|
|
planned_quantity: float = Field(alias="plannedQuantity")
|
|
vehicle_no: Optional[str] = Field(default="", max_length=255, alias="vehicleNo")
|
|
customer_name: Optional[str] = Field(default=None, max_length=255, alias="customerName")
|
|
remarks: Optional[str] = Field(default=None)
|
|
execution_status: Optional[str] = Field(default=None, max_length=50, alias="executionStatus")
|
|
auto_generate_enabled: Optional[int] = Field(default=0, alias="autoGenerateEnabled")
|
|
auto_generate_end_month: Optional[str] = Field(
|
|
default=None, max_length=7, alias="autoGenerateEndMonth"
|
|
)
|
|
|
|
model_config = {"populate_by_name": True}
|
|
|
|
|
|
class PurchasePlanUpdate(BaseModel):
|
|
plan_no: Optional[str] = Field(default=None, max_length=255, alias="planNo")
|
|
plan_date: Optional[str] = Field(default=None, max_length=255, alias="planDate")
|
|
start_date: Optional[str] = Field(default=None, max_length=255, alias="startDate")
|
|
end_date: Optional[str] = Field(default=None, max_length=255, alias="endDate")
|
|
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)
|
|
planned_quantity: Optional[float] = Field(default=None, alias="plannedQuantity")
|
|
vehicle_no: Optional[str] = Field(default=None, max_length=255, alias="vehicleNo")
|
|
customer_name: Optional[str] = Field(default=None, max_length=255, alias="customerName")
|
|
remarks: Optional[str] = Field(default=None)
|
|
execution_status: Optional[str] = Field(default=None, max_length=50, alias="executionStatus")
|
|
executed_at: Optional[str] = Field(default=None, max_length=255, alias="executedAt")
|
|
last_weighing_slip_id: Optional[str] = Field(default=None, alias="lastWeighingSlipId")
|
|
executed_quantity: Optional[float] = Field(default=None, alias="executedQuantity")
|
|
auto_generate_enabled: Optional[int] = Field(default=None, alias="autoGenerateEnabled")
|
|
auto_generate_end_month: Optional[str] = Field(
|
|
default=None, max_length=7, alias="autoGenerateEndMonth"
|
|
)
|
|
auto_generate_last_month: Optional[str] = Field(
|
|
default=None, max_length=7, alias="autoGenerateLastMonth"
|
|
)
|
|
|
|
model_config = {"populate_by_name": True}
|
|
|
|
|
|
class PurchasePlanRead(PurchasePlanBase):
|
|
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")
|
|
|
|
|
|
class PurchasePlanWithFillLink(PurchasePlanRead):
|
|
fill_link_inventory_id: Optional[str] = Field(default=None, alias="fillLinkInventoryId")
|