package com.njcn.harmonic.pojo.param;

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

import java.io.Serializable;
import java.util.List;

/**
 * 类的介绍：
 *
 * @author xuyang
 * @version 1.0.0
 * @createTime 2024/6/18 15:53
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class OnlineParam extends BaseParam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    private String id;

    @ApiModelProperty(value = "部门id")
    private String deptId;

    @ApiModelProperty(value = "部门名称")
    private String deptName;

    @ApiModelProperty(value = "指标id")
    private String targetId;

    @ApiModelProperty(value = "指标集合")
    private List<String> targetList;

    @ApiModelProperty(value = "预警阈值")
    private Integer alertThreshold;

    @ApiModelProperty(value = "告警阈值")
    private Integer alarmThreshold;

    @ApiModelProperty(value = "数据类型")
    private Integer dataType;

    @ApiModelProperty(value = "监测点类型 0:电网侧 1:非电网侧")
    private String lineType;

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class ReportParam extends OnlineParam  {

        @ApiModelProperty(name = "type", value = "1:预警单 2:告警单")
        private Integer type;

        @ApiModelProperty(name = "issueDetail", value = "问题描述")
        private String issueDetail;

        @ApiModelProperty(name = "reformAdvice", value = "整改意见")
        private String reformAdvice;

        @ApiModelProperty(name = "year", value = "年")
        private String year;

        @ApiModelProperty(name = "number", value = "编号")
        private String number;

        @ApiModelProperty(name = "idList", value = "问题id集合")
        private List<String> idList;
    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class DetailParam extends OnlineParam  {

        @ApiModelProperty(name = "lineId", value = "监测点id")
        private String lineId;
    }

}
