4.0 KiB
4.0 KiB
L — Prompt Session 2.5 : Hiérarchie racine / antennes (CNOA, CAUE, syndicats, etc.)
Session dédiée — à lancer APRÈS S2 (carte + fiche + contribuer) et AVANT S3 (worker IA + déploiement). Modèle conseillé : Opus pilote + délégation Sonnet (modif schéma + UI + filtrage non-trivial). Durée estimée : 3-4h.
Mission
Introduire dans NAV V2 la notion de fiche racine (tête de réseau national) avec antennes dépendantes (régionales / départementales / locales).
Cas métier couverts
- CNOA (Conseil National de l'Ordre des Architectes) ↔ 13 CROA régionaux
- Réseau CAUE (national) ↔ ~95 CAUE départementaux
- Syndicats nationaux (UNSFA, CNAJEP…) ↔ antennes locales
- Patrons identiques pour autres réseaux à venir
Pourquoi
Sans hiérarchie :
- Carte FR désaturée (100+ pins CAUE qui se chevauchent)
- Filtre "Local" ne montre pas la racine → utilisateur perd le contexte
- Pas de breadcrumb pour naviguer racine ↔ antenne
- Soumissions redondantes (chaque antenne crée fiche déconnectée)
Spec
Schéma NocoDB (ajout 2 colonnes table orgas)
parent_id FK nullable → orgas.id (NULL pour racines et fiches indépendantes)
is_root bool (true si tête de réseau, sinon false)
Migration : script Python ou via UI NocoDB. Mettre à jour les ~96 fiches seed pour rattacher les CROA à CNOA, etc. (requiert mapping manuel, ~30 min).
UI
Fiche racine (ex : CNOA)
- Pin carte :
--nav-accent(safran) — déjà cas "prioritaire" - Sur fiche détail : bandeau "Réseau de N antennes" + carte miniature des antennes + liste cliquable
- Apparaît dans filtre
échelle=National
Fiche antenne (ex : CROA Île-de-France)
- Pin carte :
--nav-primarystandard - Sur fiche détail : breadcrumb en haut "← CNOA (racine du réseau)"
- Apparaît dans filtre
échelle=RégionalouLocal
Filtrage
- Filtre
échelle=Local: affiche antennes locales SANS masquer les racines (toujours pinables si onglet National actif) - Cluster carte absorbe la désaturation quand 13+ enfants visibles dans un département/région
Soumission
- Formulaire
/contribuer: ajouter champ optionnel "Cette organisation fait-elle partie d'un réseau ?" → autocomplete sur racines existantes - Si racine non trouvée : créer en pending sans
parent_id, modérateur lie manuellement après
Livrables
- Migration schéma NocoDB (
parent_id,is_root) - Mapping seed : rattacher CROA à CNOA, autres réseaux identifiés
- Composants :
FicheRacineHeader.vue— bandeau réseau + miniature carteBreadcrumbReseau.vue— "← Racine"AutocompleteRacine.vue— pour formulaire contribuer
- Logique filtrage hiérarchique (composable
useHierarchicalFilter.ts) - Adaptation
NavMap.vue: pin racine vs antenne distincts - Adaptation
FicheDetail.vue: afficher bandeau ou breadcrumb selonis_root - Adaptation
pages/contribuer.vue: champ réseau parent - Tests manuels : naviguer CNOA → CROA-IDF → retour CNOA, filtre échelle cohérent
Règles
- Accents français
- Palette respectée
- Mobile-first
- Migration backward-compat : fiches sans
parent_idcontinuent à fonctionner comme avant - Pas de touche au worker IA / chatbot (Session 3)
Délégation (si Opus pilote)
| Sous-agent | Tâche | Modèle |
|---|---|---|
| Sonnet 1 | Migration schéma + mapping seed CROA/CAUE | Sonnet |
| Sonnet 2 | Composants UI hiérarchie + adaptation map/fiche | Sonnet |
| Sonnet 3 | Composable filtrage + adaptation formulaire | Sonnet |
Critère de fin
- Carte affiche CNOA (safran) + 13 CROA (bleu)
- Click CROA → breadcrumb vers CNOA
- Click CNOA → liste 13 CROA cliquables
- Filtre
Localn'efface pas CNOA si onglet National actif - Soumission de nouvelle antenne CAUE → autocomplete trouve "Réseau CAUE"
- Aucune régression sur les fiches sans
parent_id
Hors scope (pour Session 3)
- Worker IA enrichissement automatique
- Chatbot
- Bandeau collaboration
- Déploiement VPS prod
- SEO/GEO