package com.easyagents.agent.runtime.skill;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 声明式 Skill 配置。
 */
public class AgentSkillSpec {

    private String skillId;
    private String name;
    private String description;
    private String skillContent;
    private Map<String, String> resources = new LinkedHashMap<>();
    private String source;
    private Map<String, Object> metadata = new LinkedHashMap<>();

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

    /**
     * 设置Skill ID。
     *
     * @param skillId Skill ID 标识
     */
    public void setSkillId(String skillId) {
        this.skillId = skillId;
    }

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

    /**
     * 设置Skill 名称。
     *
     * @param name Skill 名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取描述。
     *
     * @return 描述
     */
    public String getDescription() {
        return description;
    }

    /**
     * 设置描述。
     *
     * @param description 描述
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * 获取Skill 内容。
     *
     * @return Skill 内容
     */
    public String getSkillContent() {
        return skillContent;
    }

    /**
     * 设置Skill 内容。
     *
     * @param skillContent Skill 内容
     */
    public void setSkillContent(String skillContent) {
        this.skillContent = skillContent;
    }

    /**
     * 获取资源映射。
     *
     * @return 资源映射
     */
    public Map<String, String> getResources() {
        return resources;
    }

    /**
     * 设置资源映射。
     *
     * @param resources 资源映射
     */
    public void setResources(Map<String, String> resources) {
        this.resources = resources == null ? new LinkedHashMap<>() : new LinkedHashMap<>(resources);
    }

    /**
     * 获取来源。
     *
     * @return 来源
     */
    public String getSource() {
        return source;
    }

    /**
     * 设置来源。
     *
     * @param source 来源
     */
    public void setSource(String source) {
        this.source = source;
    }

    /**
     * 获取元数据。
     *
     * @return 元数据
     */
    public Map<String, Object> getMetadata() {
        return metadata;
    }

    /**
     * 设置元数据。
     *
     * @param metadata 元数据
     */
    public void setMetadata(Map<String, Object> metadata) {
        this.metadata = metadata == null ? new LinkedHashMap<>() : new LinkedHashMap<>(metadata);
    }
}
