[Backend] Suppressions métier — dossiers / parents / enfants / AM / staff (#154) #159

Closed
opened 2026-09-09 15:48:56 +00:00 by jmartin · 2 comments
Owner

Contexte

Epic parent #154. Implémenter les règles métier de suppression côté API (cascades, garde-fous, droits).

Doc de référence sur la branche : docs/tmp/154-matrice-suppression.md + contrat pour le front.

Objectif

Livrer les endpoints DELETE alignés sur la matrice produit, utilisables par le front en parallèle.

Matrice (rappel)

Action Effet
Delete dossier famille Tous parents + tous enfants ; clore placements AM des enfants
Delete parent co-parent Compte parent seul
Delete parent dernier Parent + enfants rattachés
Delete enfant (pas dernier) Enfant seul
Delete enfant dernier deleteDossier=true → cascade dossier ; false → enfant seul (+ dossier sans_enfant)
Delete AM / dossier AM Compte AM + dossier AM ; enfants conservés ; placements clos
Delete gestionnaire Admin only ; self interdit
Delete admin Autre admin OK ; self interdit ; dernier admin = super_admin only
Pending / validé Mêmes règles
Email Pas d'email de suppression

Droits

  • Métier (dossier / parent / enfant / AM) : GESTIONNAIRE + ADMINISTRATEUR + SUPER_ADMIN
  • Gestionnaire (user) : admin+
  • Admin (user) : règles ci-dessus

Backend

  • DELETE /dossiers/:numeroDossier (famille vs AM)
  • Adapter DELETE /users/:id (parent / AM / staff) avec cascades
  • Adapter DELETE /enfants/:id (+ query deleteDossier)
  • Flag sans_enfant sur GET /dossiers
  • Transactions + erreurs FR (400/403/409)
  • Tests cas limites
  • Doc tmp 154

Dépendances

  • Epic #154 ; ticket front en parallèle
  • Ne bloque pas le front si contrat API figé dans le MD

Critères d'acceptation

  • Matrice respectée
  • Delete AM ne supprime pas les enfants
  • Gestionnaire : delete métier OK ; pas delete autre gestionnaire
  • Dernier admin : super_admin only
  • sans_enfant en liste dossiers
  • Tests verts

Milestone

0.1.0

## Contexte Epic parent **#154**. Implémenter les **règles métier de suppression** côté API (cascades, garde-fous, droits). Doc de référence sur la branche : `docs/tmp/154-matrice-suppression.md` + contrat pour le front. ## Objectif Livrer les endpoints DELETE alignés sur la matrice produit, utilisables par le front en parallèle. ## Matrice (rappel) | Action | Effet | |--------|--------| | Delete **dossier famille** | Tous parents + tous enfants ; clore placements AM des enfants | | Delete **parent** co-parent | Compte parent seul | | Delete **parent** dernier | Parent + enfants rattachés | | Delete **enfant** (pas dernier) | Enfant seul | | Delete **enfant** dernier | `deleteDossier=true` → cascade dossier ; `false` → enfant seul (+ dossier `sans_enfant`) | | Delete **AM** / **dossier AM** | Compte AM + dossier AM ; enfants conservés ; placements clos | | Delete **gestionnaire** | Admin only ; self interdit | | Delete **admin** | Autre admin OK ; self interdit ; **dernier admin** = super_admin only | | Pending / validé | **Mêmes règles** | | Email | **Pas** d'email de suppression | ## Droits - Métier (dossier / parent / enfant / AM) : `GESTIONNAIRE` + `ADMINISTRATEUR` + `SUPER_ADMIN` - Gestionnaire (user) : admin+ - Admin (user) : règles ci-dessus ## Backend - [ ] `DELETE /dossiers/:numeroDossier` (famille vs AM) - [ ] Adapter `DELETE /users/:id` (parent / AM / staff) avec cascades - [ ] Adapter `DELETE /enfants/:id` (+ query `deleteDossier`) - [ ] Flag `sans_enfant` sur `GET /dossiers` - [ ] Transactions + erreurs FR (400/403/409) - [ ] Tests cas limites - [ ] Doc tmp 154 ## Dépendances - Epic **#154** ; ticket front en parallèle - Ne bloque pas le front si contrat API figé dans le MD ## Critères d'acceptation - [ ] Matrice respectée - [ ] Delete AM ne supprime pas les enfants - [ ] Gestionnaire : delete métier OK ; pas delete autre gestionnaire - [ ] Dernier admin : super_admin only - [ ] `sans_enfant` en liste dossiers - [ ] Tests verts ## Milestone **0.1.0**
jmartin added this to the 0.1.0 milestone 2026-09-09 15:48:56 +00:00
jmartin added the backendadminphase-1v0.1.0 labels 2026-09-09 15:48:56 +00:00
Author
Owner

Ticket front parallèle : #160.

Ticket front parallèle : **#160**.
Author
Owner

Livré et déployé (API suppressions métier). Je clôture.

Livré et déployé (API suppressions métier). Je clôture.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jmartin/petitspas#159