25 lines
686 B
Python
25 lines
686 B
Python
from abc import abstractmethod, ABC
|
|
|
|
from models import Product
|
|
from .article_attribute_getter import ArticleAttributeGetter
|
|
from .client_name_attribute_getter import ClientNameAttributeGetter
|
|
from .name_attribute_getter import NameAttributeGetter
|
|
|
|
|
|
class BaseAttributeGetter(ABC):
|
|
@abstractmethod
|
|
def get_value(self, product: Product):
|
|
pass
|
|
|
|
|
|
class AttributeWriterFactory:
|
|
@staticmethod
|
|
def get_writer(key: str):
|
|
match key:
|
|
case 'name':
|
|
return NameAttributeGetter()
|
|
case 'article':
|
|
return ArticleAttributeGetter()
|
|
case 'client.name':
|
|
return ClientNameAttributeGetter()
|