129 lines
2.6 KiB
Python
129 lines
2.6 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]
|
|
additional_field: str | None = None
|
|
|
|
|
|
class BarcodeTemplateSchema(BaseBarcodeTemplateSchema):
|
|
id: int
|
|
attributes: list[BarcodeTemplateAttributeSchema]
|
|
|
|
|
|
class BarcodeAttributeSchema(CustomModelCamel):
|
|
name: str
|
|
value: str
|
|
|
|
|
|
class BarcodeSchema(CustomModelCamel):
|
|
barcode: str
|
|
attributes: List[BarcodeAttributeSchema]
|
|
additional_field: str | None = None
|
|
|
|
|
|
# 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
|
|
|
|
|
|
class GetProductBarcodePdfRequest(GetProductBarcodeRequest):
|
|
quantity: int
|
|
|
|
|
|
# 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]
|
|
|
|
|
|
class GetProductBarcodePdfResponse(CustomModelCamel):
|
|
base64_string: str
|
|
filename: str
|
|
mime_type: str
|
|
# endregion
|