GroupEvent
Các sự kiện nhóm
Model
export enum GroupEventType {
JOIN_REQUEST = "join_request",
JOIN = "join",
LEAVE = "leave",
REMOVE_MEMBER = "remove_member",
BLOCK_MEMBER = "block_member",
UPDATE_SETTING = "update_setting",
UPDATE = "update",
NEW_LINK = "new_link",
ADD_ADMIN = "add_admin",
REMOVE_ADMIN = "remove_admin",
NEW_PIN_TOPIC = "new_pin_topic",
UPDATE_PIN_TOPIC = "update_pin_topic",
REORDER_PIN_TOPIC = "reorder_pin_topic",
UPDATE_BOARD = "update_board",
REMOVE_BOARD = "remove_board",
UPDATE_TOPIC = "update_topic",
UNPIN_TOPIC = "unpin_topic",
REMOVE_TOPIC = "remove_topic",
ACCEPT_REMIND = "accept_remind",
REJECT_REMIND = "reject_remind",
REMIND_TOPIC = "remind_topic",
UPDATE_AVATAR = "update_avatar",
UNKNOWN = "unknown",
}
export type GroupEventUpdateMember = {
id: string;
dName: string;
avatar: string;
type: number;
avatar_25: string;
};
export type GroupEventGroupInfo = {
group_link?: string;
link_expired_time?: number;
[key: string]: unknown;
};
export type GroupEventExtraData = {
featureId?: number;
field?: string;
[key: string]: unknown;
};
export type TGroupEventBase = {
subType: number;
groupId: string;
creatorId: string;
groupName: string;
sourceId: string;
updateMembers: GroupEventUpdateMember[];
groupSetting: GroupSetting | null;
groupTopic: GroupTopic | null;
info: GroupEventGroupInfo | null;
extraData: GroupEventExtraData | null;
time: string;
avt: string | null;
fullAvt: string | null;
isAdd: number;
hideGroupInfo: number;
version: string;
groupType: number;
clientId?: number;
errorMap?: Record<string, unknown>;
e2ee?: number;
};
export type TGroupEventJoinRequest = {
uids: string[];
totalPending: number;
groupId: string;
time: string;
};
export type TGroupEventPinTopic = {
oldBoardVersion: number;
boardVersion: number;
topic: GroupTopic;
actorId: string;
groupId: string;
};
export type TGroupEventReorderPinTopic = {
oldBoardVersion: number;
actorId: string;
topics: {
topicId: string;
topicType: number;
}[];
groupId: string;
boardVersion: number;
topic: null;
};
export type TGroupEventBoard = {
sourceId: string;
groupName: string;
groupTopic: (GroupTopic | ReminderGroup) & { params: string };
groupId: string;
creatorId: string;
subType?: number;
updateMembers?: GroupEventUpdateMember[];
groupSetting?: GroupSetting;
info?: GroupEventGroupInfo;
extraData?: GroupEventExtraData;
time?: string;
avt?: null;
fullAvt?: null;
isAdd?: number;
hideGroupInfo?: number;
version?: string;
groupType?: number;
};
export type TGroupEventRemindRespond = {
topicId: string;
updateMembers: string[];
groupId: string;
time: string;
};
export type TGroupEventRemindTopic = {
msg: string;
editorId: string;
color: string;
emoji: string;
creatorId: string;
editTime: number;
type: number;
duration: number;
group_id: string;
createTime: number;
repeat: number;
startTime: number;
time: number;
remindType: number;
};
export type TGroupEvent =
| TGroupEventBase
| TGroupEventJoinRequest
| TGroupEventPinTopic
| TGroupEventReorderPinTopic
| TGroupEventBoard
| TGroupEventRemindRespond
| TGroupEventRemindTopic;
export type GroupEvent =
| {
type: GroupEventType.JOIN_REQUEST;
data: TGroupEventJoinRequest;
act: string;
threadId: string;
isSelf: boolean;
}
| {
type: GroupEventType.NEW_PIN_TOPIC | GroupEventType.UNPIN_TOPIC | GroupEventType.UPDATE_PIN_TOPIC;
data: TGroupEventPinTopic;
act: string;
threadId: string;
isSelf: boolean;
}
| {
type: GroupEventType.REORDER_PIN_TOPIC;
data: TGroupEventReorderPinTopic;
act: string;
threadId: string;
isSelf: boolean;
}
| {
type: GroupEventType.UPDATE_BOARD | GroupEventType.REMOVE_BOARD;
data: TGroupEventBoard;
act: string;
threadId: string;
isSelf: boolean;
}
| {
type: GroupEventType.ACCEPT_REMIND | GroupEventType.REJECT_REMIND;
data: TGroupEventRemindRespond;
act: string;
threadId: string;
isSelf: boolean;
}
| {
type: GroupEventType.REMIND_TOPIC;
data: TGroupEventRemindTopic;
act: string;
threadId: string;
isSelf: boolean;
}
| {
type: Exclude<
GroupEventType,
| GroupEventType.JOIN_REQUEST
| GroupEventType.NEW_PIN_TOPIC
| GroupEventType.UNPIN_TOPIC
| GroupEventType.UPDATE_PIN_TOPIC
| GroupEventType.REORDER_PIN_TOPIC
| GroupEventType.UPDATE_BOARD
| GroupEventType.REMOVE_BOARD
| GroupEventType.ACCEPT_REMIND
| GroupEventType.REJECT_REMIND
| GroupEventType.REMIND_TOPIC
>;
data: TGroupEventBase;
act: string;
threadId: string;
isSelf: boolean;
};Related
Last updated