---
suivi: 1082
date: 2026-07-30
sujet: Module Foncier — lisibilité EPCI et périmètres de secteur
chantier: module-foncier
type: feature
statut: poussé
hash: 0613700d
fichiers:
  - app/Services/Foncier/EpciReferentielService.php
  - app/Http/Controllers/Foncier/SecteurController.php
  - app/Services/Foncier/CommuneSearchService.php
  - database/migrations/2026_07_30_210000_add_communes_nom_epci_index.php
  - resources/js/Components/Foncier/EpciSelect.vue
  - resources/js/Components/Foncier/CommuneSelect.vue
  - resources/js/Pages/Foncier/Secteurs/Index.vue
  - routes/web.php
  - tests/Feature/Foncier/FoncierLisibiliteEpciSecteursTest.php
  - docs/suivi/SUIVI_1082_foncier_lisibilite_epci_secteurs.md
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
---

## PROMPT ENVOYÉ

SUIVI #1082 — lisibilité EPCI / périmètres, endpoints locaux, reprise
Secteurs Index, aucun appel externe. Un commit, push.

## SYNTHÈSE

### Rebase
`git log --oneline -3` avant build montrait #1081 en tête (192b1bf7 / 3e3c1044).

### Compteur de couverture (D-C) — option retenue
Remplacé le ratio `couvertes / 34 875` par :
- nombre de communes effectivement couvertes ;
- nombre de secteurs actifs ;
- départements couverts ;
- décompte EPCI / exceptions.
Justification : l’entreprise n’opère pas sur le territoire national ; un ratio
national n’a aucune valeur opérationnelle et trompe le pilotage.

### Réutilisation #1079
`CommuneSelect` + `CommuneSearchService` enrichi (`code_epci`, `nom_epci`) pour
le chemin « partir d’une commune ». Nouveau `EpciSelect` pour la recherche EPCI
(pas de seconde recherche commune).

### Index migration
`communes_nom_epci_idx` sur `nom_epci` — `code_epci` déjà indexé. Les
`LIKE %terme%` restent filtrés ; l’index sert tri / préfixe / agrégations.

### Mapping sélecteurs
| Type | Libellé UI | Valeur postée | Colonne DB | Libellé back |
|------|------------|---------------|------------|--------------|
| EPCI | Nom EPCI — N com. · dép. | code_epci | secteur_perimetres.code_epci | nom_epci + nb |
| Exception | Nom (CP) | code_insee_commune | secteur_perimetres.code_insee_commune | nom commune |
| (type) | EPCI / Exception | type=epci\|commune | type | — |

### Closures
SecteurController / EpciReferentielService : arrow fns lexicales uniquement ;
aucune closure avec `use (...)` manquante. Closures `use ($data)`, `use ($secteur, $data)`,
`use ($q, $ascii, …)` : variables présentes dans `use`.

## DÉPLOIEMENT
`git pull` · `migrate --force` · `view:clear` · `route:clear` · `journal:sync`

## LEÇON
Livrer un sélecteur d’EPCI sans exposer son contenu, c’est obliger l’utilisateur
à choisir à l’aveugle un objet administratif opaque. La donnée était déjà en
base : le défaut était d’affichage, pas d’alimentation.
