feat: residues accounting
This commit is contained in:
@@ -4,6 +4,7 @@ from pydantic import field_validator
|
||||
|
||||
from schemas.barcode import BarcodeTemplateSchema
|
||||
from schemas.base import BaseSchema, OkMessageSchema
|
||||
from schemas.residues import ResidualBoxSchema, ResidualPalletSchema
|
||||
|
||||
|
||||
# region Entities
|
||||
@@ -27,6 +28,10 @@ class ClientSchema(BaseSchema):
|
||||
details: ClientDetailsSchema | None = None
|
||||
|
||||
|
||||
class ClientDetailedSchema(ClientSchema):
|
||||
pallets: List[ResidualPalletSchema] = []
|
||||
boxes: List[ResidualBoxSchema] = []
|
||||
|
||||
# endregion
|
||||
|
||||
# region Requests
|
||||
@@ -66,6 +71,10 @@ class ClientGetAllResponse(BaseSchema):
|
||||
clients: List[ClientSchema]
|
||||
|
||||
|
||||
class ClientGetResponse(BaseSchema):
|
||||
client: ClientDetailedSchema
|
||||
|
||||
|
||||
class ClientCreateResponse(OkMessageSchema):
|
||||
pass
|
||||
|
||||
|
||||
133
schemas/residues.py
Normal file
133
schemas/residues.py
Normal file
@@ -0,0 +1,133 @@
|
||||
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
|
||||
Reference in New Issue
Block a user