Files
Fulfillment-Backend/schemas/barcode.py
2024-07-20 09:32:22 +03:00

129 lines
2.5 KiB
Python

from typing import List
from schemas.base import BaseSchema, OkMessageSchema
# region Entities
class BarcodeTemplateAttributeSchema(BaseSchema):
id: int
key: str
name: str
class BarcodeTemplateSizeSchema(BaseSchema):
id: int
name: str
key: str
width: int
height: int
class BarcodeTemplateAdditionalAttributeSchema(BaseSchema):
name: str
value: str
class BaseBarcodeTemplateSchema(BaseSchema):
name: str
is_default: bool
size: BarcodeTemplateSizeSchema
additional_attributes: list[BarcodeTemplateAdditionalAttributeSchema]
additional_field: str | None = None
class BarcodeTemplateSchema(BaseBarcodeTemplateSchema):
id: int
attributes: list[BarcodeTemplateAttributeSchema]
class BarcodeAttributeSchema(BaseSchema):
name: str
value: str
class BarcodeSchema(BaseSchema):
barcode: str
attributes: List[BarcodeAttributeSchema]
additional_field: str | None = None
# endregion
# region Requests
class GetBarcodeTemplateByIdRequest(BaseSchema):
id: int
class BarcodeTemplateCreateResponse(OkMessageSchema):
id: int
class BarcodeTemplateUpdateResponse(OkMessageSchema):
pass
class CreateBarcodeTemplateAttributeRequest(BaseSchema):
name: str
label: str
class BarcodeTemplateDeleteRequest(BaseSchema):
id: int
class GetProductBarcodeRequest(BaseSchema):
product_id: int
barcode: str
barcode_template_id: int | None = None
class GetProductBarcodePdfRequest(GetProductBarcodeRequest):
quantity: int
# endregion
# region Responses
class GetBarcodeTemplateByIdResponse(BaseSchema):
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(BaseSchema):
templates: list[BarcodeTemplateSchema]
class GetAllBarcodeTemplateAttributesResponse(BaseSchema):
attributes: list[BarcodeTemplateAttributeSchema]
class BarcodeTemplateDeleteResponse(OkMessageSchema):
pass
class GetProductBarcodeResponse(BaseSchema):
barcode: BarcodeSchema
class GetAllBarcodeTemplateSizesResponse(BaseSchema):
sizes: list[BarcodeTemplateSizeSchema]
class GetProductBarcodePdfResponse(BaseSchema):
base64_string: str
filename: str
mime_type: str
# endregion