PRE-ENG-001.6 — Alignement des lectures municipales Territory
Objectif
Aligner la frontière de lecture entre Territory et MunicipalManagement sans changer
les routes publiques, les réponses JSON, ni les consommateurs dmv-public.
Lectures initiales
TerritoryService::getCommuneElus()lisait directementcommune_elusviaCommuneElu.TerritoryService::getCommuneCollectes()lisait directementcommune_collectesviaCommuneCollecte.TerritoryService::getCommuneInfos()lisait directementcommune_infosviaCommuneInfo.
Lectures migrées
getCommuneElus()délègue désormais àMunicipalManagementReader::getElus().getCommuneCollectes()délègue désormais àMunicipalManagementReader::getCollectes().getCommuneInfos()délègue désormais àMunicipalManagementReader::getInfos().
Contrat utilisé
app/Modules/MunicipalManagement/Contracts/MunicipalManagementReader.php
Formats préservés
- URLs publiques inchangées.
- Structures JSON
elus,collectes,infosinchangées. - Composition publique
mairieconservée dansTerritoryService. - Aucun changement sur
dmv-public.
Dépendances supprimées
- Suppression des lectures directes Territory vers
commune_elus,commune_collectes,commune_infos. - Suppression des modèles Territory dédiés à ces trois tables.
- Suppression des relations
Commune::elus(),Commune::collectes(),Commune::infos().
Tests
- Tests de délégation publique
elus,collectes,infos. - Test commune sans données.
- Garde-fou architectural interdisant tout retour de lectures directes sur les trois tables depuis
Territory.
Garde-fous
tests/Feature/Territory/TerritoryMunicipalReadAlignmentTest.phpbloque toute réintroduction deDB::table('commune_elus'|'commune_collectes'|'commune_infos')et des anciens modèles Territory correspondants.
Divergences restantes
Territoryconserve la composition publique des coordonnées mairie à partir deacteurs.- La dette
TerritoryController→ service concret reste inchangée. Importn’est pas traité ici ; il reste à traiter dans le chantierENG-001.6 Publication.
Validation
- Validations API prévues :
php -l,php artisan route:list,php artisan test,vendor/bin/pint --test,git diff --check. - Validation documentation prévue :
git diff --check,npm run build.