from typing import Union from database import Marketplace from database.sipro.enums.general import BaseMarketplace from .wildberries import WildberriesMarketplaceApi from .ozon import OzonMarketplaceApi from .yandexmarket import YandexmarketMarketplaceApi class MarketplaceApiFactory: @staticmethod def get_marketplace_api(marketplace: Marketplace) -> Union[ WildberriesMarketplaceApi, OzonMarketplaceApi, YandexmarketMarketplaceApi ]: match marketplace.base_marketplace: case BaseMarketplace.OZON: return OzonMarketplaceApi(marketplace) case BaseMarketplace.WILDBERRIES: return WildberriesMarketplaceApi(marketplace) case BaseMarketplace.YANDEX_MARKET: return YandexmarketMarketplaceApi(marketplace) raise ValueError()