- Entités: 7 nouveaux schémas (sessions, devices, consents, location-history, interest-gauges, reports, exports) - États: 5 diagrammes lifecycles (compte, contenu, session, signalement, export) - Séquences: 6 flows (auth, refresh token, modération, signalement, export, suppression) - Renommage: modele-global.md → entities-overview.md - MkDocs: organisation hiérarchique par catégories Format concis: diagrammes Mermaid + règles essentielles uniquement
49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
# 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)
|