feat(aep): carte AEP — push Gitea 2026-04-28
This commit is contained in:
102
V2-cadrage/L-prompt-session-2.5-hierarchie.md
Normal file
102
V2-cadrage/L-prompt-session-2.5-hierarchie.md
Normal file
@@ -0,0 +1,102 @@
|
||||
# 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-primary` standard
|
||||
- Sur fiche détail : breadcrumb en haut "← CNOA (racine du réseau)"
|
||||
- Apparaît dans filtre `échelle=Régional` ou `Local`
|
||||
|
||||
**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 carte
|
||||
- `BreadcrumbReseau.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 selon `is_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_id` continuent à 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 `Local` n'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
|
||||
Reference in New Issue
Block a user