119 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			2.4 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
 | 
						|
 | 
						|
 | 
						|
# 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
 |