package com.njcn.device.pq.pojo.param;

import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.web.constant.ValidMessage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.time.LocalDate;

/**
 * @version 1.0.0
 * @author: chenchao
 * @date: 2022/05/23 16:44
 */
@Data
@ApiModel
public class VersionParam {

    /**
     * 程序版本号
     */
    @ApiModelProperty("程序版本号")
    private String name;

    /**
     * 版本协议
     */
    @ApiModelProperty("版本协议")
    private String protocol;

    /**
     * 版本日期
     */
    @ApiModelProperty("版本日期")
    private LocalDate date;

    /**
     * 装置系列(终端型号),字典表
     */
    @ApiModelProperty("装置系列(终端类型)")
    private String devType;

    /**
     * 版本类型，Null为通用类型，not null为特殊类型
     */
    @ApiModelProperty("版本类型，Null为通用类型，not null为特殊类型")
    private String versionType;

    /**
     * 描述
     */
    @ApiModelProperty("描述")
    private String remark;

    /**
     * 版本文件信息
     */
    @ApiModelProperty("版本文件信息")
    private byte[] file;

    /**
     * 更新操作实体
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class VersionUpdateParam extends VersionParam {
        /**
         * 表Id
         */
        @ApiModelProperty("id")
        @NotBlank(message = ValidMessage.ID_NOT_BLANK)
        @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
        private String id;
    }

}
