26 lines
882 B
Python
26 lines
882 B
Python
from abc import ABC, abstractmethod
|
|
from typing import Union
|
|
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from external.marketplace.factory import MarketplaceApiFactory
|
|
from external.marketplace.ozon.core import OzonMarketplaceApi
|
|
from external.marketplace.wildberries.core import WildberriesMarketplaceApi
|
|
from external.marketplace.yandex.core import YandexMarketplaceApi
|
|
from models import Marketplace
|
|
|
|
|
|
class BaseMarketplaceController(ABC):
|
|
api: Union[WildberriesMarketplaceApi, OzonMarketplaceApi, YandexMarketplaceApi]
|
|
marketplace: Marketplace
|
|
session: AsyncSession
|
|
|
|
def __init__(self, session: AsyncSession, marketplace: Marketplace):
|
|
self.api = MarketplaceApiFactory.get_marketplace_api(marketplace)
|
|
self.marketplace = marketplace
|
|
self.session = session
|
|
|
|
@abstractmethod
|
|
async def synchronize_products(self):
|
|
pass
|