package database import ( "context" "database/sql" ) // StationCoord holds a station_id with geographic coordinates. type StationCoord struct { StationID string Lat float64 Lon float64 } // ListWH65LPStationsWithLatLon returns WH65LP stations that have non-null and non-zero lat/lon. func ListWH65LPStationsWithLatLon(ctx context.Context, db *sql.DB) ([]StationCoord, error) { const q = ` SELECT station_id, latitude, longitude FROM stations WHERE device_type = 'WH65LP' AND latitude IS NOT NULL AND longitude IS NOT NULL AND latitude <> 0 AND longitude <> 0 ORDER BY station_id` rows, err := db.QueryContext(ctx, q) if err != nil { return nil, err } defer rows.Close() var out []StationCoord for rows.Next() { var s StationCoord if err := rows.Scan(&s.StationID, &s.Lat, &s.Lon); err != nil { continue } out = append(out, s) } return out, nil }