feat(characters): support character-scoped conversations
This commit is contained in:
@@ -18,6 +18,7 @@ import type { ChatImageData, ChatLockType } from "@/data/schemas/chat";
|
||||
import type { LocalChatMediaRow } from "@/data/storage/chat";
|
||||
|
||||
export interface ChatMediaLookupInput {
|
||||
characterId: string;
|
||||
messageId: string;
|
||||
kind: ChatMediaKind;
|
||||
}
|
||||
@@ -34,6 +35,7 @@ export interface UnlockedPrivateMessageLocalPatch {
|
||||
}
|
||||
|
||||
export interface UnlockPrivateMessageInput {
|
||||
characterId: string;
|
||||
messageId?: string;
|
||||
lockType?: ChatLockType;
|
||||
clientLockId?: string;
|
||||
@@ -42,12 +44,17 @@ export interface UnlockPrivateMessageInput {
|
||||
export interface IChatRepository {
|
||||
/** 发送一条消息。 */
|
||||
sendMessage(
|
||||
characterId: string,
|
||||
message: string,
|
||||
options?: { image?: string; useWebSocket?: boolean },
|
||||
): Promise<Result<ChatSendResponse>>;
|
||||
|
||||
/** 获取聊天历史,分页参数默认 limit=50, offset=0。 */
|
||||
getHistory(limit?: number, offset?: number): Promise<Result<ChatHistoryResponse>>;
|
||||
getHistory(
|
||||
characterId: string,
|
||||
limit?: number,
|
||||
offset?: number,
|
||||
): Promise<Result<ChatHistoryResponse>>;
|
||||
|
||||
/** 解锁单条历史付费 / 私密消息。 */
|
||||
unlockPrivateMessage(
|
||||
@@ -55,7 +62,7 @@ export interface IChatRepository {
|
||||
): Promise<Result<UnlockPrivateResponse>>;
|
||||
|
||||
/** 一键解锁历史锁定消息。 */
|
||||
unlockHistory(): Promise<Result<UnlockHistoryResponse>>;
|
||||
unlockHistory(characterId: string): Promise<Result<UnlockHistoryResponse>>;
|
||||
|
||||
/** 把本地缓存中的单条锁定消息标记为已解锁。 */
|
||||
markPrivateMessageUnlockedInLocal(
|
||||
@@ -99,12 +106,14 @@ export interface IChatRepository {
|
||||
/** 后台预缓存历史消息中的图片 / 音频。失败不影响聊天主流程。 */
|
||||
prefetchMediaForMessages(
|
||||
messages: readonly ChatMessage[],
|
||||
characterId: string,
|
||||
cacheIdentity?: string,
|
||||
): Promise<Result<void>>;
|
||||
|
||||
/** 后台预缓存发送响应中的图片 / 音频。失败不影响聊天主流程。 */
|
||||
prefetchMediaForSendResponse(
|
||||
response: ChatSendResponse,
|
||||
characterId: string,
|
||||
cacheIdentity?: string,
|
||||
): Promise<Result<void>>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user