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
55 lines
1.8 KiB
Markdown
55 lines
1.8 KiB
Markdown
# Privacy Policy Versions
|
|
|
|
📖 Versioning politique de confidentialité (Articles 13-14 RGPD)
|
|
|
|
## Diagramme
|
|
|
|
```kroki-dbml
|
|
Table privacy_policy_versions {
|
|
id uuid [primary key]
|
|
version varchar(10) [not null, unique, note: 'Format: v1.0, v2.0, etc.']
|
|
content_markdown text [not null, note: 'Source: docs/legal/politique-confidentialite.md (versionné Git)']
|
|
major_change boolean [not null, default: false, note: 'true = popup obligatoire pour tous les users']
|
|
changelog text [not null, note: 'Résumé des changements pour communication']
|
|
effective_date timestamp [not null, note: 'Date d entrée en vigueur de cette version']
|
|
created_at timestamp [not null, default: `now()`]
|
|
|
|
indexes {
|
|
(version) [unique]
|
|
(effective_date) [note: 'Order versions chronologically']
|
|
}
|
|
}
|
|
|
|
Table users {
|
|
id uuid [primary key]
|
|
}
|
|
|
|
Table user_policy_acceptances {
|
|
id uuid [primary key]
|
|
user_id uuid [not null, ref: > users.id]
|
|
policy_version_id uuid [not null, ref: > privacy_policy_versions.id]
|
|
accepted boolean [not null, note: 'true = accepté, false = refusé (compte gelé)']
|
|
accepted_at timestamp [not null, default: `now()`]
|
|
ip_address inet [not null, note: 'IP de l utilisateur lors de l acceptation (preuve CNIL)']
|
|
|
|
indexes {
|
|
(user_id, policy_version_id) [unique, note: 'Un user ne peut accepter qu une fois une version']
|
|
(user_id, accepted_at) [note: 'Historique acceptations user']
|
|
(policy_version_id) [note: 'Count acceptances par version']
|
|
}
|
|
}
|
|
```
|
|
|
|
## Légende
|
|
|
|
**Versioning** :
|
|
|
|
- `major_change`: `true` → popup obligatoire pour tous les utilisateurs
|
|
- `major_change`: `false` → notification simple
|
|
- Fichier source : `docs/legal/politique-confidentialite.md` (versionné Git)
|
|
|
|
**Popup si changement majeur** :
|
|
|
|
- Utilisateur doit accepter nouvelle version pour continuer
|
|
- Refus → compte gelé (lecture seule)
|