package com.ycwl.basic.service.mobile;

import com.ycwl.basic.model.mobile.chat.*;

import java.util.List;

public interface FaceChatService {
    /**
     * 获取或创建人脸会话，一脸一会话。
     */
    ChatConversationVO getOrCreateConversation(Long faceId, Long memberId);

    /**
     * 同步发送消息并保存助手回复。
     */
    ChatSendMessageResp sendMessage(Long conversationId, Long memberId, String content, String traceId);

    /**
     * 流式发送消息，支持实时分片回调，仍返回完整结果。
     */
    ChatSendMessageStreamResp sendMessageStream(Long conversationId,
                                                Long memberId,
                                                String content,
                                                String traceId,
                                                java.util.function.Consumer<String> chunkConsumer);

    /**
     * 拉取历史消息，cursor 为最后一条 seq，limit 为条数。
     */
    ChatMessagePageResp listMessages(Long conversationId, Integer cursor, Integer limit, Long memberId);

    /**
     * 关闭会话。
     */
    void closeConversation(Long conversationId, Long memberId);
}
