text: from ValidationWithDecorators import *
  
  class MobileNumber:
      @staticmethod
      def atributes():
          return ["id", "name", "surname", "number", "pin_code", "puk_code", "available_amount", "started_at"]
  
      def __init__(self, *item):
          for i in range(len(self.atributes())):
              setattr(self, self.atributes()[i], item[i])
  
      def __str__(self):
          res = ""
          for i in range(len(self.atributes())):
              res += self.atributes()[i] + ": " + self.__getitem__(self.atributes()[i]) + ", "
          res = res[:res.__len__() - 2]
          return res
  
      def __getitem__(self, key):
          return getattr(self, key)
  
      def __setitem__(self, key, value):
          return setattr(self, key, value)
  
      def __eq__(self, other):
          for i in range(len(self.atributes())):
              if self.__getitem__(self.atributes()[i]) != other.__getitem__(self.atributes()[i]):
                  return False
          return True
  
      @property
      def id(self):
          return self._id
  
      @id.setter
      @Validation.idV
      def id(self, value):
          self._id = value
  
      @property
      def name(self):
          return self._name
  
      @name.setter
      @Validation.nameV
      def name(self, value):
          self._name = value
  
      @property
      def surname(self):
          return self._surname
  
      @surname.setter
      @Validation.nameV
      def surname(self, value):
          self._surname = value
  
      @property
      def number(self):
          return self._number
  
      @number.setter
      @Validation.numberV
      def number(self, value):
          self._number = value
  
      @property
      def pin_code(self):
          return self._pin_code
  
      @pin_code.setter
      @Validation.pinCodeV
      def pin_code(self, value):
          self._pin_code = value
  
      @property
      def puk_code(self):
          return self._puk_code
  
      @puk_code.setter
      @Validation.pukCodeV
      def puk_code(self, value):
          self._puk_code = value
  
      @property
      def available_amount(self):
          return self._available_amount
  
      @available_amount.setter
      @Validation.availableAmountV
      def available_amount(self, value):
          self._available_amount = value
  
      @property
      def started_at(self):
          return self._started_at
  
      @started_at.setter
      @Validation.startedAtV
      def started_at(self, value):
          self._started_at = value
  
      def get_str(self):
          res = ""
          for i in MobileNumber.atributes():
              res += self.__getitem__(i) + ", "
          res = res[:len(res) - 2]
          return res
  
  def inputElement():
      while True:
          try:
              el = input("Enter element: ")
              el = el.replace("\n", "")
              mas = el.split(", ")
              el = MobileNumber(*mas)
          except ValueError:
              print("Not correct element")
              continue
          break
      return el