package com.dne.ems.dto;

/**
 * 空气质量指数热力图数据点传输对象
 *
 * <p>该类用于表示AQI热力图上的单个数据点，包含网格坐标和该网格的平均AQI值。
 * 主要用于生成热力图可视化展示。</p>
 *
 * @param gridX 网格X坐标
 * @param gridY 网格Y坐标
 * @param averageAqi 该网格的平均AQI值
 * @version 1.0
 * @since 2024
 */
public record AqiHeatmapPointDTO(
    Integer gridX,
    Integer gridY,
    Double averageAqi
) {
    /**
     * 辅助构造函数，用于处理从数据库查询返回的Number类型数据
     * 
     * @param gridX 网格X坐标（Number类型）
     * @param gridY 网格Y坐标（Number类型）
     * @param averageAqi 平均AQI值（Number类型）
     */
    public AqiHeatmapPointDTO(Number gridX, Number gridY, Number averageAqi) {
        this(
            gridX != null ? gridX.intValue() : null,
            gridY != null ? gridY.intValue() : null,
            averageAqi != null ? averageAqi.doubleValue() : null
        );
    }
}
