package com.easyagents.agent.runtime.skill;

/**
 * Skill 与工具的运行时绑定关系。
 */
public class AgentSkillBinding {

    private final String skillId;
    private final String skillName;
    private final String skillDisplayName;
    private final String skillBoxId;

    /**
     * 创建 Skill 绑定关系。
     *
     * @param skillId Skill ID
     * @param skillName Skill 名称
     * @param skillBoxId SkillBox ID
     */
    public AgentSkillBinding(String skillId, String skillName, String skillBoxId) {
        this(skillId, skillName, skillName, skillBoxId);
    }

    /**
     * 创建带展示名称的 Skill 绑定关系。
     *
     * @param skillId Skill ID
     * @param skillName Skill 规范名称
     * @param skillDisplayName Skill 展示名称
     * @param skillBoxId SkillBox ID
     */
    public AgentSkillBinding(String skillId,
                             String skillName,
                             String skillDisplayName,
                             String skillBoxId) {
        this.skillId = skillId;
        this.skillName = skillName;
        this.skillDisplayName = skillDisplayName == null || skillDisplayName.isBlank()
                ? skillName
                : skillDisplayName;
        this.skillBoxId = skillBoxId;
    }

    /**
     * 获取 Skill ID。
     *
     * @return Skill ID
     */
    public String getSkillId() {
        return skillId;
    }

    /**
     * 获取 Skill 名称。
     *
     * @return Skill 名称
     */
    public String getSkillName() {
        return skillName;
    }

    /**
     * 获取 Skill 展示名称。
     *
     * @return Skill 展示名称
     */
    public String getSkillDisplayName() {
        return skillDisplayName;
    }

    /**
     * 获取 SkillBox ID。
     *
     * @return SkillBox ID
     */
    public String getSkillBoxId() {
        return skillBoxId;
    }
}
