package com.njcn.csharmonic.param;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import java.util.List;

/**
 * Description:
 * Date: 2023/6/14  15:09【需求编号】
 *
 * @author clam
 * @version V1.0.0
 */
@Data
public class CommonStatisticalQueryParam {
    @ApiModelProperty(value = "监测点集")
    private List<String> lineList;
    @ApiModelProperty(value = "设备id")
    private String DevId;
    @ApiModelProperty(value = "指标组id")
    private String statisticalId;
    @ApiModelProperty(value = "取值类型（Max，Min，cp95，avg）")
    private String valueType;

    @ApiModelProperty(value = "一次值：Primary;二次值：Secondary")
    private String dataLevel;

    @ApiModelProperty(value = "频次2-50")
    private String frequency;

    @ApiModelProperty(value = "开始时间")
    private String startTime;

    @ApiModelProperty(value = "结束时间")
    private String endTime;

    private String process;

    @ApiModelProperty(value = "用于选择多个指标及谐波次数")
    List<CommonStatisticalQueryParam> list;
    //用于暂态事件列表分页
    @ApiModelProperty(value = "多个谐波次数")
    private List<String> frequencys;
    private int pageNum;
    private int pageSize;
    @ApiModelProperty(value = "查询分类:传1 则是趋势数据tab页面,传2 则是实时数据tab页面,传3 则是暂态事件tab页面,传4 则是电度事件tab页面")
    private String type;
    @ApiModelProperty(value = "监测点")
    private String lineId;

    @ApiModelProperty(value = "数据模型 0:全量查询 1:增量查询")
    private Integer dataModel;

    @ApiModelProperty(value = "持续时间最小值",name = "evtParamTm")
    @Range(min = 0, max = 60, message = "持续时间范围应在0~60s之间")
    private Double evtParamTmMin;

    @ApiModelProperty(value = "持续时间最大值",name = "evtParamTm")
    @Range(min = 0, max = 60, message = "持续时间范围应在0~60s之间")
    private Double evtParamTmMax;

    @ApiModelProperty(value = "特征幅值最小值",name = "featureAmplitude")
    @Range(min = 0, max = 180, message = "特征幅值范围应在0~180%之间")
    private Double featureAmplitudeMin;

    @ApiModelProperty(value = "特征幅值最大值",name = "featureAmplitude")
    @Range(min = 0, max = 180, message = "特征幅值范围应在0~180%之间")
    private Double featureAmplitudeMax;

    @ApiModelProperty(value = "是否存在波形",name = "fileFlag")
    private Integer fileFlag;

    @ApiModelProperty(value = "严重度最小值",name = "severityMin")
    @Range(min = 0, max = 10, message = "严重度范围应在0~10之间")
    private Double severityMin;

    @ApiModelProperty(value = "严重度最大值",name = "severityMax")
    @Range(min = 0, max = 10, message = "严重度范围应在0~10之间")
    private Double severityMax;

    @ApiModelProperty(value = "事件类型",name = "target")
    private List<String> target;


}
