import { Box, Chip } from '@mui/material' import { Building2 } from 'lucide-react' import { MatchScoreDisplay } from './MatchScoreDisplay' import { HeatBadge } from '../shared' import { useSessionStore } from '../../stores/sessionStore' import { RESULT_TYPE_META } from '../../lib/ds' import { confidenceHex } from '../../lib/utils' import type { MatchCardViewModel } from './MatchCardViewModel' interface Props { vm: MatchCardViewModel compact?: boolean } export function MatchCardHeader({ vm, compact }: Props) { const { currentUser } = useSessionStore() const isPortfolioOwner = currentUser?.role === 'PROPERTY_MANAGER' || currentUser?.role === 'ORGANIZATION_ADMIN' const rt = RESULT_TYPE_META[vm.resultType] ?? { label: vm.resultType, color: '#64748b' } const confPct = Math.round(vm.confidenceScore * 100) const topRisk = vm.risks.length > 0 ? vm.risks[0].level : undefined const showRiskBadge = topRisk && topRisk !== 'LOW' const riskLabel = topRisk === 'CRITICAL' ? 'Kritisch' : topRisk === 'HIGH' ? 'Hohes Risiko' : 'Mittleres Risiko' const riskColor: 'error' | 'warning' = (topRisk === 'HIGH' || topRisk === 'CRITICAL') ? 'error' : 'warning' return ( {/* Score — leftmost, most prominent */} {/* Badges: heat → resultType → assetType → confidence → availability → risk */} {vm.resultType === 'VERIFIED_PORTFOLIO' && isPortfolioOwner && ( } label="Ihr Objekt" size="small" sx={{ bgcolor: 'rgba(30,58,95,0.12)', color: '#152642', fontWeight: 700, fontSize: 11, '& .MuiChip-icon': { ml: 0.5 } }} /> )} {vm.assetType && ( )} {vm.availabilityLabel && ( )} {showRiskBadge && ( )} ) }