feat(api): 添加热门卡片与榜单接口及实现

- 新增热门帖子、热门作者、榜单接口及实现
- 新增api-documentation,更好的ai协作
- 修复types没有导出的问题

BREAKING CHANGES: 1.0.0->1.1.0(latest)
This commit is contained in:
tobegold574
2025-11-18 22:29:40 +08:00
parent c3a8a525cb
commit a0c907beed
28 changed files with 1074 additions and 15 deletions

96
types/chat/api.ts Normal file
View File

@@ -0,0 +1,96 @@
import type { ChatSession, ChatMessage } from './base';
import type { ChatMessageType } from './enum';
// 创建聊天会话请求接口
export interface CreateChatSessionRequest {
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;
}