# Séquence - Suppression de compte ## Diagramme ```mermaid sequenceDiagram participant U as Utilisateur participant API as Backend API participant DB as PostgreSQL participant E as Email participant J as Job Quotidien U->>API: DELETE /account (demande suppression) API->>DB: UPDATE account_status=grace_period API->>DB: UPDATE deletion_requested_at=NOW() API->>DB: UPDATE sessions.revoked_at=NOW() (toutes) API->>DB: UPDATE contents (cachés, non diffusés) API->>E: Email avec lien annulation (30j) API-->>U: Compte désactivé alt Utilisateur change d'avis U->>API: GET /account/cancel-deletion (lien email) API->>DB: UPDATE account_status=active API->>DB: UPDATE deletion_requested_at=NULL API->>DB: Réactivation contenus API->>E: Email confirmation annulation API-->>U: Compte réactivé else Après 30 jours J->>DB: SELECT users WHERE grace_period > 30j J->>DB: UPDATE account_status=deleted J->>DB: Anonymisation données (email, pseudo...) J->>DB: UPDATE contents.creator="Utilisateur supprimé" J->>DB: DELETE listening_history, location_history, sessions J->>DB: Conservation contenus anonymisés J-->>DB: Suppression complète end ``` ## Légende **Grace period** : 30 jours pour annuler **Annulation** : Via lien email unique **Anonymisation** : - Données perso supprimées (email, pseudo, GPS...) - Contenus conservés anonymes (intérêt communauté) - Irréversible après 30j **Alternative** : Purge auto inactivité 5 ans (notifications 90j/30j/7j avant)