From e9aec10feb0efa1965e3eb0ee5137d0ac2a817ba Mon Sep 17 00:00:00 2001 From: fakz9 Date: Sat, 11 May 2024 01:10:54 +0300 Subject: [PATCH] feat: attrs on product --- barcodes/attributes/__init__.py | 3 +++ barcodes/attributes/additional_info_attribute_getter.py | 7 +++++++ models/product.py | 1 + schemas/product.py | 1 + 4 files changed, 12 insertions(+) create mode 100644 barcodes/attributes/additional_info_attribute_getter.py diff --git a/barcodes/attributes/__init__.py b/barcodes/attributes/__init__.py index d320467..93b9619 100644 --- a/barcodes/attributes/__init__.py +++ b/barcodes/attributes/__init__.py @@ -1,3 +1,4 @@ +from .additional_info_attribute_getter import AdditionalInfoAttributeGetter from .article_attribute_getter import ArticleAttributeGetter from .brand_attribute_getter import BrandAttributeGetter from .client_name_attribute_getter import ClientNameAttributeGetter @@ -31,5 +32,7 @@ class AttributeWriterFactory: return CompositionAttributeGetter() case 'size': return SizeAttributeGetter() + case 'additional_info': + return AdditionalInfoAttributeGetter() case _: return None diff --git a/barcodes/attributes/additional_info_attribute_getter.py b/barcodes/attributes/additional_info_attribute_getter.py new file mode 100644 index 0000000..662489e --- /dev/null +++ b/barcodes/attributes/additional_info_attribute_getter.py @@ -0,0 +1,7 @@ +from barcodes.attributes.base import BaseAttributeGetter +from models import Product + + +class AdditionalInfoAttributeGetter(BaseAttributeGetter): + def get_value(self, product: Product): + return product.additional_info diff --git a/models/product.py b/models/product.py index 4091a4c..6c50c28 100644 --- a/models/product.py +++ b/models/product.py @@ -23,6 +23,7 @@ class Product(BaseModel): color = Column(String, nullable=True, comment='Цвет') composition = Column(String, nullable=True, comment='Состав') size = Column(String, nullable=True, comment='Размер') + additional_info = Column(String, nullable=True, comment='Дополнительное поле') class ProductBarcode(BaseModel): diff --git a/schemas/product.py b/schemas/product.py index 374ffb1..10c8193 100644 --- a/schemas/product.py +++ b/schemas/product.py @@ -20,6 +20,7 @@ class ProductSchema(CustomModelCamel): color: str | None = None composition: str | None = None size: str | None = None + additional_info: str | None = None @field_validator('barcodes', mode="before") def barcodes_to_list(cls, v):