import { Box, Chip, IconButton, Tooltip, Typography } from '@mui/material' import { X, AlertTriangle } from 'lucide-react' import type { UnifiedMatchResult } from '../../domain/unifiedResult' const TYPE_META: Record = { VERIFIED_PORTFOLIO: { label: 'Verified Portfolio', color: '#1e3a5f' }, EXTERNAL_MARKET: { label: 'Marktinserat', color: '#d97706' }, FUTURE_AVAILABILITY: { label: 'Zukunftssignal', color: '#7c3aed' }, } const SCORE_COLOR = (s: number) => s >= 78 ? '#1a7a4a' : s >= 52 ? '#d97706' : '#c0392b' interface Props { item: UnifiedMatchResult onRemove: () => void } export function CompareColumnHeader({ item, onRemove }: Props) { const meta = TYPE_META[item.resultType] ?? { label: item.resultType, color: '#64748b' } const prop = item.resultType !== 'FUTURE_AVAILABILITY' ? (item as any).property : null const sig = item.resultType === 'FUTURE_AVAILABILITY' ? (item as any).signal : null const title = prop?.title ?? sig?.companyName ?? sig?.locationHint ?? '–' const subtitle = prop?.location?.city ?? sig?.locationHint ?? '–' const availability = prop?.availabilityDate ?? (sig ? `~${sig.timeHorizonMonths} Monate` : null) const confidence = Math.round(item.match.confidenceLevel * 100) const source = prop?.sourceLabel ?? sig?.source?.type ?? '–' return ( {title} {subtitle} {item.matchScore} /100 : undefined} sx={{ fontSize: 10, bgcolor: confidence < 60 ? '#fef3c7' : '#f0fdf4', color: confidence < 60 ? '#92400e' : '#166534', }} /> {source && source !== '–' && ( )} {availability && ( )} {item.resultType === 'FUTURE_AVAILABILITY' && sig && ( Probabilistisches Signal {Math.round(sig.probability * 100)}% Wahrscheinlichkeit )} ) }