package com.easyagents.skill.model;

import java.io.Serial;
import java.io.Serializable;

/**
 * Skill 轻量描述。
 */
public class SkillDescriptor implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    private String id;
    private String name;
    private String description;
    private SkillMetadata metadata = new SkillMetadata();

    /**
     * 创建空 Skill 描述。
     */
    public SkillDescriptor() {
    }

    /**
     * 创建 Skill 描述。
     *
     * @param id Skill ID
     * @param name Skill 名称
     * @param description Skill 描述
     * @param metadata 元数据
     */
    public SkillDescriptor(String id, String name, String description, SkillMetadata metadata) {
        this.id = id;
        this.name = name;
        this.description = description;
        setMetadata(metadata);
    }

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

    /**
     * 设置 Skill ID。
     *
     * @param id Skill ID
     */
    public void setId(String id) {
        this.id = id;
    }

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

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

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

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

    /**
     * 获取元数据。
     *
     * @return 元数据
     */
    public SkillMetadata getMetadata() {
        return metadata;
    }

    /**
     * 设置元数据。
     *
     * @param metadata 元数据
     */
    public void setMetadata(SkillMetadata metadata) {
        this.metadata = metadata == null ? new SkillMetadata() : metadata;
    }
}
