docs: def from_array(array):
          """
          Deserialize a new Chat from a given dictionary.
  
          :return: new Chat instance.
          :rtype: Chat
          """
          if array is None or not array:
              return None
          # end if
          assert_type_or_raise(array, dict, parameter_name="array")
          from pytgbot.api_types.receivable.media import ChatPhoto
          from pytgbot.api_types.receivable.updates import Message
          
  
          data = {}
          data['id'] = int(array.get('id'))
          data['type'] = u(array.get('type'))
          data['title'] = u(array.get('title')) if array.get('title') is not None else None
          data['username'] = u(array.get('username')) if array.get('username') is not None else None
          data['first_name'] = u(array.get('first_name')) if array.get('first_name') is not None else None
          data['last_name'] = u(array.get('last_name')) if array.get('last_name') is not None else None
          data['all_members_are_administrators'] = bool(array.get('all_members_are_administrators')) if array.get('all_members_are_administrators') is not None else None
          data['photo'] = ChatPhoto.from_array(array.get('photo')) if array.get('photo') is not None else None
          data['description'] = u(array.get('description')) if array.get('description') is not None else None
          data['invite_link'] = u(array.get('invite_link')) if array.get('invite_link') is not None else None
          data['pinned_message'] = Message.from_array(array.get('pinned_message')) if array.get('pinned_message') is not None else None
          data['sticker_set_name'] = u(array.get('sticker_set_name')) if array.get('sticker_set_name') is not None else None
          data['can_set_sticker_set'] = bool(array.get('can_set_sticker_set')) if array.get('can_set_sticker_set') is not None else None
          data['_raw'] = array
          return Chat(**data)