package com.yice.webadmin.app.vo;

import com.yice.common.core.base.vo.BaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Map;

/**
 * ModelVersionVO视图对象。
 *
 * @author linking
 * @date 2023-04-13
 */
@ApiModel("ModelVersionVO视图对象")
@Data
@EqualsAndHashCode(callSuper = true)
public class ModelVersionVo extends BaseVo {

    /**
     * 版本ID。
     */
    @ApiModelProperty(value = "版本ID")
    private Long versionId;

    /**
     * 模型ID。
     */
    @ApiModelProperty(value = "模型ID")
    private Long modelId;

    /**
     * 版本名称。
     */
    @ApiModelProperty(value = "版本名称")
    private String versionName;

    /**
     * 版本描述。
     */
    @ApiModelProperty(value = "版本描述")
    private String versionDescribe;

    /**
     * 开源协议。
     */
    @ApiModelProperty(value = "开源协议")
    private String protocol;

    /**
     * 协议链接。
     */
    @ApiModelProperty(value = "协议链接")
    private String protocolUrl;

    /**
     * 输入输出模式。
     */
    @ApiModelProperty(value = "输入输出模式")
    private String ioMode;

    /**
     * 版权信息。
     */
    @ApiModelProperty(value = "版权信息")
    private String copyright;

    /**
     * 模型版本号。
     */
    @ApiModelProperty(value = "模型版本号")
    private Integer modelVersion;

    /**
     * 版本状态。
     */
    @ApiModelProperty(value = "版本状态")
    private Integer status;

    /**
     * 版本来源。
     */
    @ApiModelProperty(value = "版本来源")
    private String versionSource;

    /**
     * 基础模型。
     */
    @ApiModelProperty(value = "基础模型")
    private String baseModel;

    /**
     * 业务标签。
     */
    @ApiModelProperty(value = "业务标签")
    private String businessLabel;

    /**
     * 基础模型ID。
     */
    @ApiModelProperty(value = "基础模型ID")
    private Long baseId;

    /**
     * 模型训练方式。
     */
    @ApiModelProperty(value = "模型训练方式")
    private String modelTrainingMethod;

    /**
     * 运行名称。
     */
    @ApiModelProperty(value = "运行名称")
    private String runName;

    /**
     * 训练任务。
     */
    @ApiModelProperty(value = "训练任务")
    private String trainingTask;

    /**
     * 模型地址。
     */
    @ApiModelProperty(value = "模型地址")
    private String modelUrl;


    /**
     * 是否被压缩。
     */
    @ApiModelProperty(value = "是否被压缩")
    private Integer isCompress;

    /**
     * modelId 的一对一关联数据对象，数据对应类型为ModelManageVo。
     */
    @ApiModelProperty(value = "modelId 的一对一关联数据对象，数据对应类型为ModelManageVo")
    private Map<String, Object> modelManage;

    /**
     * 训练运行ID。
     */
    @ApiModelProperty(value = "训练运行ID")
    private Long runId;

    /**
     * 训练任务ID。
     */
    @ApiModelProperty(value = "训练任务ID")
    private Long taskId;

    /**
     * 默认的提示词模板。
     */
    @ApiModelProperty(value = "默认的提示词模板")
    private String basePromptTemplate;

    /**
     * 创建人名称。
     */
    @ApiModelProperty(value = "创建人名称")
    private Map<String, Object> createUserIdDictMap;
}
