'use client' import React, { useState } from 'react' import Link from 'next/link' import { useSDK, UseCaseAssessment } from '@/lib/sdk' // ============================================================================= // WIZARD STEPS // ============================================================================= const WIZARD_STEPS = [ { id: 1, name: 'Grunddaten', description: 'Name und Beschreibung des Use Cases' }, { id: 2, name: 'Datenkategorien', description: 'Welche Daten werden verarbeitet?' }, { id: 3, name: 'Technologie', description: 'Eingesetzte KI-Technologien' }, { id: 4, name: 'Risikobewertung', description: 'Erste Risikoeinschätzung' }, { id: 5, name: 'Zusammenfassung', description: 'Überprüfung und Abschluss' }, ] // ============================================================================= // USE CASE CARD // ============================================================================= function UseCaseCard({ useCase, isActive, onSelect, onDelete, }: { useCase: UseCaseAssessment isActive: boolean onSelect: () => void onDelete: () => void }) { const completionPercent = Math.round((useCase.stepsCompleted / 5) * 100) return (
{/* Delete Button */}
{completionPercent === 100 ? ( ) : ( )}

{useCase.name}

{useCase.description}

Fortschritt {completionPercent}%
{useCase.assessmentResult && (
Risiko: {useCase.assessmentResult.riskLevel} {useCase.assessmentResult.dsfaRequired && ( DSFA erforderlich )}
)}
) } // ============================================================================= // WIZARD // ============================================================================= interface WizardFormData { name: string description: string category: string dataCategories: string[] processesPersonalData: boolean specialCategories: boolean aiTechnologies: string[] dataVolume: string riskLevel: string notes: string } function UseCaseWizard({ onComplete, onCancel, }: { onComplete: (useCase: UseCaseAssessment) => void onCancel: () => void }) { const [currentStep, setCurrentStep] = useState(1) const [formData, setFormData] = useState({ name: '', description: '', category: '', dataCategories: [], processesPersonalData: false, specialCategories: false, aiTechnologies: [], dataVolume: 'medium', riskLevel: 'medium', notes: '', }) const updateFormData = (updates: Partial) => { setFormData(prev => ({ ...prev, ...updates })) } const handleNext = () => { if (currentStep < 5) { setCurrentStep(prev => prev + 1) } else { // Create use case const newUseCase: UseCaseAssessment = { id: `uc-${Date.now()}`, name: formData.name, description: formData.description, category: formData.category, stepsCompleted: 5, steps: WIZARD_STEPS.map(s => ({ id: `step-${s.id}`, name: s.name, completed: true, data: {}, })), assessmentResult: { riskLevel: formData.riskLevel as 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL', applicableRegulations: ['DSGVO', 'AI Act'], recommendedControls: ['Datenschutz-Folgenabschätzung', 'Technische Maßnahmen'], dsfaRequired: formData.specialCategories || formData.riskLevel === 'HIGH', aiActClassification: formData.aiTechnologies.length > 0 ? 'LIMITED' : 'MINIMAL', }, createdAt: new Date(), updatedAt: new Date(), } onComplete(newUseCase) } } const handleBack = () => { if (currentStep > 1) { setCurrentStep(prev => prev - 1) } } return (
{/* Header */}

Neuer Use Case

{/* Progress */}
{WIZARD_STEPS.map((step, index) => (
{step.id < currentStep ? ( ) : ( step.id )}
{index < WIZARD_STEPS.length - 1 && (
)} ))}

Schritt {currentStep}: {WIZARD_STEPS[currentStep - 1].description}

{/* Content */}
{currentStep === 1 && (
updateFormData({ name: e.target.value })} placeholder="z.B. Marketing-KI für Kundensegmentierung" className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent" />