package com.dne.ems.dto;

import lombok.Data;

/**
 * 空气质量指数分布数据传输对象
 * 
 * <p>该类用于封装空气质量指数(AQI)的分布统计数据，包括不同等级的AQI及其对应的数量。
 * 主要用于仪表盘展示和数据分析报告。</p>
 *
 * @version 1.0
 * @since 2024
 */
@Data
public class AqiDistributionDTO {
    /**
     * AQI等级（如优、良、轻度污染等）
     */
    private String level;
    
    /**
     * 该等级的记录数量
     */
    private long count;

    /**
     * 默认构造函数，用于框架反序列化
     */
    public AqiDistributionDTO() {
    }
    
    /**
     * 适用于Long类型计数的构造函数，通常由JPQL的COUNT查询返回
     * 
     * @param level AQI等级
     * @param count 该等级的记录数量
     */
    public AqiDistributionDTO(String level, Long count) {
        this.level = level;
        this.count = (count != null) ? count : 0L;
    }

    /**
     * 适用于JPQL查询的构造函数，提供对不同数字类型的灵活支持
     * 
     * @param level AQI等级
     * @param count 该等级的记录数量（任意Number类型）
     */
    public AqiDistributionDTO(String level, Number count) {
        this.level = level;
        this.count = (count != null) ? count.longValue() : 0L;
    }
}