import { useState } from 'react' import { Alert, Box, Chip, CircularProgress, Collapse, Typography } from '@mui/material' import { ChevronDown, ChevronUp, Trophy, TrendingDown, ShieldCheck, AlertTriangle, Info, ArrowRight, CheckCircle2, XCircle, Star } from 'lucide-react' import type { ComparisonSummary } from '../../services/aiService' import { DS_TEXT, DS_BG, DS_BORDER, DS_SURFACE } from '../../lib/ds' interface Props { summary?: ComparisonSummary isLoading: boolean } export function AICompareSummary({ summary, isLoading }: Props) { const [open, setOpen] = useState(true) return ( setOpen(v => !v)} sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', px: 2, py: 1.25, bgcolor: DS_SURFACE.neutral.bg, cursor: 'pointer', '&:hover': { bgcolor: DS_BG.subtle }, }} > AI Vergleichs-Zusammenfassung {open ? : } {isLoading && ( Analyse wird erstellt… )} {!isLoading && summary && ( {/* Overall assessment */} {summary.overallAssessment} {/* Strongest option */} Stärkstes Match {summary.strongestOption.label} {summary.strongestOption.reason} {/* Best value */} {summary.bestValue && ( Bestes Preis-Leistungs-Verhältnis {summary.bestValue.label} {summary.bestValue.reason} )} {/* Highest confidence */} Höchste Datenkonfidenz {summary.highestConfidence.label} ({Math.round(summary.highestConfidence.confidenceLevel * 100)}%) {/* Tradeoffs */} {summary.biggestTradeoffs.length > 0 && ( Wichtigste Abwägungen {summary.biggestTradeoffs.map((t, i) => ( · {t} ))} )} {/* Missing data */} {summary.missingDataWarnings.length > 0 && ( Fehlende Informationen {summary.missingDataWarnings.map((w, i) => ( · {w} ))} )} {/* Per-property assessment */} {summary.perPropertyAssessment.length > 0 && ( Objektbewertung {summary.perPropertyAssessment.map(prop => ( {prop.label} {/* Strengths */} {prop.strengths.map((s, i) => ( {s} ))} {/* Weaknesses */} {prop.weaknesses.map((w, i) => ( {w} ))} {/* Best for */} Am besten für: {prop.bestFor} {/* Key risk */} {prop.keyRisk && ( {prop.keyRisk} )} ))} )} {/* Recommendation */} Empfehlung {summary.recommendation} )} {!isLoading && !summary && ( Mindestens 2 Ergebnisse auswählen, um die Zusammenfassung zu generieren. )} Diese Zusammenfassung basiert ausschliesslich auf den vorliegenden Daten und trifft keine endgültige Entscheidung. ) }