SuppressionService + DELETE /dossiers/:numero, cascades DELETE /users et DELETE /enfants?deleteDossier, flag sans_enfant, specs front #160. Co-authored-by: Cursor <cursoragent@cursor.com>
36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
# Matrice suppression — #154 / back **#159** / front **#160**
|
||
|
||
**Statut** : cadrage PO validé (sept. 2026)
|
||
**Milestone** : 0.1.0
|
||
**Email** : pas d’email de suppression (cas rare)
|
||
|
||
## Droits
|
||
|
||
| Cible | Qui peut supprimer |
|
||
|-------|-------------------|
|
||
| Dossier / parent / enfant / AM | `GESTIONNAIRE`, `ADMINISTRATEUR`, `SUPER_ADMIN` |
|
||
| Gestionnaire (user) | `ADMINISTRATEUR`, `SUPER_ADMIN` |
|
||
| Administrateur (user) | Autre admin OK ; **self interdit** ; **dernier admin** = `SUPER_ADMIN` only ; `SUPER_ADMIN` non supprimable |
|
||
|
||
## Matrice métier
|
||
|
||
| Point d’entrée | Action | Effet |
|
||
|----------------|--------|--------|
|
||
| Dossiers | Delete dossier **famille** | Tous **parents** + tous **enfants** ; clore placements AM des enfants |
|
||
| Dossiers / AM | Delete dossier **AM** ou compte AM | **Compte AM + dossier AM** ; enfants **conservés** ; placements **clos** |
|
||
| Parents | Co-parent (autre parent reste) | Compte parent seul ; dossier + enfants restent |
|
||
| Parents | Dernier parent | Parent + **enfants** rattachés |
|
||
| Enfants | Pas dernier | Enfant seul (retiré du dossier) |
|
||
| Enfants | Dernier + `deleteDossier=true` | Cascade dossier famille (parents + enfants) |
|
||
| Enfants | Dernier + `deleteDossier=false` | Enfant seul ; dossier peut apparaître **`sans_enfant`** |
|
||
| Pending / validé | — | **Mêmes règles** (pas de différenciation) |
|
||
|
||
## Warning
|
||
|
||
- `sans_enfant` sur liste `GET /dossiers` (dossier famille sans enfant lié).
|
||
- Miroir de `sans_responsable` (#157) côté enfants.
|
||
|
||
## Hors scope
|
||
|
||
Soft-delete RGPD, audit (#128), famille N (#139), restriction admin-only métier (plus tard).
|