package com.solution.system.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.solution.common.annotation.Excel;
import com.solution.common.core.domain.BaseEntity;

/**
 * 模板参数定义对象 templateparameterdef
 * 
 * @author ruoyi
 * @date 2026-02-05
 */
public class Templateparameterdef extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 参数定义ID (主键) */
    private Long id;

    /** 关联到哪个节点模板 (外键: NodeTemplate.id) */
    @Excel(name = "关联到哪个节点模板 (外键: NodeTemplate.id)")
    private Long templateId;

    /** 参数键名, 例如: "target_name", "speed" */
    @Excel(name = "参数键名, 例如: "target_name", "speed"")
    private String paramKey;

    /** 参数数据类型, 例如: "float", "int", "string", "bool" */
    @Excel(name = "参数数据类型, 例如: "float", "int", "string", "bool"")
    private String dataType;

    /** 默认值 */
    @Excel(name = "默认值")
    private String defaultValue;

    /** 参数描述 */
    @Excel(name = "参数描述")
    private String description;

    /** 判断参数模版是节点的参数模版还是条件的参数模版 */
    @Excel(name = "判断参数模版是节点的参数模版还是条件的参数模版")
    private String templateType;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setTemplateId(Long templateId) 
    {
        this.templateId = templateId;
    }

    public Long getTemplateId() 
    {
        return templateId;
    }

    public void setParamKey(String paramKey) 
    {
        this.paramKey = paramKey;
    }

    public String getParamKey() 
    {
        return paramKey;
    }

    public void setDataType(String dataType) 
    {
        this.dataType = dataType;
    }

    public String getDataType() 
    {
        return dataType;
    }

    public void setDefaultValue(String defaultValue) 
    {
        this.defaultValue = defaultValue;
    }

    public String getDefaultValue() 
    {
        return defaultValue;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setTemplateType(String templateType) 
    {
        this.templateType = templateType;
    }

    public String getTemplateType() 
    {
        return templateType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("templateId", getTemplateId())
            .append("paramKey", getParamKey())
            .append("dataType", getDataType())
            .append("defaultValue", getDefaultValue())
            .append("description", getDescription())
            .append("templateType", getTemplateType())
            .toString();
    }
}
