'use client'; import { DeadlineMetrics, DeadlineAnalyticsService } from '@/services/analytics/deadline-analytics'; import { Card } from '@/components/ui/Card'; interface DeadlineRiskCardProps { metrics: DeadlineMetrics; } export function DeadlineRiskCard({ metrics }: DeadlineRiskCardProps) { const riskAnalysis = DeadlineAnalyticsService.calculateRiskMetrics(metrics); const getRiskIcon = (level: string) => { switch (level) { case 'critical': return '🔴'; case 'high': return '🟠'; case 'medium': return '🟡'; case 'low': return '🟢'; default: return '⚪'; } }; const getRiskColor = (level: string) => { switch (level) { case 'critical': return 'text-red-600 dark:text-red-400'; case 'high': return 'text-orange-600 dark:text-orange-400'; case 'medium': return 'text-yellow-600 dark:text-yellow-400'; case 'low': return 'text-green-600 dark:text-green-400'; default: return 'text-gray-600 dark:text-gray-400'; } }; const getRiskBgColor = (level: string) => { switch (level) { case 'critical': return 'bg-red-50/30 border-red-200/50 dark:bg-red-950/20 dark:border-red-800/30'; case 'high': return 'bg-orange-50/30 border-orange-200/50 dark:bg-orange-950/20 dark:border-orange-800/30'; case 'medium': return 'bg-yellow-50/30 border-yellow-200/50 dark:bg-yellow-950/20 dark:border-yellow-800/30'; case 'low': return 'bg-green-50/30 border-green-200/50 dark:bg-green-950/20 dark:border-green-800/30'; default: return 'bg-gray-50/30 border-gray-200/50 dark:bg-gray-950/20 dark:border-gray-800/30'; } }; return (
{getRiskIcon(riskAnalysis.riskLevel)}

Niveau de Risque

{riskAnalysis.riskScore}
{/* Barre de risque */}
{/* Détails des risques */}
En retard: {metrics.summary.overdueCount}
Critique: {metrics.summary.criticalCount}
{/* Recommandation */}

{riskAnalysis.recommendation}

); }