134 lines
2.4 KiB
Python
134 lines
2.4 KiB
Python
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from schemas.base import BaseSchema, OkMessageSchema
|
|
from schemas.product import ProductSchema
|
|
|
|
|
|
# region Entities
|
|
|
|
class ProductAndQuantitySchema(BaseSchema):
|
|
product_id: Optional[int]
|
|
quantity: Optional[int]
|
|
|
|
|
|
class ResidualProductSchema(BaseSchema):
|
|
id: int
|
|
quantity: int
|
|
product: ProductSchema
|
|
pallet_id: Optional[int]
|
|
box_id: Optional[int]
|
|
|
|
|
|
class ResidualBoxSchema(BaseSchema):
|
|
id: int
|
|
created_at: datetime
|
|
pallet_id: Optional[int]
|
|
client_id: Optional[int]
|
|
residual_products: list[ResidualProductSchema]
|
|
|
|
|
|
class ResidualPalletSchema(BaseSchema):
|
|
id: int
|
|
created_at: datetime
|
|
boxes: list[ResidualBoxSchema]
|
|
residual_products: list[ResidualProductSchema]
|
|
|
|
|
|
class CreateResidualProductSchema(ProductAndQuantitySchema):
|
|
pallet_id: Optional[int]
|
|
box_id: Optional[int]
|
|
|
|
|
|
class UpdateResidualProductSchema(ProductAndQuantitySchema):
|
|
pass
|
|
|
|
|
|
class ReceiptBoxSchema(BaseSchema):
|
|
products: list[ProductAndQuantitySchema]
|
|
|
|
|
|
class ReceiptPalletSchema(BaseSchema):
|
|
products: list[ProductAndQuantitySchema]
|
|
boxes: list[ReceiptBoxSchema]
|
|
|
|
|
|
# endregion
|
|
|
|
# region Requests
|
|
|
|
class CreateResidualPalletRequest(BaseSchema):
|
|
client_id: int
|
|
|
|
|
|
class CreateResidualProductRequest(BaseSchema):
|
|
data: CreateResidualProductSchema
|
|
|
|
|
|
class UpdateResidualProductRequest(BaseSchema):
|
|
data: UpdateResidualProductSchema
|
|
|
|
|
|
class CreateResidualBoxRequest(BaseSchema):
|
|
client_id: Optional[int]
|
|
pallet_id: Optional[int]
|
|
|
|
|
|
class LoadReceiptRequest(BaseSchema):
|
|
pallets: list[ReceiptPalletSchema]
|
|
boxes: list[ReceiptBoxSchema]
|
|
client_id: int
|
|
|
|
|
|
class GetPdfRequest(BaseSchema):
|
|
pallet_ids: list[int]
|
|
box_ids: list[int]
|
|
|
|
|
|
# endregion
|
|
|
|
# region Responses
|
|
|
|
class GetResidualPalletResponse(BaseSchema):
|
|
pallet: ResidualPalletSchema
|
|
client_id: int
|
|
|
|
|
|
class CreateResidualPalletResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class DeleteResidualPalletResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class CreateResidualProductResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class UpdateResidualProductResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class GetResidualBoxResponse(BaseSchema):
|
|
box: ResidualBoxSchema
|
|
client_id: int
|
|
|
|
|
|
class CreateResidualBoxResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class DeleteResidualBoxResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class DeleteResidualProductResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class LoadReceiptResponse(OkMessageSchema):
|
|
pass
|
|
|
|
# endregion
|