package com.ruoyi.interfaces.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 模型对象 tb_models
 *
 * @author ruoyi
 * @date 2025-06-12
 */
public class TbModels extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 模型编号;
     */
    @ApiModelProperty("模型编号id")
    private Long modelId;

    /**
     * 模型名称;模型名称
     */
    @ApiModelProperty("模型名称")
    @Excel(name = "模型名称")
    private String modelName;

    /**
     * 模型简称;模型简称
     */
    @ApiModelProperty("模型简称")
    @Excel(name = "模型简称")
    private String modelShortname;

    /**
     * 模型分组;模型分组
     */
    @ApiModelProperty("模型分组")
    @Excel(name = "模型分组")
    private String modelGroup;

    /**
     * 模型描述;模型描述
     */
    @ApiModelProperty("模型描述")
    @Excel(name = "模型描述")
    private String modelDescription;

    /**
     * 版本;版本
     */
    @ApiModelProperty("版本")
    @Excel(name = "版本")
    private String version;

    /**
     * 模型类型;模型类型
     */
    @ApiModelProperty("模型类型")
    @Excel(name = "模型类型")
    private String modelType;

    /**
     * 模型执行类型;模型执行类型
     */
    @ApiModelProperty("模型执行类型")
    @Excel(name = "模型执行类型")
    private String executionType;

    /**
     * 任务类型;任务类型
     */
    @ApiModelProperty("任务类型")
    @Excel(name = "任务类型")
    private String taskType;

    /**
     * 提供单位;提供单位
     */
    @ApiModelProperty("提供单位")
    @Excel(name = "提供单位")
    private String providerUnit;

    /**
     * 动态库路径;动态库路径
     */
    @ApiModelProperty("动态库路径")
    @Excel(name = "动态库路径")
    private String dllPath;

    /**
     * 是否可率定;是否可率定
     */
    @ApiModelProperty(value = "是否可率定",allowableValues = "1")
    @Excel(name = "是否可率定")
    private String isCalibratable;

    /**
     * 状态;状态
     */
    @ApiModelProperty(value = "状态",allowableValues = "1")
    @Excel(name = "状态")
    private String status;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    @Excel(name = "创建人")
    private String createdBy;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /**
     * 更新人
     */
    @ApiModelProperty("更新人")
    @Excel(name = "更新人")
    private String updatedBy;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    /**
     * 程序语言
     */
    @ApiModelProperty("程序语言")
    @Excel(name = "程序语言")
    private String modelLanguafe;

    /**
     * 版本号
     */
    @ApiModelProperty("版本号")
    @Excel(name = "版本号")
    private String modelVersion;

    /**
     * 模型运行需要的最小CPU核心数
     */
    @ApiModelProperty("模型运行需要的最小CPU核心数")
    @Excel(name = "模型运行需要的最小CPU核心数")
    private String cpuNum;

    /**
     * 模型运行需要的最小内存
     */
    @ApiModelProperty("模型运行需要的最小内存")
    @Excel(name = "模型运行需要的最小内存")
    private String memo;

    /**
     * 是否需要GPU
     */
    @ApiModelProperty("是否需要GPU")
    @Excel(name = "是否需要GPU")
    private String isGpu;

    /**
     * CPU架构平台
     */
    @ApiModelProperty("CPU架构平台")
    @Excel(name = "CPU架构平台")
    private String platform;

    /**
     * 模型执行命令
     */
    @ApiModelProperty("模型执行命令")
    @Excel(name = "模型执行命令")
    private String runModel;

    /**
     * 输入、输出示例文件地址
     */
    @ApiModelProperty("输入、输出示例文件地址")
    @Excel(name = "输入、输出示例文件地址")
    private String modelExample;

    public void setModelId(Long modelId) {
        this.modelId = modelId;
    }

    public Long getModelId() {
        return modelId;
    }

    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    public String getModelName() {
        return modelName;
    }

    public void setModelShortname(String modelShortname) {
        this.modelShortname = modelShortname;
    }

    public String getModelShortname() {
        return modelShortname;
    }

    public void setModelGroup(String modelGroup) {
        this.modelGroup = modelGroup;
    }

    public String getModelGroup() {
        return modelGroup;
    }

    public void setModelDescription(String modelDescription) {
        this.modelDescription = modelDescription;
    }

    public String getModelDescription() {
        return modelDescription;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public String getVersion() {
        return version;
    }

    public void setModelType(String modelType) {
        this.modelType = modelType;
    }

    public String getModelType() {
        return modelType;
    }

    public void setExecutionType(String executionType) {
        this.executionType = executionType;
    }

    public String getExecutionType() {
        return executionType;
    }

    public void setTaskType(String taskType) {
        this.taskType = taskType;
    }

    public String getTaskType() {
        return taskType;
    }

    public void setProviderUnit(String providerUnit) {
        this.providerUnit = providerUnit;
    }

    public String getProviderUnit() {
        return providerUnit;
    }

    public void setDllPath(String dllPath) {
        this.dllPath = dllPath;
    }

    public String getDllPath() {
        return dllPath;
    }

    public void setIsCalibratable(String isCalibratable) {
        this.isCalibratable = isCalibratable;
    }

    public String getIsCalibratable() {
        return isCalibratable;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() {
        return updatedTime;
    }

    public void setModelLanguafe(String modelLanguafe) {
        this.modelLanguafe = modelLanguafe;
    }

    public String getModelLanguafe() {
        return modelLanguafe;
    }

    public void setModelVersion(String modelVersion) {
        this.modelVersion = modelVersion;
    }

    public String getModelVersion() {
        return modelVersion;
    }

    public void setCpuNum(String cpuNum) {
        this.cpuNum = cpuNum;
    }

    public String getCpuNum() {
        return cpuNum;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public String getMemo() {
        return memo;
    }

    public void setIsGpu(String isGpu) {
        this.isGpu = isGpu;
    }

    public String getIsGpu() {
        return isGpu;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }

    public String getPlatform() {
        return platform;
    }

    public void setRunModel(String runModel) {
        this.runModel = runModel;
    }

    public String getRunModel() {
        return runModel;
    }

    public void setModelExample(String modelExample) {
        this.modelExample = modelExample;
    }

    public String getModelExample() {
        return modelExample;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("modelId", getModelId())
                .append("modelName", getModelName())
                .append("modelShortname", getModelShortname())
                .append("modelGroup", getModelGroup())
                .append("modelDescription", getModelDescription())
                .append("VERSION", getVersion())
                .append("modelType", getModelType())
                .append("executionType", getExecutionType())
                .append("taskType", getTaskType())
                .append("providerUnit", getProviderUnit())
                .append("dllPath", getDllPath())
                .append("isCalibratable", getIsCalibratable())
                .append("STATUS", getStatus())
                .append("createdBy", getCreatedBy())
                .append("createdTime", getCreatedTime())
                .append("updatedBy", getUpdatedBy())
                .append("updatedTime", getUpdatedTime())
                .append("modelLanguafe", getModelLanguafe())
                .append("modelVersion", getModelVersion())
                .append("cpuNum", getCpuNum())
                .append("MEMO", getMemo())
                .append("isGpu", getIsGpu())
                .append("PLATFORM", getPlatform())
                .append("runModel", getRunModel())
                .append("modelExample", getModelExample())
                .toString();
    }
}