---
suivi: 1382
date: 2026-09-01
sujet: demande_juridique_suppression
chantier: juridique
type: feature
statut: poussé
hash: 6c4b3497
fichiers:
  - database/migrations/2026_09_01_150000_add_soft_deletes_to_demandes_juridiques.php
  - app/Models/DemandeJuridique.php
  - app/Models/DemandeJuridiqueHistorique.php
  - app/Support/Juridique/DemandeJuridiqueSuppressionResolver.php
  - app/Support/Juridique/DemandeJuridiqueHistoriqueService.php
  - app/Support/Juridique/DemandeJuridiquePresenter.php
  - app/Http/Controllers/DemandeJuridiqueController.php
  - routes/web.php
  - resources/js/Pages/Juridique/Show.vue
  - tests/Feature/DemandeJuridiqueDestroy1382Test.php
  - tests/Unit/DemandeJuridiqueDestroy1382SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
---

## PROMPT ENVOYÉ

SUIVI #1382 — soft delete demande juridique, GS_ADMIN_ERP, bouton fiche uniquement.

## FICHES LUES

- **#1381** : Show.vue partagé — rebase requis.
- **Corbeille** : `Foncier/Parcelles/Corbeille.vue` existe — pas branchée ici (clause d'arrêt).

## SYNTHÈSE

### Implémentation
- Migration `deleted_at` sur `demandes_juridiques`.
- `SoftDeletes` sur modèle — listes/compteurs auto-filtrés.
- `DELETE /juridique/demandes/{id}` — GS_ADMIN_ERP via `m365GroupNames()` brut.
- Bouton fiche Show uniquement + ConfirmDialog libellé objet.
- Historique `demande_supprimee` avant soft delete.

### Éléments rattachés (soft delete)
| Élément | Comportement |
|---------|--------------|
| Pièces jointes | Lignes DB + **fichiers disque conservés** (aucun `Storage::delete`) |
| Commentaires | Lignes conservées, inaccessibles via fiche |
| Historique | Conservé (entrée suppression ajoutée) |
| Suiveurs | Pivot conservé |

### Corbeille UI
Composant `Corbeille.vue` (parcelles foncier) réutilisable — **non branché** ce lot.

### Restauration
php artisan tinker --execute="App\Models\DemandeJuridique::withTrashed()->find(ID)?->restore();"

SQL : UPDATE demandes_juridiques SET deleted_at = NULL WHERE id = ID;

## DÉPLOIEMENT-TEST

migrate --force · route:clear · journal:sync · suppression test admin · 403 juriste.

## LEÇON

Soft delete métier : journaliser AVANT delete() ; ne jamais toucher les fichiers pièces jointes.
