package com.infoepoch.pms.agent.platform.chatbot.application;

import com.infoepoch.pms.agent.platform.chatbot.application.dto.ChatbotToolOptionResponse;
import com.infoepoch.pms.agent.platform.chatbot.application.port.out.ChatbotBuiltInToolQueryPort;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 聊天机器人工具查询服务。
 */
@Service
@RequiredArgsConstructor
public class ChatbotToolQueryService {

    private final ChatbotBuiltInToolQueryPort toolRegistry;

    /**
     * 查询全部可配置工具选项。
     *
     * @return 工具选项响应列表
     */
    @Transactional(readOnly = true)
    public List<ChatbotToolOptionResponse> listConfigurableToolOptions() {
        return toolRegistry.listConfigurableTools().stream()
                .map(ChatbotToolOptionResponse::new)
                .toList();
    }

    /**
     * 判断指定工具是否允许配置。
     *
     * @param toolKey 工具标识
     * @return 是否允许配置
     */
    @Transactional(readOnly = true)
    public boolean isConfigurableTool(String toolKey) {
        return toolRegistry.isConfigurableTool(toolKey);
    }
}
