-- Script pour intégrer les données de x_departements_contours dans x_departements
-- Ce script ajoute une colonne contour à x_departements et y copie les données
-- Note : Les colonnes bbox_* ne sont pas migrées car elles ne sont pas utilisées dans l'API

-- 1. Ajouter la colonne contour à x_departements si elle n'existe pas déjà
ALTER TABLE x_departements 
ADD COLUMN IF NOT EXISTS contour GEOMETRY DEFAULT NULL 
COMMENT 'Contour géographique du département'
AFTER dept_limitrophes;

-- 2. Mettre à jour x_departements avec les contours depuis x_departements_contours
-- On copie directement les contours non NULL
UPDATE x_departements d
INNER JOIN x_departements_contours dc ON d.code = dc.code_dept
SET d.contour = dc.contour
WHERE dc.contour IS NOT NULL;

-- 3. Vérifier les départements sans contour (hors DOM-TOM et Corse historique)
SELECT 
    d.code, 
    d.libelle,
    CASE 
        WHEN d.code IN ('20', '971', '972', '973', '974', '975', '976') THEN 'DOM-TOM ou Corse historique - Normal'
        WHEN d.contour IS NULL THEN 'Pas de contour'
        ELSE 'OK'
    END as statut
FROM x_departements d
WHERE d.contour IS NULL
  AND d.code NOT IN ('20', '971', '972', '973', '974', '975', '976')
ORDER BY d.code;

-- 4. Créer l'index spatial 
-- Les valeurs NULL sont autorisées dans un index spatial MySQL
ALTER TABLE x_departements 
ADD SPATIAL INDEX idx_contour (contour);

-- 5. Vérifier le nombre de départements mis à jour
SELECT 
    COUNT(*) as total_departements,
    SUM(CASE WHEN contour IS NOT NULL THEN 1 ELSE 0 END) as departements_avec_contour,
    SUM(CASE WHEN contour IS NULL THEN 1 ELSE 0 END) as departements_sans_contour
FROM x_departements;

-- 6. Lister les départements qui n'ont pas de contour (s'il y en a)
SELECT code, libelle 
FROM x_departements 
WHERE contour IS NULL
ORDER BY code;

-- 7. Optionnel : Après vérification, vous pouvez supprimer la table x_departements_contours
-- ATTENTION : Ne décommentez cette ligne qu'après avoir vérifié que toutes les données sont bien migrées
-- DROP TABLE IF EXISTS x_departements_contours;

-- 8. Mettre à jour les statistiques de la table pour optimiser les requêtes spatiales
ANALYZE TABLE x_departements;