Files
Fulfillment-Backend/schemas/barcode.py
2024-05-09 21:30:46 +03:00

117 lines
2.3 KiB
Python

from typing import List
from schemas.base import CustomModelCamel, OkMessageSchema
# region Entities
class BarcodeTemplateAttributeSchema(CustomModelCamel):
id: int
key: str
name: str
class BarcodeTemplateSizeSchema(CustomModelCamel):
id: int
name: str
key: str
width: int
height: int
class BarcodeTemplateAdditionalAttributeSchema(CustomModelCamel):
name: str
value: str
class BaseBarcodeTemplateSchema(CustomModelCamel):
name: str
is_default: bool
size: BarcodeTemplateSizeSchema
additional_attributes: list[BarcodeTemplateAdditionalAttributeSchema]
class BarcodeTemplateSchema(BaseBarcodeTemplateSchema):
id: int
attributes: list[BarcodeTemplateAttributeSchema]
class BarcodeAttributeSchema(CustomModelCamel):
name: str
value: str
class BarcodeSchema(CustomModelCamel):
barcode: str
attributes: List[BarcodeAttributeSchema]
# endregion
# region Requests
class GetBarcodeTemplateByIdRequest(CustomModelCamel):
id: int
class BarcodeTemplateCreateResponse(OkMessageSchema):
id: int
class BarcodeTemplateUpdateResponse(OkMessageSchema):
pass
class CreateBarcodeTemplateAttributeRequest(CustomModelCamel):
name: str
label: str
class BarcodeTemplateDeleteRequest(CustomModelCamel):
id: int
class GetProductBarcodeRequest(CustomModelCamel):
product_id: int
barcode: str
barcode_template_id: int | None = None
# endregion
# region Responses
class GetBarcodeTemplateByIdResponse(CustomModelCamel):
barcode_template: BarcodeTemplateSchema
class BarcodeTemplateCreateRequest(BaseBarcodeTemplateSchema):
attribute_ids: list[int]
class BarcodeTemplateUpdateRequest(BaseBarcodeTemplateSchema):
id: int
attribute_ids: list[int]
class CreateBarcodeTemplateAttributeResponse(OkMessageSchema):
id: int
class GetAllBarcodeTemplatesResponse(CustomModelCamel):
templates: list[BarcodeTemplateSchema]
class GetAllBarcodeTemplateAttributesResponse(CustomModelCamel):
attributes: list[BarcodeTemplateAttributeSchema]
class BarcodeTemplateDeleteResponse(OkMessageSchema):
pass
class GetProductBarcodeResponse(CustomModelCamel):
barcode: BarcodeSchema
class GetAllBarcodeTemplateSizesResponse(CustomModelCamel):
sizes: list[BarcodeTemplateSizeSchema]
# endregion