48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
import type { User } from '../index';
|
||
import type { ChatMessageType, ChatMessageStatus } from './enum';
|
||
|
||
// 聊天消息接口
|
||
export interface ChatMessage {
|
||
id: string;
|
||
// 聊天会话id,下面那个接口的id
|
||
sessionId: string;
|
||
sender: User;
|
||
receiver: User;
|
||
content: string;
|
||
type: ChatMessageType;
|
||
status: ChatMessageStatus;
|
||
createdAt: Date;
|
||
// 非文本消息类型的元数据
|
||
metadata?: {
|
||
fileName?: string;
|
||
fileSize?: number;
|
||
duration?: number;
|
||
// 小图预览
|
||
thumbnail?: string;
|
||
[key: string]: unknown;
|
||
};
|
||
}
|
||
|
||
// 聊天会话接口
|
||
export interface ChatSession {
|
||
id: string;
|
||
participant1Id: string;
|
||
participant2Id: string;
|
||
participant1: User;
|
||
participant2: User;
|
||
lastMessage?: {
|
||
id: string;
|
||
content: string;
|
||
senderId: string;
|
||
createdAt: Date;
|
||
};
|
||
unreadCount1: number; // 参与者1的未读消息数
|
||
unreadCount2: number; // 参与者2的未读消息数
|
||
createdAt: Date;
|
||
updatedAt: Date;
|
||
// 会话元数据(特殊标记、背景设置、自定义属性等等)
|
||
metadata?: {
|
||
[key: string]: unknown;
|
||
};
|
||
}
|