lobe-chat
1/* eslint-disable typescript-sort-keys/interface */
2import { BatchTaskResult } from '@/types/service';
3import { ChatTopic } from '@/types/topic';
4
5export interface CreateTopicParams {
6favorite?: boolean;
7messages?: string[];
8sessionId?: string | null;
9title: string;
10}
11
12export interface QueryTopicParams {
13current?: number;
14pageSize?: number;
15sessionId: string;
16}
17
18export interface ITopicService {
19createTopic(params: CreateTopicParams): Promise<string>;
20batchCreateTopics(importTopics: ChatTopic[]): Promise<BatchTaskResult>;
21cloneTopic(id: string, newTitle?: string): Promise<string>;
22
23getTopics(params: QueryTopicParams): Promise<ChatTopic[]>;
24getAllTopics(): Promise<ChatTopic[]>;
25countTopics(): Promise<number>;
26searchTopics(keyword: string, sessionId?: string): Promise<ChatTopic[]>;
27
28updateTopic(id: string, data: Partial<ChatTopic>): Promise<any>;
29
30removeTopic(id: string): Promise<any>;
31removeTopics(sessionId: string): Promise<any>;
32batchRemoveTopics(topics: string[]): Promise<any>;
33removeAllTopic(): Promise<any>;
34}
35