package com.hdkj.lt.bf.entity.vo;

import lombok.Data;

import java.math.BigDecimal;

/**
 * 重构方案信息（列表和详情共用）
 */
@Data
public class ReconSchemeVO {

    /** 方案ID */
    private Long id;

    /** 方案名称 */
    private String schemeName;

    /** 事件ID */
    private String eventId;

    /** 是否推荐 */
    private Boolean isRecommend;

    /** 热校验是否通过 */
    private Boolean hotCheckPassed;

    /** 安全校验是否通过 */
    private Boolean safetyCheckPassed;

    /** 开关操作次数 */
    private Integer switchOpCount;

    /** 重构前健康度 */
    private BigDecimal healthScoreBefore;

    /** 重构后健康度 */
    private BigDecimal healthScoreAfter;

    /** 重构前最大负载率(%) */
    private BigDecimal maxLoadingPctBefore;

    /** 重构后最大负载率(%) */
    private BigDecimal maxLoadingPctAfter;

    /** 重构前电压越限节点数 */
    private Integer voltageOverLimitCountBefore;

    /** 重构后电压越限节点数 */
    private Integer voltageOverLimitCountAfter;

    /** 重构前总线损(MW) */
    private BigDecimal totalLossMwBefore;

    /** 重构后总线损(MW) */
    private BigDecimal totalLossMwAfter;

    /** 负载详细指标 */
    private DetailLoading detailLoading;

    /** 电压详细指标 */
    private DetailVoltage detailVoltage;

    /** 损耗详细指标 */
    private DetailLoss detailLoss;

    /** 五维度评分 */
    private Dimensions dimensions;

    @Data
    public static class DetailLoading {
        /** 重构前平均负载率(%) */
        private BigDecimal avgLoadingPctBefore;
        /** 重构后平均负载率(%) */
        private BigDecimal avgLoadingPctAfter;
        /** 重构前重过载线路数 */
        private Integer overLoadLineCountBefore;
        /** 重构后重过载线路数 */
        private Integer overLoadLineCountAfter;
    }

    @Data
    public static class DetailVoltage {
        /** 重构前越上限节点数 */
        private Integer overMaxCountBefore;
        /** 重构后越上限节点数 */
        private Integer overMaxCountAfter;
        /** 最高电压(pu) */
        private BigDecimal maxVoltagePu;
        /** 重构前越下限节点数 */
        private Integer underMinCountBefore;
        /** 重构后越下限节点数 */
        private Integer underMinCountAfter;
        /** 最低电压(pu) */
        private BigDecimal minVoltagePu;
    }

    @Data
    public static class DetailLoss {
        /** 重构前线路损耗(MW) */
        private BigDecimal lineLossMwBefore;
        /** 重构后线路损耗(MW) */
        private BigDecimal lineLossMwAfter;
        /** 重构前变压器损耗(MW) */
        private BigDecimal trafoLossMwBefore;
        /** 重构后变压器损耗(MW) */
        private BigDecimal trafoLossMwAfter;
    }

    @Data
    public static class Dimensions {
        /** 安全评分 */
        private BigDecimal safetyScore;
        /** 电压评分 */
        private BigDecimal voltageScore;
        /** 损耗评分 */
        private BigDecimal lossScore;
        /** 均衡评分 */
        private BigDecimal balanceScore;
        /** 风险评分 */
        private BigDecimal riskScore;
    }
}
