package com.njcn.harmonic.pojo.vo;

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

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

/**
 * 分布式光伏-分布式光伏总览返回前端实体类
 *
 * @author yzh
 * @date 2022/11/24
 */
@Data
@ApiModel("分布式光伏-分布式光伏总览返回前端实体类")
public class RStatOrgPvVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 潮流倒送
     */
    @ApiModelProperty(name = "flowReversal", value = "潮流倒送")
    private List<FlowReversal> flowReversal=new ArrayList<>();

    /**
     * 电压越限
     */
    @ApiModelProperty(name = "voltageOutOfLimit", value = "电压越限")
    private List<VoltageOutOfLimit> voltageOutOfLimit=new ArrayList<>();

    /**
     * 光伏渗透率
     */
    @ApiModelProperty(name = "pvPermeability", value = "光伏渗透率")
    private List<PvPermeability> pvPermeability=new ArrayList<>();

    /**
     * 低功率因素
     */
    @ApiModelProperty(name = "lowPowerFactor", value = "低功率因素")
    private List<LowPowerFactor> lowPowerFactor=new ArrayList<>();

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class FlowReversal extends SimpleVO {
    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class VoltageOutOfLimit extends SimpleVO {
    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class PvPermeability extends SimpleVO {
    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class LowPowerFactor extends SimpleVO {
    }

    @Data
    private static class SimpleVO {
        private String monitor;
        private String type;
    }
}
