class settings:
    __first_name = ""
    __bank_id = 0
    __bank_account_id = 0
    __corresp_account_id = 0
    __property_name = ""
    __property_type = ""
    
    @property
    def first_name(self):
        return self.__first_name
    
    @first_name.setter
    def first_name(self, value: str):
        """
            Полное наименование
        Args:
            value (str): Полное наименование

        Raises:
            TypeError: Некорректный аргумента
        """
        if not isinstance(value, str):
            raise TypeError("Некорректный аргумент!")
        
        self.__first_name = value.strip()

    
    @property
    def bank_id(self):
        return self.__bank_id
    
    @bank_id.setter
    def bank_id(self, value: int):
        """
            БИК
        Args:
            value (int): Значение БИК

        Raises:
            TypeError: Некорректный тип аргумента
            ValueError: Некорректная длина аргумента
        """

        if not isinstance(value, int):
            raise TypeError("Некорректный тип аргумента")
        
        if not len(str(int)) == 6:
            raise ValueError("Некорректная длина аргумента")

        self.__bank_id = value

    
    @property
    def bank_account_id(self):
        return self.__bank_account_id
    
    @bank_account_id.setter
    def bank_account_id(self, value: int):
        """
            Номер банковского счета
        Args:
            value (int): Номер банковского счета

        Raises:
            TypeError: Некорректный тип аргумента
            ValueError: Некорректная длина аргумента
        """

        if not isinstance(value, int):
            raise TypeError("Некорректный тип аргумента")
        
        if not len(str(int)) == 20:
            raise ValueError("Некорректная длина аргумента")

        self.__bank_account_id = value
        

    @property
    def corresp_account_id(self):
        return self.__corresp_account_id
    
    @corresp_account_id.setter
    def corresp_account_id(self, value: int):
        """
            Номер корреспондентского счёта
        Args:
            value (int): Номер корреспондентского счёта

        Raises:
            TypeError: Некорректный тип аргумента
            ValueError: Некорректная длина аргумента
        """

        if not isinstance(value, int):
            raise TypeError("Некорректный тип аргумента")
        
        if not len(str(int)) == 20:
            raise ValueError("Некорректная длина аргумента")

        self.__corresp_account_id = value


    @property
    def property_name(self):
        return self.__property_name
    
    @property_name.setter
    def property_name(self, value: int):
        """
            Наименование собственности
        Args:
            value (int): Наименование собственности

        Raises:
            TypeError: Некорректный тип аргумента
        """

        if not isinstance(value, int):
            raise TypeError("Некорректный тип аргумента")
        

        self.__property_name = value

    
    @property
    def property_type(self):
        return self.__property_type
    
    @property_type.setter
    def property_type(self, value: int):
        """
            Тип собственности
        Args:
            value (str): Тип собственности

        Raises:
            TypeError: Некорректный тип аргумента
            ValueError: Некорректная длина аргумента
        """

        if not isinstance(value, str):
            raise TypeError("Некорректный тип аргумента")
        
        if not len(str(int)) == 3:
            raise ValueError("Некорректная длина аргумента")

        self.__property_type = value