package com.hdkj.lt.modle.dto.abnormal;


import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 运行方式优化通知接收类
 */
@Data
public class AbnormalMessageDataDTO {
    /**
     * 运行方式优化事件唯一标识，可以通过该标识获取运行方式优化结果
     */
    @ApiModelProperty(value = "运行方式优化事件唯一标识，可以通过该标识获取运行方式优化结果")
    private String id;

    /**
     * 触发时间，格式“YYYYY-MM-DD hh:mm:ss”
     */
    @ApiModelProperty(value = "触发时间，格式“YYYYY-MM-DD hh:mm:ss”")
    private Date dateTime;

    /**
     * 触发原因：0手动触发，1预测重过载触发，2故障停电触发
     */
    @ApiModelProperty(value = "触发原因：0手动触发，1预测重过载触发，2故障停电触发")
    private int reason;

    /**
     * 调优类型 0-重过载 1-电压越限
     */
    private String loadAlarmType;

    /**
     * 线路列表，设计成list，支持多条线路共同进行运行方式调优
     */
    @ApiModelProperty(value = "线路列表，设计成list，支持多条线路共同进行运行方式调优")
    private List<Feeder> feeders;

    @Data
    public static class Feeder {
        /**
         * 线路id
         */
        @ApiModelProperty(value = "线路id")
        private String psrId;

        /**
         * 线路类型
         */
        @ApiModelProperty(value = "线路类型")
        private String psrType;

        /**
         * 额定电流（单位A）
         */
        @ApiModelProperty(value = "额定电流（单位A）")
        private BigDecimal rateCurrent;

        /**
         * 负载率告警类型（0 正常 1重载 2过载 3轻载）
         */
        @ApiModelProperty(value = "负载率告警类型（0 正常 1重载 2过载 3轻载）")
        private int loadAlarmType;

        /**
         * 告警开始时间，格式“YYYYY-MM-DD hh:mm:ss”
         */
        @ApiModelProperty(value = "告警开始时间，格式“YYYYY-MM-DD hh:mm:ss”")
        private Date loadAlarmStartTime;

        /**
         * 告警结束时间，格式“YYYYY-MM-DD hh:mm:ss”
         */
        @ApiModelProperty(value = "告警结束时间，格式“YYYYY-MM-DD hh:mm:ss”")
        private Date loadAlarmEndTime;

        /**
         * 最大负载时刻
         */
        @ApiModelProperty(value = "最大负载时刻")
        private Date maxLoadTime;

        /**
         * 最大负载率
         */
        @ApiModelProperty(value = "最大负载率")
        private BigDecimal maxLoad;

        /**
         * 线路负荷最低电压
         */
        private String minVol;

        /**
         * 线路负荷最高电压
         */
        private String maxVol;

    }

}
