from typing import TYPE_CHECKING, Union from database.sipro.enums.general import BaseMarketplace from sender.ozon import OzonStocksSender from sender.wildberries import WildberriesStocksSender from sender.yandexmarket import YandexmarketStocksSender if TYPE_CHECKING: from updaters.base import BaseMarketplaceUpdater class SenderFactory: @staticmethod def get_sender(updater: "BaseMarketplaceUpdater") -> Union[ WildberriesStocksSender, OzonStocksSender, YandexmarketStocksSender ]: match updater.marketplace.base_marketplace: case BaseMarketplace.WILDBERRIES: return WildberriesStocksSender(updater) case BaseMarketplace.OZON: return OzonStocksSender(updater) case BaseMarketplace.YANDEX_MARKET: return YandexmarketStocksSender(updater) raise ValueError()