27 lines
		
	
	
		
			901 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			901 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from typing import TYPE_CHECKING, Union
 | 
						|
 | 
						|
from database.sipro.enums.general import BaseMarketplace
 | 
						|
from sender.ozon import OzonStocksSender
 | 
						|
from sender.wildberries import WildberriesStocksSender
 | 
						|
from sender.yandexmarket import YandexmarketStocksSender
 | 
						|
 | 
						|
if TYPE_CHECKING:
 | 
						|
    from updaters.base import BaseMarketplaceUpdater
 | 
						|
 | 
						|
 | 
						|
class SenderFactory:
 | 
						|
    @staticmethod
 | 
						|
    def get_sender(updater: "BaseMarketplaceUpdater") -> Union[
 | 
						|
        WildberriesStocksSender,
 | 
						|
        OzonStocksSender,
 | 
						|
        YandexmarketStocksSender
 | 
						|
    ]:
 | 
						|
        match updater.marketplace.base_marketplace:
 | 
						|
            case BaseMarketplace.WILDBERRIES:
 | 
						|
                return WildberriesStocksSender(updater)
 | 
						|
            case BaseMarketplace.OZON:
 | 
						|
                return OzonStocksSender(updater)
 | 
						|
            case BaseMarketplace.YANDEX_MARKET:
 | 
						|
                return YandexmarketStocksSender(updater)
 | 
						|
        raise ValueError()
 |