avatarImageId?: number;// avatar imageID is currently used only for sogs. It's the fileID of the image uploaded and set as the sogs avatar (not only sogs I think, but our profile too?)
left: boolean;// LEGACY GROUPS ONLY: if we left the group (communities are removed right away so it not relevant to communities) // TODOLATER to remove after legacy closed group are dropped
isKickedFromGroup: boolean;// LEGACY GROUPS ONLY: if we got kicked from the group (communities just stop polling and a message sent get rejected, so not relevant to communities) // TODOLATER to remove after legacy closed group are dropped
isTrustedForAttachmentDownload: boolean;// not synced across devices, this field is used if we should auto download attachments from this conversation or not
conversationIdOrigin?: string;// The conversation from which this conversation originated from: blinded message request or 03-group admin who invited us
// TODOLATER those two items are only used for legacy closed groups and will be removed when we get rid of the legacy closed groups support
lastJoinedTimestamp: number;// ClosedGroup: last time we were added to this group // TODOLATER to remove after legacy closed group are dropped
zombies: Array<string>;// only used for closed groups. Zombies are users which left but not yet removed by the admin // TODOLATER to remove after legacy closed group are dropped
// for those so there is no need to keep them in sync, but just have them in the dumps.
// Note: If we do remove them, we also need to add some logic to the wrappers. For instance, we can currently search by nickname or display name and that works through the DB.
avatarPointer?: string;// this is the url of the avatar on the file server v2. we use this to detect if we need to re-download the avatar from someone (not used for opengroups)
isApproved: boolean;// if we sent a message request or sent a message to this contact, we approve them. If isApproved & didApproveMe, a message request becomes a contact
didApproveMe: boolean;// if our message request was approved already (or they've sent us a message request/message themselves). If isApproved & didApproveMe, a message request becomes a contact
markedAsUnread: boolean;// Force the conversation as unread even if all the messages are read. Used to highlight a conversation the user wants to check again later, synced.
blocksSogsMsgReqsTimestamp: number;// if the convo is blinded and the user has denied contact through sogs, this field be set to the user's latest message timestamp