package cn.iocoder.yudao.module.chain.controller.admin.blockcertificate.vo;

import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;

/**
* 区块证书 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class BlockCertificateBaseVO {

    @ApiModelProperty(value = "上链操作专属ID", required = true)
    @NotNull(message = "上链操作专属ID不能为空")
    private String chainOperateId;

    @ApiModelProperty(value = "操作类型 0:批次上链  1:环节上链  2：出入库上链", required = true)
    @NotNull(message = "操作类型 0:批次上链  1:环节上链  2：出入库上链不能为空")
    private Integer operateType;

    @ApiModelProperty(value = "操作类型描述")
    private String operateName;

    @ApiModelProperty(value = "操作对象id：根据operate_type的值，存储不同关联表的id")
    private Long operateObjId;

    @ApiModelProperty(value = "批次id")
    private String batchId;

    @ApiModelProperty(value = "环节id")
    private String linkId;

    @ApiModelProperty(value = "环节名称")
    private String linkName;

    @ApiModelProperty(value = "所在链名称")
    private String chainName;

    @ApiModelProperty(value = "所在区块")
    private String chainBlock;

    @ApiModelProperty(value = "成块时间")
    private Date blockTime;

    @ApiModelProperty(value = "唯一区块编码")
    private String chainBlockIdentity;

    @ApiModelProperty(value = "上链状态 0未上链  1已上链", required = true)
    @NotNull(message = "上链状态 0未上链  1已上链不能为空")
    private Integer chainState;

    @ApiModelProperty(value = "链状态  0激活  1冻结")
    private Integer chainStatus;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "是否扫码展示")
    private Boolean scanShow;

    @ApiModelProperty(value = "语言类型ID")
    private Long languageTypeId;

    @ApiModelProperty(value = "排序")
    private Integer sort;

    @ApiModelProperty(value = "父区块证书的上链操作专属ID")
    private String parentOperateId;

    @ApiModelProperty(value = "上传者身份")
    private String uploadUser;

    @ApiModelProperty(value = "上传者身份证明")
    private String uploadVerify;

    @ApiModelProperty(value = "上传时间")
    private Date uploadTime;

    @ApiModelProperty(value = "上传地点坐标")
    private String uploadLocation;

    @ApiModelProperty(value = "所属商户id", required = true)
    @NotNull(message = "所属商户id不能为空")
    private Long belongBusinessId;

    @ApiModelProperty(value = "所属商户名称", required = true)
    @NotNull(message = "所属商户名称不能为空")
    private String belongBusinessName;

}
