chat-pc/src/types/chat.ts

151 lines
3.1 KiB
TypeScript
Raw Normal View History

2024-12-24 08:14:21 +00:00
// 会话最后一条消息
export interface ISessionLastMessage {
msg_id: string // 消息ID
sequence: number // 消息时序ID消息排序
msg_type: number // 消息类型
user_id: number // 发送者ID
receiver_id: number // 接受者ID
content: string // 消息内容
mention: number[] // 提及列表
}
// 会话列表
export interface ISession {
id: number // 会话id
index_name: string // 索引名称
talk_type: number // 聊天类型
receiver_id: number // 接收者id
name: string // 昵称
avatar: string // 头像
remark: string // 备注
is_disturb: number // 是否免打扰
is_online: number // 是否在线
is_robot: number // 是否机器人
is_top: number // 置顶
unread_num: number // 未读消息数
updated_at: string // 最后发送时间
content?: string // 消息内容
last_message?: ISessionLastMessage
draft_text?: string // 草稿文本
}
// 消息记录
export interface ITalkRecord {
msg_id: string
sequence: number
talk_type: number
msg_type: number
user_id: number
receiver_id: number
nickname: string
avatar: string
is_revoke: number
is_mark: number
is_read: number
content: string
created_at: string
extra: any
isCheck: boolean
send_status: number
float: string,
is_convert_text?:number//语音记录的 是否是在展示转文本状态 1是 0否,
erp_user_id:number
2024-12-24 08:14:21 +00:00
}
export interface ITalkRecordExtraText {
content: string
mentions?: number[]
}
export interface ITalkRecordExtraCode {
lang: string
code: string
}
export interface ITalkRecordExtraFile {
drive: number
name: string
path: string
size: number
percentage: number
2024-12-24 08:14:21 +00:00
}
export interface ITalkRecordExtraForward {
msg_ids: number[]
receiver_id: number
records: {
nickname: string
text: string
}[]
talk_type: number
user_id: number
}
export interface ITalkRecordExtraGroupNotice {
owner_id: number
owner_name: string
title: number
content: string
}
export interface ITalkRecordExtraVideo {
cover: string
url: string
duration: number
size: number
is_uploading?: boolean
upload_id?: string
percentage?: number
2024-12-24 08:14:21 +00:00
}
export interface ITalkRecordExtraMixed {
items: {
type: number
content: string
link: string
}[]
}
export interface ITalkRecordExtraAudio {
name: string
size: number
url: string
duration: number
}
export interface ITalkRecordExtraLogin {
ip: string
address: string
agent: string
platform: string
reason: string
datetime: string
}
export interface ITalkRecordExtraImage {
name: string
size: number
url: string
width: number
height: number
}
export interface GroupInfo {
avatar: string;
created_at: string;
deptInfos: any[]; // 如果有具体结构可以进一步细化
group_id: number;
group_name: string;
group_num: number;
group_type: number;
is_disturb: number;
is_last_manager: boolean;
is_manager: boolean;
is_mute: number;
is_overt: number;
latest_notice_content: string;
latest_notice_title: string;
positionInfos: any[]; // 如果有具体结构可以进一步细化
profile: string;
visit_card: string;
};