export type InvoiceStatus = "draft" | "sent" | "paid" | "overdue"; export function getInvoiceStatus(invoice: { status: string; dueDate: Date | string; }): InvoiceStatus { if (invoice.status === "paid") return "paid"; if (invoice.status === "draft") return "draft"; if (new Date(invoice.dueDate) < new Date()) return "overdue"; return "sent"; } export const statusLabels: Record = { draft: "Draft", sent: "Sent", paid: "Paid", overdue: "Overdue", }; const lightStatusColors: Record = { draft: "#6b7280", sent: "#2563eb", paid: "#16a34a", overdue: "#dc2626", }; const darkStatusColors: Record = { draft: "#A1A1AA", sent: "#60A5FA", paid: "#4ADE80", overdue: "#F87171", }; /** @deprecated Use `getStatusColor` for theme-aware colors. */ export const statusColors = lightStatusColors; export function getStatusColor(status: InvoiceStatus, isDark: boolean): string { return (isDark ? darkStatusColors : lightStatusColors)[status]; }