---
suivi: 1944
date: 2026-10-16
sujet: Commentaires sur les étapes prévisionnelles
chantier: foncier / dossiers / stratégie
type: feature
statut: poussé
hash: c4b4213c1
fichiers:
  - database/migrations/2026_10_16_114500_create_dossier_etape_commentaires.php
  - app/Models/DossierEtapeCommentaire.php
  - app/Models/DossierEtape.php
  - app/Services/Foncier/DossierStrategieService.php
  - app/Http/Controllers/Foncier/DossierStrategieController.php
  - app/Services/Foncier/DossierFoncierSuiviAggregator.php
  - resources/js/Components/Foncier/DossierStrategieCard.vue
  - routes/web.php
  - tests/Unit/DossierEtapeCommentaires1944SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/manifest.json
  - public/build/assets/Show-GdouuJT9.js
---

# SUIVI #1944 — commentaires sur les étapes prévisionnelles

## Fiches lues

- #1792 LEÇON : historique et versions se refusent dans save()/delete() ; ne pas toucher le calcul d’état ni l’historique.
- #1795 : synthèse / carte Stratégie déjà en place ; disposition hors périmètre.

## PROMPT ENVOYÉ

Commentaire libre sur chaque étape prévisionnelle (fil, auteur + date/heure). Aperçu dernier + compteur ; clic → fil + saisie. Ajout si droit de modifier la stratégie ; modif/suppr auteur seul. Journal dossier « Commentaire ajouté sur l'étape X ». Soft-delete étape conserve les commentaires ; hard-delete cascade. Ne pas toucher état, historique, CRUD étapes, droits dossier.

## Mapping

| Libellé affiché | Valeur postée | Colonne DB | Libellé back |
| --- | --- | --- | --- |
| Nouveau commentaire | corps | dossier_etape_commentaires.corps | Commentaire |
| Modifier (auteur) | corps (PUT) | corps | Modification |
| Supprimer (auteur) | DELETE | — | Suppression |
| Compteur (N) | — | count | commentaires_count |
| Aperçu tronqué | — | — | dernier_commentaire.corps_tronque |

## SYNTHÈSE

Table `dossier_etape_commentaires` (FK étape en cascade hard-delete). Soft-delete d’une étape : commentaires conservés (cachés avec l’étape). Ajout = `authorize('update')` ; edit/delete = `view` + auteur. Agrégateur journal : type `etape_commentaire`, titre « Commentaire ajouté sur l'étape {libelle} ». UI dans `DossierStrategieCard` : aperçu + Dialog fil.

## DÉPLOIEMENT-TEST

git pull origin main
php artisan view:clear
php artisan route:clear
php artisan migrate --force
php artisan journal:sync

Tests manuels : 2 commentaires sur une étape → dernier + compteur ; fil complet ; modif/suppr auteur seul ; journal ; lecteur sans gestion → pas de saisie.

## LEÇON

Soft-delete étape ≠ cascade commentaires : les lignes restent tant que l’étape n’est pas hard-delete. Pour le journal après soft-delete, l’agrégateur charge les étapes `withTrashed()`.
