package data import ( "context" "database/sql" "time" ) // FetchActualHourlyRain sums rs485_weather_10min.rain_10m_mm_x1000 over [start,end) and returns mm. func FetchActualHourlyRain(ctx context.Context, stationID string, start, end time.Time) (float64, bool, error) { const q = `SELECT SUM(rain_10m_mm_x1000) FROM rs485_weather_10min WHERE station_id=$1 AND bucket_start >= $2 AND bucket_start < $3` var sum sql.NullInt64 err := DB().QueryRowContext(ctx, q, stationID, start, end).Scan(&sum) if err != nil { return 0, false, err } if !sum.Valid { return 0, false, nil } return float64(sum.Int64) / 1000.0, true, nil }