27 lines
		
	
	
		
			928 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			928 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from typing import Union
 | 
						|
 | 
						|
from sqlalchemy.ext.asyncio import AsyncSession
 | 
						|
 | 
						|
from database import Marketplace
 | 
						|
from database.sipro.enums.general import BaseMarketplace
 | 
						|
from updaters.ozon_updater import OzonUpdater
 | 
						|
from updaters.wildberries_updater import WildberriesUpdater
 | 
						|
from updaters.yandexmarket_updater import YandexmarketUpdater
 | 
						|
 | 
						|
 | 
						|
class UpdaterFactory:
 | 
						|
    @staticmethod
 | 
						|
    def get_updater(session: AsyncSession, marketplace: Marketplace) -> Union[
 | 
						|
        OzonUpdater,
 | 
						|
        WildberriesUpdater,
 | 
						|
        YandexmarketUpdater
 | 
						|
    ]:
 | 
						|
        match marketplace.base_marketplace:
 | 
						|
            case BaseMarketplace.WILDBERRIES:
 | 
						|
                return WildberriesUpdater(marketplace, session)
 | 
						|
            case BaseMarketplace.OZON:
 | 
						|
                return OzonUpdater(marketplace, session)
 | 
						|
            case BaseMarketplace.YANDEX_MARKET:
 | 
						|
                return YandexmarketUpdater(marketplace, session)
 | 
						|
        raise ValueError()
 |