import { Badge } from "@/components/ui/badge"; import { FilePlus2, Upload, Loader2, FileCheck, Target, Lightbulb, Compass, PenLine, SearchCheck, FileText, FileOutput, CheckCircle2, Award, } from "lucide-react"; import type { CaseStatus } from "@/lib/api/cases"; import type { LucideIcon } from "lucide-react"; const STATUS_LABELS: Record = { new: "חדש", uploading: "מעלה", processing: "בעיבוד", documents_ready: "מסמכים מוכנים", outcome_set: "תוצאה נקבעה", brainstorming: "סיעור מוחות", direction_approved: "כיוון אושר", drafting: "בכתיבה", qa_review: "QA", drafted: "טיוטה", exported: "יוצא", reviewed: "נבדק", final: "סופי", }; const STATUS_ICONS: Record = { new: FilePlus2, uploading: Upload, processing: Loader2, documents_ready: FileCheck, outcome_set: Target, brainstorming: Lightbulb, direction_approved: Compass, drafting: PenLine, qa_review: SearchCheck, drafted: FileText, exported: FileOutput, reviewed: CheckCircle2, final: Award, }; const STATUS_DESCRIPTIONS: Record = { new: "התיק נוצר וממתין להעלאת מסמכים", uploading: "מסמכים בתהליך העלאה לשרת", processing: "המערכת מעבדת ומנתחת את המסמכים", documents_ready: "כל המסמכים עובדו ומוכנים לעבודה", outcome_set: "נקבעה תוצאה צפויה לערר", brainstorming: "ניתוח כיוונים אפשריים להחלטה", direction_approved: "כיוון ההחלטה אושר — ניתן להתחיל כתיבה", drafting: "טיוטת ההחלטה בתהליך כתיבה", qa_review: "הטיוטה בבדיקת איכות אוטומטית", drafted: "טיוטה ראשונה מוכנה לעיון", exported: "ההחלטה יוצאה לקובץ DOCX", reviewed: "ההחלטה נבדקה ע\"י היו\"ר", final: "החלטה סופית — מוכנה להגשה", }; /* Status color groups: * intake → new, uploading, processing (muted parchment) * prep → documents_ready, outcome_set (info blue) * thinking→ brainstorming, direction_approved (gold) * writing → drafting, qa_review, drafted (warn amber) * done → exported, reviewed, final (success green) */ const STATUS_TONE: Record = { new: "bg-rule-soft text-ink-muted border-rule", uploading: "bg-rule-soft text-ink-muted border-rule", processing: "bg-info-bg text-info border-info/30", documents_ready: "bg-info-bg text-info border-info/40", outcome_set: "bg-info-bg text-info border-info/40", brainstorming: "bg-gold-wash text-gold-deep border-gold/40", direction_approved:"bg-gold-wash text-gold-deep border-gold/50", drafting: "bg-warn-bg text-warn border-warn/40", qa_review: "bg-warn-bg text-warn border-warn/40", drafted: "bg-warn-bg text-warn border-warn/50", exported: "bg-success-bg text-success border-success/40", reviewed: "bg-success-bg text-success border-success/50", final: "bg-success-bg text-success border-success/60 font-semibold", }; export function StatusBadge({ status }: { status: CaseStatus }) { const Icon = STATUS_ICONS[status]; return ( {Icon && } {STATUS_LABELS[status] ?? status} ); } export { STATUS_LABELS, STATUS_ICONS, STATUS_DESCRIPTIONS, STATUS_TONE };