package com.hdkj.lt.core.bizms.modle.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class StateEstimation {

    /**
     * 设备数据集合
     */
    private List<StateEstimationCommonResult> periodEquipResult;

    /**
     * 线路状估数据集合
     */
    private List<StateEstimationCommonResult> periodFeederSeResult;

//    /**
//     *  公变状估数据集合
//     */
    private List<StateEstimationTransResult> periodMVTransSeResult;
//
//    /**
//     * 中压用户估数据集合
//     */
    private List<StateEstimationConsumerResult> periodEnergyConsumerSeResult;
//
//    /**
//     * 中压光伏状估数据集合
//     */
    private List<StateEstimationCommonResult> periodPVSeResult;
//
//    /**
//     * 线路段状估数据集合
//     */
    private List<StateEstimationSegmentResult> periodSegmentSeResult;

    /**
     * 开关状估数据集合
     */
    private List<StateEstimationSwitchResult> periodSwitchSeResult;

    private List<String> pointTime;

    @Data
    public static class StateEstimationCommonResult {
        /**
         * 设备 ID
         */
        private String psrId;
        /**
         * 设备类型
         */
        private String psrType;
        /**
         * 负 载 率 集 合 （ 1 天 96 个点）
         */
        private List<String> loadRates;
        /**
         * 量测有功集合（1 天 96 个点）
         */
        private List<String> seiPs;
        /**
         * 量测无功集合（1 天 96 个点）
         */
        private List<String> seiQs;
        /**
         * 量测电压集合（1 天 96 个点）
         */
        private List<String> seiUs;
        /**
         * 量测电流集合（1 天 96 个点）
         */
        private List<String> seiIs;
        /**
         * 状估有功集合（1 天 96 个点）
         */
        private List<String> seoPs;
        /**
         * 状估无功集合（1 天 96 个点）
         */
        private List<String> seoQs;
        /**
         * 状估电压集合（1 天 96 个点）
         */
        private List<String> seoUs;
        /**
         * 状估电流集合（1 天 96 个点）
         */
        private List<String> seoIs;

        /**
         * 开关是否为自动化开关
         */
        private String isAuto;
        private String feederId;

    }

    @Data
    public static class StateEstimationSwitchResult extends StateEstimationCommonResult {
        /**
         * 分合状态量测值
         */
        private List<String> seiStatuss;
        /**
         * 分合状态估计值量测值
         */
        private List<String> seoStatuss;
        /**
         * 所属线路ID
         */
        private String feederId;
        /**
         * 是否自动化设备
         */
        private String isAuto;
    }

    /**
     * 配变
     */
    @Data
    public static class StateEstimationTransResult extends StateEstimationCommonResult {
        /**
         * 所属线路ID
         */
        private String feederId;
        private List<String> capacitys;
        private List<String> ploss;
        private List<String> qloss;
        private List<String> seoLvUs;
        private List<String> seiLvPs;
        private List<String> seiLvQs;
        private List<String> seiLvUas;
        private List<String> seiLvUbs;
        private List<String> seiLvUcs;
    }
    /**
     * 用户
     */
    @Data
    public static class StateEstimationConsumerResult extends StateEstimationCommonResult {
        /**
         * 所属线路ID
         */
        private String feederId;
        private List<String> consumerIds;
        private List<String> capacitys;
    }
    /**
     * 线路段
     */
    @Data
    public static class StateEstimationSegmentResult extends StateEstimationCommonResult {
        /**
         * 所属线路ID
         */
        private String feederId;
        private List<String> ploss;
        private List<String> qloss;
        private List<String> headUs;
        private List<String> tailUs;
        /** 首端电压相角 */
        private List<String> headUAngs;
        /** 末端电压相角 */
        private List<String> tailUAngs;
    }
}
