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 ( +
+
+

Politici de Retenție

+

+ 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ă.

+
+
+ +
+ {POLICIES.map((policy) => ( +
+
+
+

{policy.category}

+
+ {policy.dataTypes.map((dt) => ( + {dt} + ))} +
+
+
+

{formatDays(policy.retentionDays)}

+
+ {policy.autoDelete ? ( + 🤖 auto-ștergere + ) : ( + 👤 manual + )} +
+
+
+
+

Temei legal: {policy.legalBasis}

+

{policy.notes}

+
+
+ ))} +
+ +
+ + Cerere ștergere date → + + + Audit log → + + + Consimțăminte GDPR → + +
+
+ ); +}