99 lines
2.4 KiB
TypeScript
99 lines
2.4 KiB
TypeScript
import type { ChatSession, ChatMessage } from './base';
|
||
import type { ChatMessageType } from './enum';
|
||
|
||
// 创建聊天会话请求接口
|
||
export interface CreateChatSessionRequest {
|
||
// 对方的ID,因为当前用户的id可以在session里获取(cookie自动带上)
|
||
participantId: string;
|
||
}
|
||
|
||
// 更新聊天会话请求接口(占位)
|
||
export interface UpdateChatSessionRequest {
|
||
// 只能用于处理后台逻辑
|
||
sessionId: string;
|
||
}
|
||
|
||
// 发送消息请求接口
|
||
export interface SendMessageRequest {
|
||
sessionId: string;
|
||
content: string;
|
||
type: ChatMessageType;
|
||
metadata?: Record<string, unknown>;
|
||
}
|
||
|
||
// 获取聊天会话列表请求接口
|
||
export interface GetChatSessionsRequest {
|
||
page?: number;
|
||
limit?: number;
|
||
}
|
||
|
||
// 获取聊天会话列表响应接口
|
||
export interface GetChatSessionsResponse {
|
||
sessions: ChatSession[];
|
||
total: number;
|
||
page: number;
|
||
limit: number;
|
||
}
|
||
|
||
// 获取聊天消息请求接口
|
||
export interface GetChatMessagesRequest {
|
||
sessionId: string;
|
||
page?: number;
|
||
limit?: number;
|
||
before?: string; // 消息ID,获取该消息之前的消息
|
||
after?: string; // 消息ID,获取该消息之后的消息
|
||
}
|
||
|
||
// 获取聊天消息响应接口
|
||
export interface GetChatMessagesResponse {
|
||
messages: ChatMessage[];
|
||
total: number;
|
||
page: number;
|
||
limit: number;
|
||
hasMore: boolean;
|
||
}
|
||
|
||
// 标记消息已读请求接口
|
||
export interface MarkMessagesAsReadRequest {
|
||
sessionId: string;
|
||
messageIds: string[];
|
||
}
|
||
|
||
// 标记消息已读响应接口(已读状态只面向接收方)
|
||
export interface MarkMessagesAsReadResponse {
|
||
success: boolean;
|
||
markedMessageIds: string[]; // 成功标记的消息ID
|
||
failedMessageIds?: string[]; // 失败的消息ID
|
||
}
|
||
|
||
// 搜索聊天消息请求接口
|
||
export interface SearchChatMessagesRequest {
|
||
sessionId?: string;
|
||
query: string;
|
||
page?: number;
|
||
limit?: number;
|
||
}
|
||
|
||
// 搜索聊天消息响应接口
|
||
export interface SearchChatMessagesResponse {
|
||
messages: ChatMessage[];
|
||
total: number;
|
||
page: number;
|
||
limit: number;
|
||
}
|
||
|
||
// 搜索聊天会话请求接口
|
||
export interface SearchChatSessionsRequest {
|
||
query: string;
|
||
page?: number;
|
||
limit?: number;
|
||
}
|
||
|
||
// 搜索聊天会话响应接口
|
||
export interface SearchChatSessionsResponse {
|
||
sessions: ChatSession[];
|
||
total: number;
|
||
page: number;
|
||
limit: number;
|
||
}
|