package com.vincent.rsf.server.ai.service.impl; import com.vincent.rsf.server.ai.dto.AiChatMemoryDto; import com.vincent.rsf.server.ai.dto.AiChatMessageDto; import com.vincent.rsf.server.ai.dto.AiChatSessionDto; import com.vincent.rsf.server.ai.dto.AiChatSessionPinRequest; import com.vincent.rsf.server.ai.dto.AiChatSessionRenameRequest; import com.vincent.rsf.server.ai.entity.AiChatSession; import com.vincent.rsf.server.ai.service.AiChatMemoryService; import com.vincent.rsf.server.ai.service.impl.conversation.AiConversationCommandService; import com.vincent.rsf.server.ai.service.impl.conversation.AiConversationQueryService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; @Service @RequiredArgsConstructor public class AiChatMemoryServiceImpl implements AiChatMemoryService { private final AiConversationQueryService aiConversationQueryService; private final AiConversationCommandService aiConversationCommandService; @Override public AiChatMemoryDto getMemory(Long userId, Long tenantId, String promptCode, Long sessionId) { return aiConversationQueryService.getMemory(userId, tenantId, promptCode, sessionId); } @Override public List listSessions(Long userId, Long tenantId, String promptCode, String keyword) { return aiConversationQueryService.listSessions(userId, tenantId, promptCode, keyword); } @Override public AiChatSession resolveSession(Long userId, Long tenantId, String promptCode, Long sessionId, String titleSeed) { return aiConversationCommandService.resolveSession(userId, tenantId, promptCode, sessionId, titleSeed); } @Override public void saveRound(AiChatSession session, Long userId, Long tenantId, List memoryMessages, String assistantContent) { aiConversationCommandService.saveRound(session, userId, tenantId, memoryMessages, assistantContent); } @Override public void removeSession(Long userId, Long tenantId, Long sessionId) { aiConversationCommandService.removeSession(userId, tenantId, sessionId); } @Override public AiChatSessionDto renameSession(Long userId, Long tenantId, Long sessionId, AiChatSessionRenameRequest request) { return aiConversationCommandService.renameSession(userId, tenantId, sessionId, request); } @Override public AiChatSessionDto pinSession(Long userId, Long tenantId, Long sessionId, AiChatSessionPinRequest request) { return aiConversationCommandService.pinSession(userId, tenantId, sessionId, request); } @Override public void clearSessionMemory(Long userId, Long tenantId, Long sessionId) { aiConversationCommandService.clearSessionMemory(userId, tenantId, sessionId); } @Override public void retainLatestRound(Long userId, Long tenantId, Long sessionId) { aiConversationCommandService.retainLatestRound(userId, tenantId, sessionId); } }