"use client"; import { useMutation } from "@tanstack/react-query"; import { api } from "@/lib/api"; import type { StrategyRecommendation } from "@/lib/types"; import { Loader2, Brain, AlertTriangle, ArrowRight, Shield, Calendar, RefreshCw, } from "lucide-react"; interface CaseStrategyProps { caseId: string; } const PRIORITY_STYLES = { high: "bg-red-50 text-red-700 border-red-200", medium: "bg-amber-50 text-amber-700 border-amber-200", low: "bg-emerald-50 text-emerald-700 border-emerald-200", } as const; const IMPORTANCE_STYLES = { critical: "border-l-red-500", important: "border-l-amber-500", routine: "border-l-neutral-300", } as const; export function CaseStrategy({ caseId }: CaseStrategyProps) { const mutation = useMutation({ mutationFn: () => api.post("/ai/case-strategy", { case_id: caseId, }), }); if (!mutation.data && !mutation.isPending && !mutation.isError) { return (

KI-Strategieanalyse

Claude analysiert die Akte und gibt strategische Empfehlungen.

); } if (mutation.isPending) { return (

Claude analysiert die Akte...

Dies kann bis zu 30 Sekunden dauern.

); } if (mutation.isError) { return (

Analyse fehlgeschlagen

); } const data = mutation.data!; return (

KI-Strategieanalyse

{/* Summary */}
{data.summary}
{/* Next Steps */} {data.next_steps?.length > 0 && (

Naechste Schritte

{data.next_steps.map((step, i) => (
{step.priority === "high" ? "Hoch" : step.priority === "medium" ? "Mittel" : "Niedrig"}

{step.action}

{step.reasoning}

{step.deadline && (

Frist: {step.deadline}

)}
))}
)} {/* Risk Assessment */} {data.risk_assessment?.length > 0 && (

Risikobewertung

{data.risk_assessment.map((risk, i) => (
{risk.level === "high" ? "Hoch" : risk.level === "medium" ? "Mittel" : "Niedrig"}

{risk.risk}

Massnahme: {risk.mitigation}

))}
)} {/* Timeline */} {data.timeline?.length > 0 && (

Zeitplan

{data.timeline.map((item, i) => (
{item.date} {item.event}
))}
)}
); }