'use client' import React, { useState } from 'react' import { useSDK } from '@/lib/sdk' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' // ============================================================================= // TYPES // ============================================================================= interface Obligation { id: string title: string description: string source: string sourceArticle: string deadline: Date | null status: 'pending' | 'in-progress' | 'completed' | 'overdue' priority: 'critical' | 'high' | 'medium' | 'low' responsible: string linkedSystems: string[] } // ============================================================================= // MOCK DATA // ============================================================================= const mockObligations: Obligation[] = [ { id: 'obl-1', title: 'Risikomanagementsystem implementieren', description: 'Ein Risikomanagementsystem fuer das Hochrisiko-KI-System muss implementiert werden.', source: 'AI Act', sourceArticle: 'Art. 9', deadline: new Date('2024-06-01'), status: 'in-progress', priority: 'critical', responsible: 'IT Security', linkedSystems: ['Bewerber-Screening'], }, { id: 'obl-2', title: 'Technische Dokumentation erstellen', description: 'Umfassende technische Dokumentation fuer alle Hochrisiko-KI-Systeme.', source: 'AI Act', sourceArticle: 'Art. 11', deadline: new Date('2024-05-15'), status: 'pending', priority: 'high', responsible: 'Entwicklung', linkedSystems: ['Bewerber-Screening'], }, { id: 'obl-3', title: 'Datenschutzerklaerung aktualisieren', description: 'Die Datenschutzerklaerung muss an die neuen KI-Verarbeitungen angepasst werden.', source: 'DSGVO', sourceArticle: 'Art. 13/14', deadline: new Date('2024-02-01'), status: 'overdue', priority: 'high', responsible: 'Datenschutz', linkedSystems: ['Kundenservice Chatbot', 'Empfehlungsalgorithmus'], }, { id: 'obl-4', title: 'KI-Kennzeichnung implementieren', description: 'Nutzer muessen informiert werden, dass sie mit einem KI-System interagieren.', source: 'AI Act', sourceArticle: 'Art. 52', deadline: new Date('2024-03-01'), status: 'completed', priority: 'medium', responsible: 'UX Team', linkedSystems: ['Kundenservice Chatbot'], }, { id: 'obl-5', title: 'Menschliche Aufsicht sicherstellen', description: 'Prozesse fuer menschliche Aufsicht bei automatisierten Entscheidungen.', source: 'AI Act', sourceArticle: 'Art. 14', deadline: new Date('2024-04-01'), status: 'pending', priority: 'critical', responsible: 'Operations', linkedSystems: ['Bewerber-Screening'], }, ] // ============================================================================= // COMPONENTS // ============================================================================= function ObligationCard({ obligation }: { obligation: Obligation }) { const priorityColors = { critical: 'bg-red-100 text-red-700', high: 'bg-orange-100 text-orange-700', medium: 'bg-yellow-100 text-yellow-700', low: 'bg-green-100 text-green-700', } const statusColors = { pending: 'bg-gray-100 text-gray-600 border-gray-200', 'in-progress': 'bg-blue-100 text-blue-700 border-blue-200', completed: 'bg-green-100 text-green-700 border-green-200', overdue: 'bg-red-100 text-red-700 border-red-200', } const statusLabels = { pending: 'Ausstehend', 'in-progress': 'In Bearbeitung', completed: 'Abgeschlossen', overdue: 'Ueberfaellig', } const daysUntilDeadline = obligation.deadline ? Math.ceil((obligation.deadline.getTime() - new Date().getTime()) / (1000 * 60 * 60 * 24)) : null return (
{obligation.description}
Diese Pflichten erfordern sofortige Aufmerksamkeit.
Passen Sie den Filter an oder fuegen Sie neue Pflichten hinzu.