'use client' import React, { useState, useCallback } from 'react' import { useRouter } from 'next/navigation' import { useSDK } from '@/lib/sdk' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' import { DocumentUploadSection, type UploadedDocument } from '@/components/sdk' // ============================================================================= // TYPES // ============================================================================= interface ProcessingActivity { id: string name: string description: string purpose: string legalBasis: string dataCategories: string[] dataSubjects: string[] recipients: string[] thirdCountryTransfers: boolean retentionPeriod: string toms: string[] status: 'active' | 'draft' | 'archived' lastUpdated: Date responsible: string } // ============================================================================= // MOCK DATA // ============================================================================= const mockActivities: ProcessingActivity[] = [ { id: 'vvt-1', name: 'Personalverwaltung', description: 'Verarbeitung von Mitarbeiterdaten fuer HR-Zwecke', purpose: 'Durchfuehrung des Beschaeftigungsverhaeltnisses', legalBasis: 'Art. 6 Abs. 1 lit. b, Art. 88 DSGVO i.V.m. BDSG', dataCategories: ['Stammdaten', 'Kontaktdaten', 'Gehaltsdaten', 'Bankverbindung'], dataSubjects: ['Mitarbeiter', 'Bewerber'], recipients: ['Lohnbuero', 'Finanzamt', 'Sozialversicherungstraeger'], thirdCountryTransfers: false, retentionPeriod: '10 Jahre nach Ende des Beschaeftigungsverhaeltnisses', toms: ['Zugriffskontrolle', 'Verschluesselung', 'Protokollierung'], status: 'active', lastUpdated: new Date('2024-01-15'), responsible: 'HR-Abteilung', }, { id: 'vvt-2', name: 'Kundenverwaltung (CRM)', description: 'Verwaltung von Kundenbeziehungen und Vertriebsaktivitaeten', purpose: 'Vertragserfuellung und Kundenbetreuung', legalBasis: 'Art. 6 Abs. 1 lit. b DSGVO', dataCategories: ['Kontaktdaten', 'Kaufhistorie', 'Kommunikationsverlauf'], dataSubjects: ['Kunden', 'Interessenten'], recipients: ['Vertrieb', 'Kundenservice'], thirdCountryTransfers: true, retentionPeriod: '3 Jahre nach letzter Interaktion', toms: ['Zugriffskontrolle', 'Backups', 'Verschluesselung'], status: 'active', lastUpdated: new Date('2024-01-10'), responsible: 'Vertriebsleitung', }, { id: 'vvt-3', name: 'Newsletter-Marketing', description: 'Versand von Marketing-E-Mails und Newslettern', purpose: 'Direktmarketing und Kundenbindung', legalBasis: 'Art. 6 Abs. 1 lit. a DSGVO (Einwilligung)', dataCategories: ['E-Mail-Adresse', 'Name', 'Interaktionsdaten'], dataSubjects: ['Newsletter-Abonnenten'], recipients: ['Marketing-Abteilung', 'E-Mail-Dienstleister'], thirdCountryTransfers: true, retentionPeriod: 'Bis zum Widerruf der Einwilligung', toms: ['Double-Opt-In', 'Abmeldelink', 'Protokollierung'], status: 'active', lastUpdated: new Date('2024-01-20'), responsible: 'Marketing', }, { id: 'vvt-4', name: 'KI-gestuetztes Recruiting', description: 'Automatisierte Vorauswahl von Bewerbungen', purpose: 'Effiziente Bewerberauswahl', legalBasis: 'Art. 6 Abs. 1 lit. b, Art. 22 Abs. 2 lit. a DSGVO', dataCategories: ['Bewerbungsunterlagen', 'Qualifikationen', 'Berufserfahrung'], dataSubjects: ['Bewerber'], recipients: ['HR-Abteilung', 'Fachabteilungen'], thirdCountryTransfers: false, retentionPeriod: '6 Monate nach Absage', toms: ['Menschliche Aufsicht', 'Erklaerbarkeit', 'Bias-Pruefung'], status: 'draft', lastUpdated: new Date('2024-01-22'), responsible: 'HR-Abteilung', }, { id: 'vvt-5', name: 'Website-Analyse', description: 'Analyse des Nutzerverhaltens auf der Website', purpose: 'Verbesserung der Website und Nutzererfahrung', legalBasis: 'Art. 6 Abs. 1 lit. a DSGVO (Einwilligung via Cookie-Banner)', dataCategories: ['IP-Adresse', 'Seitenaufrufe', 'Verweildauer', 'Geraetedaten'], dataSubjects: ['Website-Besucher'], recipients: ['Marketing', 'Webentwicklung'], thirdCountryTransfers: true, retentionPeriod: '14 Monate', toms: ['IP-Anonymisierung', 'Cookie-Einwilligung', 'Opt-Out'], status: 'active', lastUpdated: new Date('2024-01-05'), responsible: 'Webmaster', }, ] // ============================================================================= // COMPONENTS // ============================================================================= function ActivityCard({ activity }: { activity: ProcessingActivity }) { const statusColors = { active: 'bg-green-100 text-green-700', draft: 'bg-yellow-100 text-yellow-700', archived: 'bg-gray-100 text-gray-500', } const statusLabels = { active: 'Aktiv', draft: 'Entwurf', archived: 'Archiviert', } return (
{activity.description}
Passen Sie die Suche oder den Filter an.