package com.usky.ems.service.vo;

import lombok.Data;

import java.util.List;

/**
 * 能源报表响应VO
 */
@Data
public class EnergyReportResponse {

    /**
     * 列定义列表
     */
    private List<ColumnItem> columnList;

    /**
     * 数据值列表（按设备分组的二维数组）
     * 外层 List 代表不同的设备
     * 内层 List 包含该设备下所有请求的功能点（属性）数据
     */
    private List<List<ValueItem>> valueList;

    @Data
    public static class ColumnItem {
        /**
         * 列标签
         */
        private String label;

        /**
         * 列属性名
         */
        private String prop;

        /**
         * 是否固定列
         */
        private Boolean fixed;

        /**
         * 子列（用于多级表头）
         */
        private List<ColumnItem> children;
    }

    @Data
    public static class ValueItem {
        /**
         * 设备ID
         */
        private String deviceId;

        /**
         * 设备名称
         */
        private String deviceName;

        /**
         * 通讯地址
         */
        private String commAddress;

        /**
         * 功能点标识符
         */
        private String identifier;

        /**
         * 合计值
         */
        private String total;

        /**
         * 动态时间列数据，key为 _0, _1, _2... 或 _1, _2...31 等
         * 使用Map存储动态列
         */
        private java.util.Map<String, String> timeData;
    }
}
