diff --git a/src/app/dashboard/privacy/retention/page.tsx b/src/app/dashboard/privacy/retention/page.tsx new file mode 100644 index 0000000..0baca37 --- /dev/null +++ b/src/app/dashboard/privacy/retention/page.tsx @@ -0,0 +1,122 @@ +'use client'; + +import Link from 'next/link'; + +interface RetentionPolicy { + id: string; category: string; dataTypes: string[]; retentionDays: number; + legalBasis: string; autoDelete: boolean; notes: string; +} + +const POLICIES: RetentionPolicy[] = [ + { + id: 'personal-data', category: 'Date Personale (C3)', dataTypes: ['Contacte', 'Persoane', 'Date GDPR'], + retentionDays: 365 * 3, legalBasis: 'Consimțământ + Interes legitim', autoDelete: false, + notes: 'Ștergere manuală la revocare consimțământ. Anonimizare alternativă permisă.', + }, + { + id: 'financial', category: 'Date Financiare (C2)', dataTypes: ['Tranzacții', 'Facturi', 'Contracte'], + retentionDays: 365 * 10, legalBasis: 'Obligație legală (Codul Fiscal RO art. 25)', autoDelete: false, + notes: 'Retenție 10 ani obligatorie conform legislație fiscală. Nu se poate scurta.', + }, + { + id: 'documents', category: 'Documente (C1-C4)', dataTypes: ['Documente OCR', 'Fișiere', 'Atașamente'], + retentionDays: 365 * 5, legalBasis: 'Proceduri interne', autoDelete: false, + notes: 'C4 (secret) — ștergere securizată la expirare. C0/C1 — arhivare permisă indefinit.', + }, + { + id: 'audit-logs', category: 'Audit Logs (C1)', dataTypes: ['Log acces', 'Modificări', 'Sesiuni'], + retentionDays: 365 * 2, legalBasis: 'Securitate + Conformitate', autoDelete: true, + notes: 'Ștergere automată după 2 ani. Evenimentele critice se păstrează 5 ani.', + }, + { + id: 'ai-data', category: 'Activitate AI (C2)', dataTypes: ['Cereri AI', 'Aprobări', 'Costuri'], + retentionDays: 365, legalBasis: 'Proceduri interne', autoDelete: true, + notes: 'Cereri AI se șterg automat după 1 an. Metadatele anonimizate se păstrează pentru analiză.', + }, + { + id: 'observations', category: 'Observații Personale (C2)', dataTypes: ['KPI personal', 'Energie', 'Educație'], + retentionDays: 365 * 5, legalBasis: 'Consimțământ explicit', autoDelete: false, + notes: 'Utilizatorul controlează complet. Ștergere disponibilă din Export & Deletion.', + }, + { + id: 'communications', category: 'Comunicații (C2)', dataTypes: ['Email import', 'Follow-ups', 'Interacțiuni'], + retentionDays: 365 * 3, legalBasis: 'Interes legitim', autoDelete: false, + notes: 'Emailuri importate necesită consimțământ explicit al expeditorului dacă sunt persoane fizice.', + }, +]; + +function formatDays(days: number) { + if (days >= 365 * 10) return '10 ani'; + if (days >= 365 * 5) return '5 ani'; + if (days >= 365 * 3) return '3 ani'; + if (days >= 365 * 2) return '2 ani'; + if (days >= 365) return '1 an'; + if (days >= 30) return `${Math.floor(days/30)} luni`; + return `${days} zile`; +} + +export default function RetentionPoliciesPage() { + return ( +
+ Reguli de retenție per categorie de date — GDPR + legislație fiscală RO/DE. +
+Principii generale
+• Datele se rețin doar cât este necesar scopului pentru care au fost colectate.
+• La expirarea perioadei: ștergere securizată sau anonimizare ireversibilă.
+• Utilizatorul poate solicita ștergerea anticipată prin Export & Deletion.
+• Obligațiile legale de retenție (ex: fiscal) nu pot fi reduse prin cerere individuală.
+{policy.category}
+{formatDays(policy.retentionDays)}
+Temei legal: {policy.legalBasis}
+{policy.notes}
+