import { Card, CardContent } from "@/components/ui/card"; import type { Case } from "@/lib/api/cases"; type Bucket = { label: string; caption: string; value: number; tone: "navy" | "gold" | "warn" | "success"; }; const TONE_STYLES: Record = { navy: "before:bg-navy text-navy", gold: "before:bg-gold text-gold-deep", warn: "before:bg-warn text-warn", success: "before:bg-success text-success", }; function bucketize(cases: Case[] | undefined): Bucket[] { const c = cases ?? []; const inProgress = c.filter((x) => ["processing", "documents_ready", "analyst_verified", "research_complete", "outcome_set", "brainstorming", "direction_approved", "analysis_enriched", "ready_for_writing"].includes(x.status), ).length; const drafting = c.filter((x) => ["drafting", "qa_review", "drafted"].includes(x.status), ).length; const done = c.filter((x) => ["exported", "reviewed", "final"].includes(x.status), ).length; return [ { label: "סה״כ תיקי ערר", caption: "בכל הסטטוסים", value: c.length, tone: "navy" }, { label: "בהכנה", caption: "מסמכים וניתוח", value: inProgress, tone: "gold" }, { label: "בכתיבה", caption: "טיוטות ו-QA", value: drafting, tone: "warn" }, { label: "מוכנים", caption: "יוצאו או סופיים", value: done, tone: "success" }, ]; } export function KPICards({ cases, loading }: { cases?: Case[]; loading?: boolean }) { const buckets = bucketize(cases); return (
{buckets.map((b) => ( {b.label} {loading ? "—" : b.value} {b.caption} ))}
); }