// ============================================================================= // Loeschfristen Module - Profiling Wizard // 4-Step Profiling (15 Fragen) zur Generierung von Baseline-Loeschrichtlinien // ============================================================================= import type { LoeschfristPolicy, StorageLocation } from './loeschfristen-types' import { BASELINE_TEMPLATES, type BaselineTemplate, templateToPolicy } from './loeschfristen-baseline-catalog' // ============================================================================= // TYPES // ============================================================================= export type ProfilingStepId = 'organization' | 'data-categories' | 'systems' | 'special' export interface ProfilingQuestion { id: string step: ProfilingStepId question: string // German helpText?: string type: 'single' | 'multi' | 'boolean' | 'number' options?: { value: string; label: string }[] required: boolean } export interface ProfilingAnswer { questionId: string value: string | string[] | boolean | number } export interface ProfilingStep { id: ProfilingStepId title: string description: string questions: ProfilingQuestion[] } export interface ProfilingResult { matchedTemplates: BaselineTemplate[] generatedPolicies: LoeschfristPolicy[] additionalStorageLocations: StorageLocation[] hasLegalHoldRequirement: boolean } // ============================================================================= // PROFILING STEPS (4 Steps, 15 Questions) // ============================================================================= export const PROFILING_STEPS: ProfilingStep[] = [ // ========================================================================= // Step 1: Organisation (4 Fragen) // ========================================================================= { id: 'organization', title: 'Organisation', description: 'Allgemeine Informationen zu Ihrem Unternehmen, um branchenspezifische Loeschfristen zu ermitteln.', questions: [ { id: 'org-branche', step: 'organization', question: 'In welcher Branche ist Ihr Unternehmen taetig?', helpText: 'Die Branche bestimmt, welche branchenspezifischen Aufbewahrungspflichten relevant sind.', type: 'single', options: [ { value: 'it-software', label: 'IT / Software' }, { value: 'handel', label: 'Handel' }, { value: 'dienstleistung', label: 'Dienstleistung' }, { value: 'gesundheitswesen', label: 'Gesundheitswesen' }, { value: 'bildung', label: 'Bildung' }, { value: 'fertigung-industrie', label: 'Fertigung / Industrie' }, { value: 'finanzwesen', label: 'Finanzwesen' }, { value: 'oeffentlicher-sektor', label: 'Oeffentlicher Sektor' }, { value: 'sonstige', label: 'Sonstige' }, ], required: true, }, { id: 'org-mitarbeiter', step: 'organization', question: 'Wie viele Mitarbeiter hat Ihr Unternehmen?', helpText: 'Die Unternehmensgroesse beeinflusst den Umfang der erforderlichen Loeschkonzepte.', type: 'single', options: [ { value: '<10', label: 'Weniger als 10' }, { value: '10-49', label: '10 bis 49' }, { value: '50-249', label: '50 bis 249' }, { value: '250+', label: '250 und mehr' }, ], required: true, }, { id: 'org-geschaeftsmodell', step: 'organization', question: 'Welches Geschaeftsmodell verfolgen Sie?', helpText: 'B2B und B2C haben unterschiedliche Anforderungen an die Datenhaltung.', type: 'single', options: [ { value: 'b2b', label: 'B2B (Geschaeftskunden)' }, { value: 'b2c', label: 'B2C (Endkunden)' }, { value: 'beides', label: 'Beides (B2B und B2C)' }, ], required: true, }, { id: 'org-website', step: 'organization', question: 'Betreiben Sie eine Website oder Online-Praesenz?', helpText: 'Websites erzeugen Webserver-Logs und erfordern Cookie-Consent-Verwaltung.', type: 'boolean', required: true, }, ], }, // ========================================================================= // Step 2: Datenkategorien (5 Fragen) // ========================================================================= { id: 'data-categories', title: 'Datenkategorien', description: 'Welche Arten personenbezogener Daten verarbeiten Sie? Dies bestimmt die relevanten Aufbewahrungsfristen.', questions: [ { id: 'data-hr', step: 'data-categories', question: 'Verarbeiten Sie HR-/Personaldaten (Personalakten, Gehaltsabrechnungen, Zeiterfassung)?', helpText: 'Personalakten unterliegen umfangreichen gesetzlichen Aufbewahrungspflichten (bis zu 10 Jahre).', type: 'boolean', required: true, }, { id: 'data-buchhaltung', step: 'data-categories', question: 'Fuehren Sie eine Buchhaltung mit Finanzdaten (Rechnungen, Belege, Steuererklarungen)?', helpText: 'Buchhaltungsunterlagen muessen gemaess HGB und AO bis zu 10 Jahre aufbewahrt werden.', type: 'boolean', required: true, }, { id: 'data-vertraege', step: 'data-categories', question: 'Verwalten Sie Vertraege mit Kunden oder Lieferanten?', helpText: 'Vertragsunterlagen und Geschaeftsbriefe haben spezifische Aufbewahrungspflichten.', type: 'boolean', required: true, }, { id: 'data-marketing', step: 'data-categories', question: 'Betreiben Sie Marketing-Aktivitaeten (Newsletter, CRM-Kampagnen)?', helpText: 'Marketing-Einwilligungen und Kontakthistorien muessen dokumentiert und verwaltet werden.', type: 'boolean', required: true, }, { id: 'data-video', step: 'data-categories', question: 'Setzen Sie Videoueberwachung ein?', helpText: 'Videoueberwachungsdaten haben besonders kurze Loeschfristen (in der Regel 72 Stunden).', type: 'boolean', required: true, }, ], }, // ========================================================================= // Step 3: Systeme (3 Fragen) // ========================================================================= { id: 'systems', title: 'Systeme & Infrastruktur', description: 'Welche IT-Systeme und Infrastruktur nutzen Sie? Dies beeinflusst die Speicherorte in Ihrem Loeschkonzept.', questions: [ { id: 'sys-cloud', step: 'systems', question: 'Nutzen Sie Cloud-Dienste zur Datenspeicherung oder -verarbeitung?', helpText: 'Cloud-Speicherorte muessen in den Loeschrichtlinien als separate Speicherorte dokumentiert werden.', type: 'boolean', required: true, }, { id: 'sys-backup', step: 'systems', question: 'Haben Sie Backup-Systeme im Einsatz?', helpText: 'Backups erfordern eine eigene Loeschstrategie, da Daten dort nach der primaeren Loeschung weiter existieren koennen.', type: 'boolean', required: true, }, { id: 'sys-erp', step: 'systems', question: 'Setzen Sie ein ERP- oder CRM-System ein?', helpText: 'ERP-/CRM-Systeme sind haeufig zentrale Speicherorte fuer Kunden- und Geschaeftsdaten.', type: 'boolean', required: true, }, ], }, // ========================================================================= // Step 4: Spezielle Anforderungen (3 Fragen) // ========================================================================= { id: 'special', title: 'Spezielle Anforderungen', description: 'Gibt es besondere rechtliche oder organisatorische Anforderungen, die Ihr Loeschkonzept beeinflussen?', questions: [ { id: 'special-legal-hold', step: 'special', question: 'Gibt es Legal-Hold-Anforderungen (z.B. laufende Rechtsstreitigkeiten, behoerdliche Untersuchungen)?', helpText: 'Bei einem Legal Hold muessen betroffene Daten trotz abgelaufener Loeschfristen aufbewahrt werden.', type: 'boolean', required: true, }, { id: 'special-archivierung', step: 'special', question: 'Benoetigen Sie eine Langzeitarchivierung von Dokumenten?', helpText: 'Langzeitarchivierung kann ueber die gesetzlichen Mindestfristen hinausgehen und erfordert eine gesonderte Rechtfertigung.', type: 'boolean', required: true, }, { id: 'special-gesundheit', step: 'special', question: 'Verarbeiten Sie Gesundheitsdaten (z.B. Krankmeldungen, Arbeitsmedizin)?', helpText: 'Gesundheitsdaten sind besonders schuetzenswerte Daten nach Art. 9 DSGVO und unterliegen strengeren Anforderungen.', type: 'boolean', required: true, }, ], }, ] // ============================================================================= // HELPER FUNCTIONS // ============================================================================= /** * Retrieve the value of a specific answer by question ID. */