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

import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.web.constant.ValidMessage;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * @author denghuajun
 * @version 1.0.0
 * @date 2022/3/30
 */

/**
 * 分页查询实体
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel
public class RunManageParam extends BaseParam implements Serializable {

    @ApiModelProperty(name = "statisticalType", value = "统计类型")
    @NotNull(message = "统计类型不可为空")
    private SimpleDTO statisticalType;

    @ApiModelProperty(name = "deptIndex", value = "部门索引")
    @NotBlank(message = "部门索引不可为空")
    private String deptIndex;

    @ApiModelProperty(name = "serverName", value = "服务名称")
    @NotBlank(message = "服务名称不可为空")
    private String serverName;

    @ApiModelProperty(name = "scale", value = "电压等级")
    private List<SimpleDTO> scale;

    @ApiModelProperty(name = "loadType", value = "干扰源类型")
    private List<SimpleDTO> loadType;

    @ApiModelProperty(name = "manufacturer", value = "终端厂家")
    private List<SimpleDTO> manufacturer;

    /**
     * 0-非网公司
     * 1-网公司
     * 2-全部数据
     */
    @ApiModelProperty("网公司标识")
    @Range(min = 0, max = 2, message = "网公司标识" + ValidMessage.PARAM_FORMAT_ERROR)
    private Integer monitorFlag;

    /**
     * 0-电网侧
     * 1-非电网侧
     */
    @ApiModelProperty("电网侧标识")
    @Range(min = 0, max = 2, message = "电网侧标识" + ValidMessage.PARAM_FORMAT_ERROR)
    private Integer powerFlag;

    @ApiModelProperty(name = "comFlag", value = "通讯状态")
    private List<Integer> comFlag;

    @ApiModelProperty(name = "runFlag", value = "终端状态")
    private List<Integer> runFlag;

    @ApiModelProperty(name = "searchValue", value = "筛选数据")
    private String searchValue;

    @ApiModelProperty(name = "evaluate", value = "评价")
    private String evaluate;

    @ApiModelProperty(name = "ids", value = "监测点id集合")
    private List<String> ids;
}
