import { MessageHandled, MessageType, PayMethod, PayStatus } from "@/customer-service/model"; export interface Chat { id: number; org_id: string; uid: string; oid: string; eid: string; type: string; title: string; app_id: string; tag: string; msg_id: number; ext: string; exit_msg_id: number; is_exited: boolean; dnd: number; is_top: boolean; label: string; join_msg_id: number; last_read_msg_id: number; biz_id: string; last_msg_sender: string; last_msg_content: string; last_msg_type: MessageType; model_name: string; obj_id: string; is_finish: boolean; is_deleted: boolean; is_remove: boolean; member_type: number; ref_id: number; unread_msg_count: number; at_me: boolean; at_all: boolean; last_login_oid: string; owner_oid: string; owner_eid: string; is_act: true; last_read_id: number; msg_count_after_leave: number; create_time: number; update_time: number; last_msg_ts: number; members_updated: number; user_updated: number; chat_id: number; catalog: string; biz_type_id: number; biz_type_code: string; business_data?: string; detail_name?: string; } export interface Message { chat_id: number; oid: string; eid: string; id: number; ts: number; type: MessageType; msg: string; total_read_count: number; read_count: number; like_count: number; ref_id: number; at_id: string; is_read: boolean; like: boolean; create_time: number; update_time: number; status: number; url: string; is_open: boolean; handled?: MessageHandled; } export interface NotifyMessage { chat_type: string; chat_id: number; eid: string; ts: number; msg_type: string; msg: string; } export interface Member { chat_id: number; oid: string; eid: string; type: number; is_exited: boolean; is_remove: boolean; is_top: boolean; label: string; create_time: number; update_time: number; nick_name: string; } export type TextMessageBody = { text: string; }; export type FileMessageBody = { name: string; url: string; // 生消息是本地path,熟消息是文件url_id size: number; // number, 可选,文件大小:单位-字节 remark: string; isNeedUploaded?: boolean; // pc客户端自定义属性(只有生消息的消息体才有该属性, 值为false时不需要上传, true和undefined时需要上传) source?: { source_type: number; // 来源类型(若为团队小站文件,则来源类型为团队小站文件) source_id: number; // 来源id(若为团队小站文件,此处为团队工作站id) source_name: string; // 来源名称(若为团队小站文件,此处传入团队小站名称) source_icon: string; // 来源图标(若为团队小站文件,此处传入团队icon的url) extra?: { [prop: string]: any }; // 附加信息 }; }; export type ImageMessageBody = { name: string; url: string; size: number; w: number; h: number; thumbnail?: string; // 缩略图地址 preview?: string; // 预览图地址 remark: string; }; export type VoiceMessageBody = { name: string; url: string; size: number; duration: number; // 语音时间:单位-ms }; // 第一顺序 default_text 第二顺序 operator_text、receiver_text export type NotifyMessageBody = { operator_id: string; receiver_ids: string[]; default_text: string; // 默认文本 operator_text: string; // 操作人文本 receiver_text: string; // 处理人文本 }; export type TextNoticeMessageBody = { title: string; text: string; is_at_all: boolean; // 是否@全部人 }; export type VideoMessageBody = { name: string; url: string; // 生消息是本地path,熟消息是文件url_id size: number; cover?: string; duration: number; w: number; h: number; isNeedUploaded?: boolean; // pc客户端自定义属性(只有生消息的消息体才有该属性, 值为false时不需要上传, true和undefined时需要上传) }; export type UrlMessageBody = { title: string; icon: string; url: string; desc: string; source?: { source_type: number; // 来源类型(若为团队小站文件,则来源类型为团队小站文件) source_id: number; // 来源id(若为团队小站文件,此处为团队工作站id) source_name: string; // 来源名称(若为团队小站文件,此处传入团队小站名称) source_icon: string; // 来源图标(若为团队小站文件,此处传入团队icon的url) extra?: { [prop: string]: any }; // 附加信息 }; }; export type ForwardMessageBody = { snap: string; chat_type: string; // 会话类型 chat_id: number; // 会话id msg_ids: number[]; // 消息id集合 }; export type QuoteMessageBody = { text: string; quote_text: string; // JSON字符串 quote_msg_type: string; quote_eid: string; quote_msg_id: number; // 引用id }; export type CommentForwardMessageBody = { snap: string; channel_id: number; // 团队工作站id topic_id: number; // 主题id comment_ids: number[]; // 评论id集合 }; export interface PayMessageBody { status: PayStatus; paymentFunction: PayMethod; itemName: string; amount: string; paymentId: string; } export interface CsUser { id: number; oid: string; eid: string; is_deleted: boolean; delete_time: number; delete_oid: string; delete_eid: string; service_id: number; type: number; name: string; mobile: string; email: string; description: string; create_time: number; update_time: number; chat_count: number; status: number; }