29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
from audioop import ratecv
|
|
from typing import Union
|
|
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from enums.base_marketplace import BaseMarketplace
|
|
from marketplaces.ozon.core import OzonController
|
|
from marketplaces.wildberries.core import WildberriesController
|
|
from marketplaces.yandex.core import YandexController
|
|
from models import Marketplace
|
|
|
|
|
|
class MarketplaceControllerFactory:
|
|
@staticmethod
|
|
def get_controller(session: AsyncSession, marketplace: Marketplace) -> Union[
|
|
WildberriesController,
|
|
OzonController,
|
|
YandexController
|
|
]:
|
|
match marketplace.base_marketplace_key:
|
|
case BaseMarketplace.WILDBERRIES:
|
|
return WildberriesController(session, marketplace)
|
|
case BaseMarketplace.OZON:
|
|
return OzonController(session, marketplace)
|
|
case BaseMarketplace.YANDEX_MARKET:
|
|
return YandexController(session, marketplace)
|
|
case _:
|
|
raise ValueError(f"Unsupported marketplace: {marketplace.base_marketplace_key}")
|