feat: attrs on product

This commit is contained in:
2024-05-11 01:10:54 +03:00
parent 7ce9258096
commit e9aec10feb
4 changed files with 12 additions and 0 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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):

View File

@@ -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):