-- ═══════════════════════════════════════════════════════════════════════════
-- Zones d'exclusion : Élysée, Bercy, et libellé de la BA 107
--
-- geom est GENERATED ALWAYS ... STORED : ne jamais la citer dans un INSERT,
-- PostgreSQL la calcule depuis lon/lat.
--
-- source = 'manuelle' et non 'reference' : les fiches de référence ont leurs
-- nom et coordonnées verrouillés dans airport_save, ce qui empêcherait de
-- corriger la position depuis la carte. Or ces deux hélisurfaces sont
-- positionnées à l'estime et demanderont un ajustement.
--
-- À jouer avec ON_ERROR_STOP=1.
-- ═══════════════════════════════════════════════════════════════════════════

BEGIN;

-- ── 1. Hélisurfaces gouvernementales ────────────────────────────────────────
-- Rayon 300 m : ces sites sont ponctuels et en tissu urbain dense. Un rayon
-- kilométrique effacerait des départs légitimes du centre de Paris.
INSERT INTO adsb.airports (code, nom, lat, lon, rayon_km, type, actif,
                           commentaire, source)
SELECT 'Z001', 'Palais de l''Élysée', 48.870400, 2.316600, 0.3, 'heliport', true,
       'Hélisurface de la présidence de la République — position à affiner sur la carte',
       'manuelle'
WHERE NOT EXISTS (SELECT 1 FROM adsb.airports WHERE nom ILIKE '%Élysée%');

INSERT INTO adsb.airports (code, nom, lat, lon, rayon_km, type, actif,
                           commentaire, source)
SELECT 'Z002', 'Bercy — Ministère de l''Économie', 48.838800, 2.377100, 0.3,
       'heliport', true,
       'Hélistation sur ponton Seine — position à affiner sur la carte',
       'manuelle'
WHERE NOT EXISTS (SELECT 1 FROM adsb.airports WHERE nom ILIKE '%Bercy%');

-- ── 2. BA 107 : la zone existe déjà sous LFPV, on complète le libellé ──────
-- Pas de nouvelle fiche : deux cercles concentriques ne changeraient rien à la
-- détection (NOT EXISTS sur l'ensemble des zones actives) et compliqueraient
-- la maintenance.
UPDATE adsb.airports
   SET nom = 'Vélizy-Villacoublay — Base aérienne 107',
       commentaire = COALESCE(NULLIF(commentaire, ''),
                              'BA 107 « Sous-lieutenant René Dorme » — '
                              || 'transport gouvernemental et ETEC')
 WHERE code = 'LFPV';

COMMIT;

\echo '--- Zones d''exclusion après migration ---'
SELECT id, code, nom, lat, lon, rayon_km, type, actif, source
  FROM adsb.airports
 ORDER BY rayon_km, code;
