from typing import Union from sqlalchemy.ext.asyncio import AsyncSession from database import Marketplace from database.sipro.enums.general import BaseMarketplace from updaters.ozon_updater import OzonUpdater from updaters.wildberries_updater import WildberriesUpdater class UpdaterFactory: @staticmethod def get_updater(session: AsyncSession, marketplace: Marketplace) -> Union[OzonUpdater, WildberriesUpdater]: match marketplace.base_marketplace: case BaseMarketplace.WILDBERRIES: return WildberriesUpdater(marketplace, session) case BaseMarketplace.OZON: return OzonUpdater(marketplace, session)