feat: a lot of a lot
This commit is contained in:
25
marketplaces/base/core.py
Normal file
25
marketplaces/base/core.py
Normal file
@@ -0,0 +1,25 @@
|
||||
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
|
||||
Reference in New Issue
Block a user