## Update chat `client.Chats.Update(ctx, chatID, body) (*Chat, error)` **patch** `/v1/chats/{chatID}` Update supported chat fields. Non-empty drafts are accepted only when the current draft is empty. Send draft=null to clear the draft before setting new draft text or attachments. ### Parameters - `chatID string` Chat ID. Input routes also accept the local chat ID from this installation when available. - `body ChatUpdateParams` - `Description param.Field[string]` Group chat description/topic. Support depends on the chat account and chat permissions. - `Draft param.Field[ChatUpdateParamsDraft]` Draft object to set or clear. Non-empty drafts are only accepted when the current draft is empty. Send draft=null to clear text and attachments together before setting a new draft. - `Text string` Draft text. Plain text and Markdown are converted to Beeper rich text with the same rules used by send and edit. - `Attachments map[string, ChatUpdateParamsDraftAttachment]` Draft attachments keyed by attachment ID. Each attachment must reference an uploadID returned by the upload file endpoint. - `UploadID string` Upload ID from uploadAsset endpoint. Required to reference uploaded files. - `ID string` Optional draft attachment identifier. If omitted, a new identifier is generated. - `Duration float64` Duration in seconds (optional override of cached value) - `FileName string` Filename (optional override of cached value) - `MimeType string` MIME type (optional override of cached value) - `Size ChatUpdateParamsDraftAttachmentSize` Dimensions (optional override of cached value) - `Height float64` - `Width float64` - `Type string` Attachment type hint (image, video, audio, file, gif, voice-note, sticker). If omitted, auto-detected from mimeType - `const ChatUpdateParamsDraftAttachmentTypeImage ChatUpdateParamsDraftAttachmentType = "image"` - `const ChatUpdateParamsDraftAttachmentTypeVideo ChatUpdateParamsDraftAttachmentType = "video"` - `const ChatUpdateParamsDraftAttachmentTypeAudio ChatUpdateParamsDraftAttachmentType = "audio"` - `const ChatUpdateParamsDraftAttachmentTypeFile ChatUpdateParamsDraftAttachmentType = "file"` - `const ChatUpdateParamsDraftAttachmentTypeGif ChatUpdateParamsDraftAttachmentType = "gif"` - `const ChatUpdateParamsDraftAttachmentTypeVoiceNote ChatUpdateParamsDraftAttachmentType = "voice-note"` - `const ChatUpdateParamsDraftAttachmentTypeSticker ChatUpdateParamsDraftAttachmentType = "sticker"` - `ImgURL param.Field[string]` Local filesystem path to a group chat avatar image. Support depends on the chat account and chat permissions. - `IsArchived param.Field[bool]` Archive or unarchive the chat. - `IsLowPriority param.Field[bool]` Mark or unmark the chat as low priority when supported by the account. - `IsMuted param.Field[bool]` Mute or unmute the chat. - `IsPinned param.Field[bool]` Pin or unpin the chat when supported by the account. - `MessageExpirySeconds param.Field[int64]` Disappearing-message timer in seconds, or null to clear when supported. - `Title param.Field[string]` Custom chat title. Support depends on the chat account and chat permissions. ### Returns - `type Chat struct{…}` - `ID string` Unique identifier of the chat across Beeper. - `AccountID string` Account ID this chat belongs to. - `Network string` Display-only human-readable account/network name. - `Participants ChatParticipants` Chat participants information. - `HasMore bool` True if there are more participants than included in items. - `Items []ChatParticipantsItem` Participants returned for this chat (limited by the request; may be a subset). - `IsAdmin bool` True if this participant has admin privileges in the chat. - `IsNetworkBot bool` True if this participant represents an automated network account. - `IsPending bool` True if this participant has been invited but has not joined yet. - `Total int64` Total number of participants in the chat. - `Title string` Display title of the chat as computed by the client/server. - `Type ChatType` Chat type: 'single' for direct messages, 'group' for group chats. - `const ChatTypeSingle ChatType = "single"` - `const ChatTypeGroup ChatType = "group"` - `UnreadCount int64` Number of unread messages. - `Capabilities ChatCapabilities` Chat capabilities reported by the platform. - `AllowedReactions []string` Allowed Unicode reactions. Omitted means all emoji reactions are allowed. - `Archive bool` True if archive/unarchive is supported. - `Attachments map[string, ChatCapabilitiesAttachment]` Supported attachment message types and their per-type constraints, keyed by Matrix msgtype or pseudo-msgtype (for example m.image, m.video, org.matrix.msc3245.voice). Missing message types should be treated as rejected. - `MimeTypes map[string, int64]` Supported MIME types or MIME patterns for this file message type. Missing MIME types should be treated as rejected. - `const ChatCapabilitiesAttachmentMimeTypeMinus2 ChatCapabilitiesAttachmentMimeType = -2` - `const ChatCapabilitiesAttachmentMimeTypeMinus1 ChatCapabilitiesAttachmentMimeType = -1` - `const ChatCapabilitiesAttachmentMimeType0 ChatCapabilitiesAttachmentMimeType = 0` - `const ChatCapabilitiesAttachmentMimeType1 ChatCapabilitiesAttachmentMimeType = 1` - `const ChatCapabilitiesAttachmentMimeType2 ChatCapabilitiesAttachmentMimeType = 2` - `Caption int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesAttachmentCaptionMinus2 ChatCapabilitiesAttachmentCaption = -2` - `const ChatCapabilitiesAttachmentCaptionMinus1 ChatCapabilitiesAttachmentCaption = -1` - `const ChatCapabilitiesAttachmentCaption0 ChatCapabilitiesAttachmentCaption = 0` - `const ChatCapabilitiesAttachmentCaption1 ChatCapabilitiesAttachmentCaption = 1` - `const ChatCapabilitiesAttachmentCaption2 ChatCapabilitiesAttachmentCaption = 2` - `MaxCaptionLength int64` Maximum caption length when captions are supported. - `MaxDuration int64` Maximum audio or video duration in seconds. - `MaxHeight int64` Maximum image or video height in pixels. - `MaxSize int64` Maximum file size in bytes. - `MaxWidth int64` Maximum image or video width in pixels. - `ViewOnce bool` True if this file type can be sent as view-once media. - `CustomEmojiReactions bool` True if custom emoji reactions are supported. - `Delete int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesDeleteMinus2 ChatCapabilitiesDelete = -2` - `const ChatCapabilitiesDeleteMinus1 ChatCapabilitiesDelete = -1` - `const ChatCapabilitiesDelete0 ChatCapabilitiesDelete = 0` - `const ChatCapabilitiesDelete1 ChatCapabilitiesDelete = 1` - `const ChatCapabilitiesDelete2 ChatCapabilitiesDelete = 2` - `DeleteChat bool` True if deleting chats for the authenticated user is supported. - `DeleteChatForEveryone bool` True if deleting chats for everyone is supported. - `DeleteForMe bool` True if deleting messages only for the authenticated user is supported. - `DeleteMaxAge int64` Maximum message age for delete-for-everyone, in seconds. - `DisappearingTimer ChatCapabilitiesDisappearingTimer` Disappearing-message timer capabilities. - `OmitEmptyTimer bool` True if empty timer objects should be omitted from message content. - `Timers []int64` Allowed disappearing timer values in milliseconds. Omitted means any timer is allowed. - `Types []string` Supported disappearing timer types. - `const ChatCapabilitiesDisappearingTimerTypeAfterRead ChatCapabilitiesDisappearingTimerType = "afterRead"` - `const ChatCapabilitiesDisappearingTimerTypeAfterSend ChatCapabilitiesDisappearingTimerType = "afterSend"` - `Edit int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesEditMinus2 ChatCapabilitiesEdit = -2` - `const ChatCapabilitiesEditMinus1 ChatCapabilitiesEdit = -1` - `const ChatCapabilitiesEdit0 ChatCapabilitiesEdit = 0` - `const ChatCapabilitiesEdit1 ChatCapabilitiesEdit = 1` - `const ChatCapabilitiesEdit2 ChatCapabilitiesEdit = 2` - `EditMaxAge int64` Maximum message age for edits, in seconds. - `EditMaxCount int64` Maximum number of edits allowed for one message. - `Formatting map[string, int64]` Supported rich-text formatting features keyed by feature name (for example bold, inline_code, code_block.syntax_highlighting). Omitted means no formatting support is advertised. - `const ChatCapabilitiesFormattingMinus2 ChatCapabilitiesFormatting = -2` - `const ChatCapabilitiesFormattingMinus1 ChatCapabilitiesFormatting = -1` - `const ChatCapabilitiesFormatting0 ChatCapabilitiesFormatting = 0` - `const ChatCapabilitiesFormatting1 ChatCapabilitiesFormatting = 1` - `const ChatCapabilitiesFormatting2 ChatCapabilitiesFormatting = 2` - `LocationMessage int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesLocationMessageMinus2 ChatCapabilitiesLocationMessage = -2` - `const ChatCapabilitiesLocationMessageMinus1 ChatCapabilitiesLocationMessage = -1` - `const ChatCapabilitiesLocationMessage0 ChatCapabilitiesLocationMessage = 0` - `const ChatCapabilitiesLocationMessage1 ChatCapabilitiesLocationMessage = 1` - `const ChatCapabilitiesLocationMessage2 ChatCapabilitiesLocationMessage = 2` - `MarkAsUnread bool` True if marking chats unread is supported. - `MaxTextLength int64` Maximum length of normal text messages. - `MessageRequest ChatCapabilitiesMessageRequest` Message request capabilities. - `AcceptWithButton int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesMessageRequestAcceptWithButtonMinus2 ChatCapabilitiesMessageRequestAcceptWithButton = -2` - `const ChatCapabilitiesMessageRequestAcceptWithButtonMinus1 ChatCapabilitiesMessageRequestAcceptWithButton = -1` - `const ChatCapabilitiesMessageRequestAcceptWithButton0 ChatCapabilitiesMessageRequestAcceptWithButton = 0` - `const ChatCapabilitiesMessageRequestAcceptWithButton1 ChatCapabilitiesMessageRequestAcceptWithButton = 1` - `const ChatCapabilitiesMessageRequestAcceptWithButton2 ChatCapabilitiesMessageRequestAcceptWithButton = 2` - `AcceptWithMessage int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesMessageRequestAcceptWithMessageMinus2 ChatCapabilitiesMessageRequestAcceptWithMessage = -2` - `const ChatCapabilitiesMessageRequestAcceptWithMessageMinus1 ChatCapabilitiesMessageRequestAcceptWithMessage = -1` - `const ChatCapabilitiesMessageRequestAcceptWithMessage0 ChatCapabilitiesMessageRequestAcceptWithMessage = 0` - `const ChatCapabilitiesMessageRequestAcceptWithMessage1 ChatCapabilitiesMessageRequestAcceptWithMessage = 1` - `const ChatCapabilitiesMessageRequestAcceptWithMessage2 ChatCapabilitiesMessageRequestAcceptWithMessage = 2` - `ParticipantActions ChatCapabilitiesParticipantActions` Participant management capabilities. - `Ban int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesParticipantActionsBanMinus2 ChatCapabilitiesParticipantActionsBan = -2` - `const ChatCapabilitiesParticipantActionsBanMinus1 ChatCapabilitiesParticipantActionsBan = -1` - `const ChatCapabilitiesParticipantActionsBan0 ChatCapabilitiesParticipantActionsBan = 0` - `const ChatCapabilitiesParticipantActionsBan1 ChatCapabilitiesParticipantActionsBan = 1` - `const ChatCapabilitiesParticipantActionsBan2 ChatCapabilitiesParticipantActionsBan = 2` - `Invite int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesParticipantActionsInviteMinus2 ChatCapabilitiesParticipantActionsInvite = -2` - `const ChatCapabilitiesParticipantActionsInviteMinus1 ChatCapabilitiesParticipantActionsInvite = -1` - `const ChatCapabilitiesParticipantActionsInvite0 ChatCapabilitiesParticipantActionsInvite = 0` - `const ChatCapabilitiesParticipantActionsInvite1 ChatCapabilitiesParticipantActionsInvite = 1` - `const ChatCapabilitiesParticipantActionsInvite2 ChatCapabilitiesParticipantActionsInvite = 2` - `Kick int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesParticipantActionsKickMinus2 ChatCapabilitiesParticipantActionsKick = -2` - `const ChatCapabilitiesParticipantActionsKickMinus1 ChatCapabilitiesParticipantActionsKick = -1` - `const ChatCapabilitiesParticipantActionsKick0 ChatCapabilitiesParticipantActionsKick = 0` - `const ChatCapabilitiesParticipantActionsKick1 ChatCapabilitiesParticipantActionsKick = 1` - `const ChatCapabilitiesParticipantActionsKick2 ChatCapabilitiesParticipantActionsKick = 2` - `Leave int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesParticipantActionsLeaveMinus2 ChatCapabilitiesParticipantActionsLeave = -2` - `const ChatCapabilitiesParticipantActionsLeaveMinus1 ChatCapabilitiesParticipantActionsLeave = -1` - `const ChatCapabilitiesParticipantActionsLeave0 ChatCapabilitiesParticipantActionsLeave = 0` - `const ChatCapabilitiesParticipantActionsLeave1 ChatCapabilitiesParticipantActionsLeave = 1` - `const ChatCapabilitiesParticipantActionsLeave2 ChatCapabilitiesParticipantActionsLeave = 2` - `RevokeInvite int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesParticipantActionsRevokeInviteMinus2 ChatCapabilitiesParticipantActionsRevokeInvite = -2` - `const ChatCapabilitiesParticipantActionsRevokeInviteMinus1 ChatCapabilitiesParticipantActionsRevokeInvite = -1` - `const ChatCapabilitiesParticipantActionsRevokeInvite0 ChatCapabilitiesParticipantActionsRevokeInvite = 0` - `const ChatCapabilitiesParticipantActionsRevokeInvite1 ChatCapabilitiesParticipantActionsRevokeInvite = 1` - `const ChatCapabilitiesParticipantActionsRevokeInvite2 ChatCapabilitiesParticipantActionsRevokeInvite = 2` - `Poll int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesPollMinus2 ChatCapabilitiesPoll = -2` - `const ChatCapabilitiesPollMinus1 ChatCapabilitiesPoll = -1` - `const ChatCapabilitiesPoll0 ChatCapabilitiesPoll = 0` - `const ChatCapabilitiesPoll1 ChatCapabilitiesPoll = 1` - `const ChatCapabilitiesPoll2 ChatCapabilitiesPoll = 2` - `Reaction int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesReactionMinus2 ChatCapabilitiesReaction = -2` - `const ChatCapabilitiesReactionMinus1 ChatCapabilitiesReaction = -1` - `const ChatCapabilitiesReaction0 ChatCapabilitiesReaction = 0` - `const ChatCapabilitiesReaction1 ChatCapabilitiesReaction = 1` - `const ChatCapabilitiesReaction2 ChatCapabilitiesReaction = 2` - `ReactionCount int64` Maximum number of reactions allowed on a single message. - `ReadReceipts bool` True if read receipts are supported. - `Reply int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesReplyMinus2 ChatCapabilitiesReply = -2` - `const ChatCapabilitiesReplyMinus1 ChatCapabilitiesReply = -1` - `const ChatCapabilitiesReply0 ChatCapabilitiesReply = 0` - `const ChatCapabilitiesReply1 ChatCapabilitiesReply = 1` - `const ChatCapabilitiesReply2 ChatCapabilitiesReply = 2` - `State ChatCapabilitiesState` Chat state update capabilities. - `Avatar ChatCapabilitiesStateAvatar` Chat avatar state capability. - `Level int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesStateAvatarLevelMinus2 ChatCapabilitiesStateAvatarLevel = -2` - `const ChatCapabilitiesStateAvatarLevelMinus1 ChatCapabilitiesStateAvatarLevel = -1` - `const ChatCapabilitiesStateAvatarLevel0 ChatCapabilitiesStateAvatarLevel = 0` - `const ChatCapabilitiesStateAvatarLevel1 ChatCapabilitiesStateAvatarLevel = 1` - `const ChatCapabilitiesStateAvatarLevel2 ChatCapabilitiesStateAvatarLevel = 2` - `Description ChatCapabilitiesStateDescription` Chat description/topic state capability. - `Level int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesStateDescriptionLevelMinus2 ChatCapabilitiesStateDescriptionLevel = -2` - `const ChatCapabilitiesStateDescriptionLevelMinus1 ChatCapabilitiesStateDescriptionLevel = -1` - `const ChatCapabilitiesStateDescriptionLevel0 ChatCapabilitiesStateDescriptionLevel = 0` - `const ChatCapabilitiesStateDescriptionLevel1 ChatCapabilitiesStateDescriptionLevel = 1` - `const ChatCapabilitiesStateDescriptionLevel2 ChatCapabilitiesStateDescriptionLevel = 2` - `DisappearingTimer ChatCapabilitiesStateDisappearingTimer` Disappearing-message timer state capability. - `Level int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesStateDisappearingTimerLevelMinus2 ChatCapabilitiesStateDisappearingTimerLevel = -2` - `const ChatCapabilitiesStateDisappearingTimerLevelMinus1 ChatCapabilitiesStateDisappearingTimerLevel = -1` - `const ChatCapabilitiesStateDisappearingTimerLevel0 ChatCapabilitiesStateDisappearingTimerLevel = 0` - `const ChatCapabilitiesStateDisappearingTimerLevel1 ChatCapabilitiesStateDisappearingTimerLevel = 1` - `const ChatCapabilitiesStateDisappearingTimerLevel2 ChatCapabilitiesStateDisappearingTimerLevel = 2` - `Title ChatCapabilitiesStateTitle` Chat title state capability. - `Level int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesStateTitleLevelMinus2 ChatCapabilitiesStateTitleLevel = -2` - `const ChatCapabilitiesStateTitleLevelMinus1 ChatCapabilitiesStateTitleLevel = -1` - `const ChatCapabilitiesStateTitleLevel0 ChatCapabilitiesStateTitleLevel = 0` - `const ChatCapabilitiesStateTitleLevel1 ChatCapabilitiesStateTitleLevel = 1` - `const ChatCapabilitiesStateTitleLevel2 ChatCapabilitiesStateTitleLevel = 2` - `Thread int64` -2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported. - `const ChatCapabilitiesThreadMinus2 ChatCapabilitiesThread = -2` - `const ChatCapabilitiesThreadMinus1 ChatCapabilitiesThread = -1` - `const ChatCapabilitiesThread0 ChatCapabilitiesThread = 0` - `const ChatCapabilitiesThread1 ChatCapabilitiesThread = 1` - `const ChatCapabilitiesThread2 ChatCapabilitiesThread = 2` - `TypingNotifications bool` True if typing notifications are supported. - `Description string` Group chat description/topic when available. - `Draft ChatDraft` Current draft object for this chat, or null when no draft is set. - `Text string` Rich-text draft body as returned by Beeper. - `Attachments map[string, ChatDraftAttachment]` Draft attachments keyed by attachment ID. - `ID string` Draft attachment identifier. - `Type string` Draft attachment type. GIF and recorded audio are mutually exclusive types. - `const ChatDraftAttachmentTypeFile ChatDraftAttachmentType = "file"` - `const ChatDraftAttachmentTypeGif ChatDraftAttachmentType = "gif"` - `const ChatDraftAttachmentTypeRecordedAudio ChatDraftAttachmentType = "recorded_audio"` - `AudioDurationSeconds float64` Audio duration in seconds if known. - `FileName string` Original filename if available. - `FilePath string` Local filesystem path for the draft attachment. - `FileSize float64` File size in bytes if known. - `MimeType string` MIME type if known. - `Size ChatDraftAttachmentSize` Pixel dimensions of the attachment. - `Height float64` - `Width float64` - `StickerID string` Sticker identifier if the draft attachment is a sticker. - `ImgURL string` Local filesystem path to the chat avatar image when available. - `IsArchived bool` True if chat is archived. - `IsLowPriority bool` True if chat is marked low priority. - `IsMarkedUnread bool` True if the chat was explicitly marked unread by the authenticated user. - `IsMuted bool` True if chat notifications are muted. - `IsPinned bool` True if chat is pinned. - `IsReadOnly bool` True if messages cannot be sent in this chat. - `LastActivity Time` Timestamp of last activity. - `LastReadMessageSortKey string` Last read message sortKey. - `LocalChatID string` Local chat ID specific to this installation. - `MessageExpirySeconds int64` Disappearing-message timer in seconds when available. - `Reminder ChatReminder` Current reminder for this chat, or null when no reminder is set. - `DismissOnIncomingMessage bool` Cancel reminder if someone messages in the chat. - `RemindAt Time` Timestamp when the reminder should trigger. - `Snooze ChatSnooze` Current snooze state for this chat, or null when no snooze is set. - `SnoozeUntil Time` Timestamp when the snooze expires. - `UserSnoozedAt Time` Timestamp when the user set the snooze. - `UnreadMentionsCount int64` Number of unread messages that mention the authenticated user or @room. ### Example ```go package main import ( "context" "fmt" "github.com/beeper/desktop-api-go" "github.com/beeper/desktop-api-go/option" ) func main() { client := beeperdesktopapi.NewClient( option.WithAccessToken("My Access Token"), ) chat, err := client.Chats.Update( context.TODO(), "!NCdzlIaMjZUmvmvyHU:beeper.com", beeperdesktopapi.ChatUpdateParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", chat.ID) } ``` #### Response ```json { "id": "!whatsapp_15550101002:ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc.local-whatsapp.localhost", "accountID": "local-whatsapp_ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc", "network": "WhatsApp", "participants": { "hasMore": false, "items": [ { "id": "@15550101002:local-whatsapp.localhost", "cannotMessage": false, "email": "email", "fullName": "Kishan Bagaria", "imgURL": "imgURL", "isSelf": false, "phoneNumber": "+15550101002", "username": "username", "isAdmin": true, "isNetworkBot": true, "isPending": true }, { "id": "@ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc:local-whatsapp.localhost", "cannotMessage": false, "email": "email", "fullName": "Batuhan İçöz", "imgURL": "imgURL", "isSelf": true, "phoneNumber": "phoneNumber", "username": "username", "isAdmin": true, "isNetworkBot": true, "isPending": true } ], "total": 2 }, "title": "Kishan Bagaria", "type": "single", "unreadCount": 0, "capabilities": { "allowedReactions": [ "string" ], "archive": true, "attachments": { "foo": { "mimeTypes": { "foo": -2 }, "caption": -2, "maxCaptionLength": 0, "maxDuration": 0, "maxHeight": 0, "maxSize": 0, "maxWidth": 0, "viewOnce": true } }, "customEmojiReactions": true, "delete": -2, "deleteChat": true, "deleteChatForEveryone": true, "deleteForMe": true, "deleteMaxAge": 0, "disappearingTimer": { "omitEmptyTimer": true, "timers": [ 0 ], "types": [ "afterRead" ] }, "edit": -2, "editMaxAge": 0, "editMaxCount": 0, "formatting": { "foo": -2 }, "locationMessage": -2, "markAsUnread": true, "maxTextLength": 0, "messageRequest": { "acceptWithButton": -2, "acceptWithMessage": -2 }, "participantActions": { "ban": -2, "invite": -2, "kick": -2, "leave": -2, "revokeInvite": -2 }, "poll": -2, "reaction": -2, "reactionCount": 0, "readReceipts": true, "reply": -2, "state": { "avatar": { "level": -2 }, "description": { "level": -2 }, "disappearingTimer": { "level": -2 }, "title": { "level": -2 } }, "thread": -2, "typingNotifications": true }, "description": "description", "draft": { "text": "text", "attachments": { "foo": { "id": "id", "type": "file", "audioDurationSeconds": 0, "fileName": "fileName", "filePath": "filePath", "fileSize": 0, "mimeType": "mimeType", "size": { "height": 0, "width": 0 }, "stickerID": "stickerID" } } }, "imgURL": "imgURL", "isArchived": false, "isLowPriority": true, "isMarkedUnread": true, "isMuted": false, "isPinned": false, "isReadOnly": true, "lastActivity": "2026-05-05T20:11:54.000Z", "lastReadMessageSortKey": "455171049984", "localChatID": "5639", "messageExpirySeconds": 0, "reminder": { "dismissOnIncomingMessage": true, "remindAt": "2025-08-31T23:30:12.520Z" }, "snooze": { "snoozeUntil": "2025-08-31T23:30:12.520Z", "userSnoozedAt": "2025-08-31T23:30:12.520Z" }, "unreadMentionsCount": 0 } ```