package tech.easyflow.ai.service;

import com.mybatisflex.core.service.IService;
import tech.easyflow.ai.entity.BotPlugin;
import tech.easyflow.ai.entity.Plugin;
import tech.easyflow.ai.entity.PluginItem;

import java.math.BigInteger;
import java.util.List;

/**
 *  服务层。
 *
 * @author michael
 * @since 2025-04-07
 */
public interface BotPluginService extends IService<BotPlugin> {

    List<Plugin> getList(String botId);

    boolean doRemove(String botId, String pluginId);

    List<BigInteger> getBotPluginToolIds(String botId);

    void saveBotAndPluginTool(BigInteger botId, BigInteger[] pluginToolIds);

    /**
     * 查询插件工具，并标记指定 Bot 已绑定的工具。
     *
     * @param pluginId 插件 ID
     * @param botId Bot ID
     * @return 插件工具列表
     */
    List<PluginItem> searchPluginTools(BigInteger pluginId, BigInteger botId);

    /**
     * 查询指定 Bot 已绑定的插件工具。
     *
     * @param botId Bot ID
     * @return 已绑定插件工具列表
     */
    List<PluginItem> getPluginTools(BigInteger botId);
}
