feat: Gestion des secteurs et migration v3.0.4+304

- Ajout système complet de gestion des secteurs avec contours géographiques
- Import des contours départementaux depuis GeoJSON
- API REST pour la gestion des secteurs (/api/sectors)
- Service de géolocalisation pour déterminer les secteurs
- Migration base de données avec tables x_departements_contours et sectors_adresses
- Interface Flutter pour visualisation et gestion des secteurs
- Ajout thème sombre dans l'application
- Corrections diverses et optimisations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
pierre
2025-08-07 11:01:45 +02:00
parent 6a609fb467
commit 599b9fcda0
662 changed files with 213221 additions and 174243 deletions

View File

@@ -0,0 +1,55 @@
-- 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;