import { AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import type { HealthIssue } from '@/types/database-analytics'; import { AlertCircle, AlertTriangle, Info, Lightbulb } from 'lucide-react'; interface HealthIssueCardProps { issue: HealthIssue; } export function HealthIssueCard({ issue }: HealthIssueCardProps) { const getSeverityIcon = () => { switch (issue.severity) { case 'critical': return ; case 'warning': return ; case 'info': return ; } }; const getSeverityColor = () => { switch (issue.severity) { case 'critical': return 'border-red-600 bg-red-50 dark:bg-red-950/20'; case 'warning': return 'border-yellow-600 bg-yellow-50 dark:bg-yellow-950/20'; case 'info': return 'border-blue-600 bg-blue-50 dark:bg-blue-950/20'; } }; const getSeverityBadgeVariant = () => { switch (issue.severity) { case 'critical': return 'destructive'; case 'warning': return 'default'; case 'info': return 'secondary'; } }; return ( {getSeverityIcon()} {issue.description} {issue.category.replace(/_/g, ' ')} {issue.count} {issue.count === 1 ? 'entity' : 'entities'} {/* Suggested Action */} Suggested Action {issue.suggested_action} {/* Entity IDs (first 10) */} {issue.entity_ids && issue.entity_ids.length > 0 && ( Affected Entities ({issue.entity_ids.length}) {issue.entity_ids.slice(0, 10).map((id) => ( {id.substring(0, 8)}... ))} {issue.entity_ids.length > 10 && ( +{issue.entity_ids.length - 10} more )} )} {/* Action Buttons */} View Entities Export List ); }