package cn.iocoder.yudao.module.pms.controller.admin.yanfan.protocol.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

@Schema(description = "管理后台 - yf协议新增/修改 Request VO")
@Data
public class IotYfProtocolSaveReqVO {

    @Schema(description = "自增id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8132")
    private Long id;

    @Schema(description = "协议编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "协议编码不能为空")
    private String protocolCode;

    @Schema(description = "协议名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotEmpty(message = "协议名称不能为空")
    private String protocolName;

    @Schema(description = "协议jar包,js包，c程序上传地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
    @NotEmpty(message = "协议jar包,js包，c程序上传地址不能为空")
    private String protocolFileUrl;

    @Schema(description = "协议类型 0:未知 1:jar，2.js,3.c", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "协议类型 0:未知 1:jar，2.js,3.c不能为空")
    private Integer protocolType;

    @Schema(description = "协议文件摘要(文件的md5)", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "协议文件摘要(文件的md5)不能为空")
    private String jarSign;

    @Schema(description = "0:草稿 1:启用 2:停用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "0:草稿 1:启用 2:停用不能为空")
    private Integer protocolStatus;

    @Schema(description = "0:正常 1:删除", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "0:正常 1:删除不能为空")
    private Integer delFlag;

    @Schema(description = "部门id", example = "8215")
    private Long deptId;

}
