package com.njcn.cssystem.pojo.param;

import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 类的介绍：
 *
 * @author xuyang
 * @version 1.0.0
 * @createTime 2023/5/24 14:37
 */
@Data
public class EleEpdPqdParam {

    @ApiModelProperty(value = "数据名称")
    @NotBlank(message="数据名称不能为空！")
    private String name;

    @ApiModelProperty(value = "别名")
    private String otherName;

    @ApiModelProperty(value = "展示名称")
    private String showName;

    @ApiModelProperty(value = "序号")
    @NotNull(message="序号不能为空！")
    private Integer sort;

    @ApiModelProperty(value = "基础数据类型")
    private String type;

    @ApiModelProperty(value = "相别")
    @NotBlank(message="相别不能为空！")
    private String phase;

    @ApiModelProperty(value = "单位")
    private String unit;

    @ApiModelProperty(value = "数据开始谐波次数")
    private Integer harmStart;

    @ApiModelProperty(value = "数据结束谐波次数")
    private Integer harmEnd;

    @ApiModelProperty(value = "数据分类")
    @NotBlank(message="数据分类不能为空！")
    private String classId;

    @ApiModelProperty(value = "数据统计方法")
    private String statMethod;

    @ApiModelProperty(value = "系统类别")
    private String systemType;

    @ApiModelProperty(value = "数据模型")
    @NotBlank(message="数据模型不能为空！")
    private String dataType;

    @ApiModelProperty(value = "数据是否上送")
    private Integer tranFlag;

    @ApiModelProperty(value = "上送规则")
    private String tranRule;

    @ApiModelProperty(value = "事件类别||参数类别||定值数据类型")
    private String eventType;

    @ApiModelProperty(value = "是否存储||是否加密")
    private Integer storeFlag;

    @ApiModelProperty(value = "是否需遥控校验")
    private Integer curSts;

    @ApiModelProperty(value = "是否可远程控制||是否可修改||是否支持自动控制")
    private Integer ctlSts;

    @ApiModelProperty(value = "设置最大值")
    private Integer maxNum;

    @ApiModelProperty(value = "设置最小值")
    private Integer minNum;

    @ApiModelProperty(value = "参数为enum可设置的所有值序列")
    private String setValue;

    @ApiModelProperty(value = "参数string可设置字符串的长度上限")
    private Integer strlen;

    @ApiModelProperty(value = "参数缺省值")
    private String defaultValue;

    @ApiModelProperty(value = "报表数据来源(mysql表名)")
    private String resourcesId;

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class EleEpdPqdUpdateParam extends EleEpdPqdParam {
        @ApiModelProperty("Id")
        @NotBlank(message = "id不为空")
        private String id;
    }

    /**
     * 分页查询实体
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class EleEpdPqdQueryParam extends BaseParam {

    }

}
