# Data Retention Logs 📖 Logs purges automatiques inactivité (Article 5 RGPD - Minimisation) ## Diagramme ```kroki-dbml Table data_retention_logs { id uuid [primary key] action_type retention_action_enum [not null] users_processed int [not null, default: 0, note: 'Nombre total users analysés'] users_warned int [not null, default: 0, note: 'Nombre users notifiés (90j/30j/7j)'] users_deleted int [not null, default: 0, note: 'Nombre users supprimés effectivement'] details jsonb [note: 'Détails: threshold_date, user_ids_deleted, notifications_sent'] executed_at timestamp [not null, default: `now()`, note: 'Timestamp exécution du job cron'] execution_duration_ms bigint [not null, note: 'Durée d exécution en millisecondes'] indexes { (action_type, executed_at) [note: 'Historique jobs par type'] (executed_at) [note: 'Timeline complète des jobs'] } } Enum retention_action_enum { check_inactive [note: 'Vérification quotidienne comptes inactifs > 5 ans'] send_warnings [note: 'Envoi notifications (90j/30j/7j avant suppression)'] delete_accounts [note: 'Suppression effective comptes inactifs'] } ``` ## Légende **Action types** : - `check_inactive`: Vérification quotidienne comptes inactifs > 5 ans - `send_warnings`: Envoi notifications (90j/30j/7j avant suppression) - `delete_accounts`: Suppression effective comptes inactifs **Règles de conservation** : - Auditeur : 5 ans inactivité → suppression - Créateur actif : jamais (tant que contenus écoutés) - Créateur inactif : 5 ans + 2 ans sans écoute → suppression **Details JSON** : ```json { "threshold_date": "2021-02-08", "user_ids_deleted": ["uuid1", "uuid2"], "notifications_sent": { "90_days": 15, "30_days": 8, "7_days": 3 } } ```