'use client' export interface DSFA { id: string title: string description: string status: 'draft' | 'in-review' | 'approved' | 'needs-update' createdAt: string updatedAt: string approvedBy: string | null riskLevel: 'low' | 'medium' | 'high' | 'critical' processingActivity: string dataCategories: string[] recipients: string[] measures: string[] } export function DSFACard({ dsfa, onStatusChange, onDelete, }: { dsfa: DSFA onStatusChange: (id: string, status: string) => void onDelete: (id: string) => void }) { const statusColors = { draft: 'bg-gray-100 text-gray-600 border-gray-200', 'in-review': 'bg-yellow-100 text-yellow-700 border-yellow-200', approved: 'bg-green-100 text-green-700 border-green-200', 'needs-update': 'bg-orange-100 text-orange-700 border-orange-200', } const statusLabels = { draft: 'Entwurf', 'in-review': 'In Pruefung', approved: 'Genehmigt', 'needs-update': 'Aktualisierung erforderlich', } const riskColors = { low: 'bg-green-100 text-green-700', medium: 'bg-yellow-100 text-yellow-700', high: 'bg-orange-100 text-orange-700', critical: 'bg-red-100 text-red-700', } const createdDate = dsfa.createdAt ? new Date(dsfa.createdAt).toLocaleDateString('de-DE') : '—' return (
{statusLabels[dsfa.status]} Risiko: {dsfa.riskLevel === 'low' ? 'Niedrig' : dsfa.riskLevel === 'medium' ? 'Mittel' : dsfa.riskLevel === 'high' ? 'Hoch' : 'Kritisch'}

{dsfa.title}

{dsfa.description}

Verarbeitungstaetigkeit: {dsfa.processingActivity}

{dsfa.dataCategories.map(cat => ( {cat} ))}
{dsfa.measures.length > 0 && (
Massnahmen:
{dsfa.measures.map(m => ( {m} ))}
)}
Erstellt: {createdDate} {dsfa.approvedBy && ( Genehmigt von: {dsfa.approvedBy} )}
{dsfa.status === 'draft' && ( )} {dsfa.status === 'in-review' && ( )}
) }