29 lines
		
	
	
		
			952 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			952 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 create_products(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    @abstractmethod
 | 
						|
    async def synchronize_products(self):
 | 
						|
        pass |