package tech.easyflow.skill.enums;

import tech.easyflow.common.web.exceptions.BusinessException;

/**
 * Skill 可绑定的平台 Tool 类型。
 */
public enum SkillToolType {

    /** 已发布工作流。 */
    WORKFLOW,
    /** 已启用插件工具。 */
    PLUGIN,
    /** 整组 MCP 服务。 */
    MCP;

    /**
     * 解析 Tool 类型。
     *
     * @param value Tool 类型编码
     * @return Tool 类型
     * @throws BusinessException 类型为空或不受支持时抛出
     */
    public static SkillToolType from(String value) {
        if (value == null || value.isBlank()) {
            throw new BusinessException("Skill 工具类型不能为空");
        }
        try {
            return valueOf(value.trim().toUpperCase());
        } catch (IllegalArgumentException exception) {
            throw new BusinessException("不支持的 Skill 工具类型：" + value);
        }
    }
}
