Aller au contenu principal

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 directement commune_elus via CommuneElu.
  • TerritoryService::getCommuneCollectes() lisait directement commune_collectes via CommuneCollecte.
  • TerritoryService::getCommuneInfos() lisait directement commune_infos via CommuneInfo.

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, infos inchangées.
  • Composition publique mairie conservée dans TerritoryService.
  • 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.php bloque toute réintroduction de DB::table('commune_elus'|'commune_collectes'|'commune_infos') et des anciens modèles Territory correspondants.

Divergences restantes

  • Territory conserve la composition publique des coordonnées mairie à partir de acteurs.
  • La dette TerritoryController → service concret reste inchangée.
  • Import n’est pas traité ici ; il reste à traiter dans le chantier ENG-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.