|  | @@ -0,0 +1,31 @@
 | 
	
		
			
				|  |  | +from src.models.abstract_reference import abstract_reference
 | 
	
		
			
				|  |  | +from src.export.strategies.export import export
 | 
	
		
			
				|  |  | +from src.validation.validator import validator
 | 
	
		
			
				|  |  | +from src.storage.storage import storage
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +class exporter:
 | 
	
		
			
				|  |  | +    """Класс для экспорта данных моделей"""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    # Валидатор
 | 
	
		
			
				|  |  | +    __vtor = validator()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    def __init__(self, strategy: export):
 | 
	
		
			
				|  |  | +        self.__vtor.check_type(strategy, export)
 | 
	
		
			
				|  |  | +        self.__strat = strategy
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    def export_models(self, models: list[abstract_reference]) -> str:
 | 
	
		
			
				|  |  | +        """Экспортировать модели"""
 | 
	
		
			
				|  |  | +        self.__vtor.check_collection_types_all(models, abstract_reference)
 | 
	
		
			
				|  |  | +        res = self.__strat.export_header(models[0])
 | 
	
		
			
				|  |  | +        for model in models:
 | 
	
		
			
				|  |  | +            res += f"\n{self.__strat.export_model(model)}"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return res
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    def export_by_key(self, key):
 | 
	
		
			
				|  |  | +        """Экспортировать модели из storage по ключу"""
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        models = storage().data[key]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return self.export_models(models)
 |