63 lines
1.4 KiB
Python
63 lines
1.4 KiB
Python
from pydantic import BaseModel, Field
|
|
|
|
|
|
class CreateCategoryRequest(BaseModel):
|
|
category_name: str
|
|
category_code: str
|
|
sort_no: int = 0
|
|
status: int = 1
|
|
remark: str | None = None
|
|
|
|
|
|
class UpdateCategoryRequest(BaseModel):
|
|
category_name: str
|
|
category_code: str
|
|
sort_no: int = 0
|
|
status: int = 1
|
|
remark: str | None = None
|
|
|
|
|
|
class ProductSpecificationPayload(BaseModel):
|
|
specification: str
|
|
unit: str
|
|
category_id: int | None = None
|
|
cost_price: float = 0
|
|
sale_price: float = 0
|
|
status: int = 1
|
|
remark: str | None = None
|
|
is_default: bool = False
|
|
|
|
|
|
class CreateProductRequest(BaseModel):
|
|
product_name: str
|
|
category_id: int | None = None
|
|
status: int = 1
|
|
remark: str | None = None
|
|
specifications: list[ProductSpecificationPayload] = Field(default_factory=list)
|
|
|
|
|
|
class UpdateProductRequest(BaseModel):
|
|
product_name: str
|
|
category_id: int | None = None
|
|
status: int = 1
|
|
remark: str | None = None
|
|
|
|
|
|
class UpdateProductSpecificationRequest(BaseModel):
|
|
specification: str
|
|
unit: str
|
|
category_id: int | None = None
|
|
cost_price: float = 0
|
|
sale_price: float = 0
|
|
status: int = 1
|
|
remark: str | None = None
|
|
is_default: bool = False
|
|
|
|
|
|
class UpdateProductCategoryRequest(BaseModel):
|
|
category_name: str
|
|
category_code: str
|
|
sort_no: int = 0
|
|
status: int = 1
|
|
remark: str | None = None
|