# Suppression compte avec grace period ```mermaid sequenceDiagram participant User as Utilisateur participant App as Application participant DB as Base de données participant Email as Service Email participant Cron as Job Cron User->>App: Demande suppression compte App->>User: Confirmation (êtes-vous sûr ?) User->>App: Confirmer App->>DB: Désactiver compte (statut: pending_deletion) App->>DB: Cacher contenus (visible: false) App->>DB: Révoquer sessions/tokens App->>DB: Enregistrer date suppression effective (J+30) App->>Email: Email confirmation + lien annulation Email->>User: Email (lien valide 30j) App->>User: "Compte désactivé. Suppression dans 30 jours." Note over User,App: Grace period 30 jours alt Utilisateur annule User->>App: Clic lien annulation App->>DB: Réactiver compte (statut: active) App->>DB: Restaurer visibilité contenus App->>Email: Email confirmation réactivation Email->>User: "Compte réactivé" else 30 jours sans annulation Cron->>DB: Job quotidien (vérif comptes pending_deletion) DB->>Cron: Liste comptes J+30 dépassé loop Pour chaque compte Cron->>DB: Supprimer données personnelles Cron->>DB: Anonymiser contenus (créateur: "Utilisateur supprimé") Cron->>DB: Supprimer historique GPS/écoute Cron->>DB: Marquer statut: deleted end Cron->>Email: Email confirmation suppression effective Email->>User: "Compte définitivement supprimé" end ``` **Légende** : - Grace period : 30 jours - Pendant grace period : compte inaccessible, contenus cachés - Après 30j : suppression définitive, contenus anonymisés conservés