You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Open-IM-Server/pkg/common/storage/model/group_pinned_msg.go

70 lines
2.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// Copyright © 2026 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
package model
// GroupPinnedMsgMaxKeep 群置顶消息最多保留的条数(最新置顶的在最前)
const GroupPinnedMsgMaxKeep = 3
// GroupPinnedOfflinePush 离线推送信息快照
type GroupPinnedOfflinePush struct {
Title string `bson:"title"`
Desc string `bson:"desc"`
Ex string `bson:"ex"`
IOSPushSound string `bson:"ios_push_sound"`
IOSBadgeCount bool `bson:"ios_badge_count"`
SignalInfo string `bson:"signal_info"`
}
// GroupPinnedMessage 一条群置顶消息的完整内容快照
// 置顶时把消息整体快照入库,避免后续消息删除/撤回影响已置顶展示
type GroupPinnedMessage struct {
// PinID 全局唯一 id用于精准取消置顶生产由 mongo ObjectID().Hex() 生成)
PinID string `bson:"pin_id"`
// 会话 / 群信息
ConversationID string `bson:"conversation_id"`
GroupID string `bson:"group_id"`
// 消息标识
Seq int64 `bson:"seq"`
ServerMsgID string `bson:"server_msg_id"`
ClientMsgID string `bson:"client_msg_id"`
// 发送方信息
SendID string `bson:"send_id"`
RecvID string `bson:"recv_id"`
SenderPlatformID int32 `bson:"sender_platform_id"`
SenderNickname string `bson:"sender_nickname"`
SenderFaceURL string `bson:"sender_face_url"`
// 消息内容快照
SessionType int32 `bson:"session_type"`
MsgFrom int32 `bson:"msg_from"`
ContentType int32 `bson:"content_type"`
Content string `bson:"content"`
AtUserIDList []string `bson:"at_user_id_list"`
Options map[string]bool `bson:"options"`
AttachedInfo string `bson:"attached_info"`
Ex string `bson:"ex"`
OfflinePush *GroupPinnedOfflinePush `bson:"offline_push"`
// 时间
SendTime int64 `bson:"send_time"`
CreateTime int64 `bson:"create_time"`
Status int32 `bson:"status"`
// 操作人 & 时间
PinUserID string `bson:"pin_user_id"`
PinTime int64 `bson:"pin_time"`
}
// GroupPinnedMsg 一个群的置顶消息文档,按 group_id 唯一
type GroupPinnedMsg struct {
GroupID string `bson:"group_id"`
PinnedMsgs []*GroupPinnedMessage `bson:"pinned_msgs"`
}