docs: migrer schémas BDD de Mermaid vers DBML
Remplace les diagrammes Mermaid par DBML (via kroki-dbml) pour une meilleure expressivité des schémas de base de données : - Ajout support notes, contraintes et indexes détaillés - Migration de tous les schémas d'entités partagées - Ajout fichier exemple dbml-example.md - Configuration plugin mkdocs-kroki pour rendu DBML
This commit is contained in:
@@ -4,22 +4,37 @@
|
||||
|
||||
## Diagramme
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
USERS ||--o| ACCOUNT_DELETIONS : "demande"
|
||||
```kroki-dbml
|
||||
Table users {
|
||||
id uuid [primary key]
|
||||
email varchar(255)
|
||||
status varchar(20)
|
||||
}
|
||||
|
||||
ACCOUNT_DELETIONS {
|
||||
uuid id PK
|
||||
uuid user_id FK
|
||||
string status
|
||||
string cancellation_token
|
||||
timestamp requested_at
|
||||
timestamp effective_at "requested_at + 30j"
|
||||
timestamp cancelled_at
|
||||
timestamp deleted_at
|
||||
string deletion_reason
|
||||
json deleted_data_summary
|
||||
}
|
||||
Table account_deletions {
|
||||
id uuid [primary key]
|
||||
user_id uuid [not null, unique, ref: - users.id, note: 'One-to-one: un user ne peut avoir qu une seule demande active']
|
||||
status deletion_status_enum [not null, default: 'pending']
|
||||
cancellation_token varchar(64) [unique, note: 'Token dans email pour annuler (expire après 30j)']
|
||||
requested_at timestamp [not null, default: `now()`]
|
||||
effective_at timestamp [not null, note: 'Auto-calculated: requested_at + 30 days']
|
||||
cancelled_at timestamp [note: 'Timestamp annulation via lien email (NULL si non annulé)']
|
||||
deleted_at timestamp [note: 'Timestamp suppression effective (NULL si pending/cancelled)']
|
||||
deletion_reason text [note: 'Raison optionnelle fournie par l utilisateur']
|
||||
deleted_data_summary jsonb [note: 'Résumé des données supprimées (audit trail)']
|
||||
|
||||
indexes {
|
||||
(user_id) [unique]
|
||||
(status, effective_at) [note: 'Daily cron job: WHERE status = pending AND effective_at < NOW()']
|
||||
(cancellation_token) [unique]
|
||||
}
|
||||
}
|
||||
|
||||
Enum deletion_status_enum {
|
||||
pending [note: 'Grace period actif (30j), compte désactivé, annulation possible']
|
||||
cancelled [note: 'Utilisateur a annulé via lien email']
|
||||
completed [note: 'Suppression effective réalisée après 30j']
|
||||
}
|
||||
```
|
||||
|
||||
## Légende
|
||||
|
||||
Reference in New Issue
Block a user