from typing import Optional from schemas.base import BaseSchema, BaseResponse # region Entity class BarcodeTemplateAttributeSchema(BaseSchema): id: int key: str name: str class BarcodeTemplateSizeSchema(BaseSchema): id: int name: str width: int height: int class CreateBarcodeTemplateSchema(BaseSchema): name: str attributes: list[BarcodeTemplateAttributeSchema] is_default: bool size: BarcodeTemplateSizeSchema class BarcodeTemplateSchema(CreateBarcodeTemplateSchema): id: int class UpdateBarcodeTemplateSchema(BaseSchema): name: Optional[str] = None attributes: Optional[list[BarcodeTemplateAttributeSchema]] = None is_default: Optional[bool] = None size: Optional[BarcodeTemplateSizeSchema] = None # endregion # region Request class CreateBarcodeTemplateRequest(BaseSchema): entity: CreateBarcodeTemplateSchema class UpdateBarcodeTemplateRequest(BaseSchema): entity: UpdateBarcodeTemplateSchema # endregion # region Response class GetBarcodeTemplatesResponse(BaseSchema): items: list[BarcodeTemplateSchema] class CreateBarcodeTemplateResponse(BaseResponse): entity: BarcodeTemplateSchema class UpdateBarcodeTemplateResponse(BaseResponse): pass class DeleteBarcodeTemplateResponse(BaseResponse): pass class GetBarcodeAttributesResponse(BaseSchema): items: list[BarcodeTemplateAttributeSchema] class GetBarcodeTemplateSizesResponse(BaseSchema): items: list[BarcodeTemplateSizeSchema] # endregion