/* Autogenerated file, do not edit manually */
package chat.delta.rpc.types;

public class FullChat {
  public Boolean archived;
  public Boolean canSend;
  public ChatType chatType;
  public String color;
  public java.util.List<Integer> contactIds;
  public java.util.List<Contact> contacts;
  public Integer ephemeralTimer;
  public Integer freshMessageCounter;
  public Integer id;
  public Boolean isContactRequest;
  public Boolean isDeviceChat;
  /**
   * True if the chat is encrypted. This means that all messages in the chat are encrypted, and all contacts in the chat are "key-contacts", i.e. identified by the PGP key fingerprint.
   * <p>
   * False if the chat is unencrypted. This means that all messages in the chat are unencrypted, and all contacts in the chat are "address-contacts", i.e. identified by the email address. The UI should mark this chat e.g. with a mail-letter icon.
   * <p>
   * Unencrypted groups are called "ad-hoc groups" and the user can't add/remove members, create a QR invite code, or set an avatar. These options should therefore be disabled in the UI.
   * <p>
   * Note that it can happen that an encrypted chat contains unencrypted messages that were received in core <= v1.159.* and vice versa.
   * <p>
   * See also `is_key_contact` on `Contact`.
   */
  public Boolean isEncrypted;
  public Boolean isMuted;
  public Boolean isSelfTalk;
  public Boolean isUnpromoted;
  @com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
  public String mailingListAddress;
  public String name;
  /* Contact IDs of the past chat members. */
  public java.util.List<Integer> pastContactIds;
  public Boolean pinned;
  @com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
  public String profileImage;
  /* Note that this is different from [`ChatListItem::is_self_in_group`](`crate::api::types::chat_list::ChatListItemFetchResult::ChatListItem::is_self_in_group`). This property should only be accessed when [`FullChat::chat_type`] is [`Chattype::Group`]. */
  public Boolean selfInGroup;
  public Boolean wasSeenRecently;
}