-- 010_band_locations_geom.sql
-- La carte doit clusteriser par LOCALISATION (band_locations), pas par groupe
-- (bands). band_locations n'avait que lat/lon sans index spatial → seq-scan à
-- chaque déplacement de carte. On ajoute une colonne geom générée + index GIST,
-- alignée sur le pattern de la table bands.

ALTER TABLE band_locations
  ADD COLUMN IF NOT EXISTS geom geometry(Point, 4326)
  GENERATED ALWAYS AS (
    CASE
      WHEN lat IS NOT NULL AND lon IS NOT NULL
      THEN ST_SetSRID(ST_MakePoint(lon, lat), 4326)
    END
  ) STORED;

CREATE INDEX IF NOT EXISTS idx_bl_geom ON band_locations USING GIST (geom);
