'use client'
import {
DSRRequest,
DSR_TYPE_INFO,
DSR_STATUS_INFO,
getDaysRemaining,
isOverdue,
isUrgent
} from '@/lib/sdk/dsr/types'
import { DSRWorkflowStepperCompact } from '@/components/sdk/dsr'
export function RequestCard({ request, onClick }: { request: DSRRequest; onClick?: () => void }) {
const typeInfo = DSR_TYPE_INFO[request.type]
const statusInfo = DSR_STATUS_INFO[request.status]
const daysRemaining = getDaysRemaining(request.deadline.currentDeadline)
const overdue = isOverdue(request)
const urgent = isUrgent(request)
return (
{/* Header Badges */}
{request.referenceNumber}
{typeInfo.article} {typeInfo.labelShort}
{!request.identityVerification.verified && request.status !== 'completed' && request.status !== 'rejected' && (
ID fehlt
)}
{/* Requester Info */}
{request.requester.name}
{request.requester.email}
{/* Workflow Status */}
{/* Right Side - Deadline */}
{request.status === 'completed' || request.status === 'rejected' || request.status === 'cancelled'
? statusInfo.label
: overdue
? `${Math.abs(daysRemaining)} Tage ueberfaellig`
: `${daysRemaining} Tage`
}
{new Date(request.receivedAt).toLocaleDateString('de-DE')}
{/* Notes Preview */}
{request.notes && (
{request.notes}
)}
{/* Footer */}
{request.assignment.assignedTo
? `Zugewiesen: ${request.assignment.assignedTo}`
: 'Nicht zugewiesen'
}
{request.status !== 'completed' && request.status !== 'rejected' && request.status !== 'cancelled' && (
<>
{!request.identityVerification.verified && (
ID pruefen
)}
Bearbeiten
>
)}
{request.status === 'completed' && (
Details
)}
)
}