|  | @@ -1,16 +1,52 @@
 | 
	
		
			
				|  |  |  from src.models.nomenclature_group_model import nomenclature_group_model
 | 
	
		
			
				|  |  |  from src.models.measurement_unit_model import measurement_unit_model
 | 
	
		
			
				|  |  |  from src.models.nomenclature_model import nomenclature_model
 | 
	
		
			
				|  |  | -from src.settings import settings
 | 
	
		
			
				|  |  | +from src.errors.error_proxy import error_proxy
 | 
	
		
			
				|  |  | +from src.settings.settings import settings
 | 
	
		
			
				|  |  | +from src.storage.storage import storage
 | 
	
		
			
				|  |  | +from src.validation.validator import validator
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #
 | 
	
		
			
				|  |  |  # Класс для обработки начало работы приложения
 | 
	
		
			
				|  |  |  #
 | 
	
		
			
				|  |  |  class start_factory:
 | 
	
		
			
				|  |  |      __options: settings = None
 | 
	
		
			
				|  |  | +    __storage: storage = None
 | 
	
		
			
				|  |  | +    __vtor = validator()
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  | -    def __init__(self, options: settings) -> None:
 | 
	
		
			
				|  |  | -        self.__options = options
 | 
	
		
			
				|  |  | +    def __init__(self, _options: settings,
 | 
	
		
			
				|  |  | +                 _storage: storage = None) -> None:
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        self.__vtor.check_type(_options, settings)
 | 
	
		
			
				|  |  | +        self.__vtor.check_type(_storage, storage)
 | 
	
		
			
				|  |  | +        self.__options = _options
 | 
	
		
			
				|  |  | +        self.__storage = _storage
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    def __save(self, key:str, items: list):
 | 
	
		
			
				|  |  | +        """
 | 
	
		
			
				|  |  | +            Сохранить данные
 | 
	
		
			
				|  |  | +        Args:
 | 
	
		
			
				|  |  | +            key (str): ключ доступ
 | 
	
		
			
				|  |  | +            items (list): список
 | 
	
		
			
				|  |  | +        """
 | 
	
		
			
				|  |  | +       
 | 
	
		
			
				|  |  | +        self.__vtor.check_type(key, str)
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        if self.__storage == None:
 | 
	
		
			
				|  |  | +            self.__storage = storage()
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  | +        self.__storage.data[ key ] = items
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  | +    @property            
 | 
	
		
			
				|  |  | +    def storage(self):
 | 
	
		
			
				|  |  | +        """
 | 
	
		
			
				|  |  | +             Ссылка на объект хранилище данных
 | 
	
		
			
				|  |  | +        Returns:
 | 
	
		
			
				|  |  | +            _type_: _description_
 | 
	
		
			
				|  |  | +        """
 | 
	
		
			
				|  |  | +        return self.__storage
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      @staticmethod
 | 
	
		
			
				|  |  |      def create_nomenclature_list():
 | 
	
	
		
			
				|  | @@ -21,9 +57,9 @@ class start_factory:
 | 
	
		
			
				|  |  |          result = []
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  | -        item1 = nomenclature_model("Мука", "Мука пшеничная",
 | 
	
		
			
				|  |  | -                                   measurement_unit_model.create_kg(),
 | 
	
		
			
				|  |  | -                                   nomenclature_group_model.create_group())
 | 
	
		
			
				|  |  | +        item1 = nomenclature_model("Мука", "Мушка пшеничная", measurement_unit_model("грамм"), nomenclature_group_model("name"))
 | 
	
		
			
				|  |  | +        item1.group = nomenclature_group_model.create_group()
 | 
	
		
			
				|  |  | +        item1.unit = measurement_unit_model.create_kg()
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  |          result.append(item1)
 | 
	
		
			
				|  |  |          
 | 
	
	
		
			
				|  | @@ -37,12 +73,17 @@ class start_factory:
 | 
	
		
			
				|  |  |          Returns:
 | 
	
		
			
				|  |  |              _type_: _description_
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        result = []
 | 
	
		
			
				|  |  |          if self.__options.is_first_run == True:
 | 
	
		
			
				|  |  |              self.__options.is_first_run = False
 | 
	
		
			
				|  |  | -            return start_factory.create_nomenclature_list()
 | 
	
		
			
				|  |  | -        else:
 | 
	
		
			
				|  |  | -            items = []
 | 
	
		
			
				|  |  | -            return items
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  | +            # Формируем и зпоминаем номеклатуру
 | 
	
		
			
				|  |  | +            result = start_factory.create_nomenclature_list()
 | 
	
		
			
				|  |  | +            self.__save(storage.nomenclature_key(), result )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return result
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  |      
 |