import type { Database } from "@/integrations/supabase/types";

export type OrderStatus = Database["public"]["Enums"]["order_status"];
export type PaymentStatus = Database["public"]["Enums"]["order_payment_status"];

/** Visual progress tracker steps, in order. */
export const ORDER_STEPS: { key: OrderStatus; label: string }[] = [
  { key: "submitted", label: "Submitted" },
  { key: "in_review", label: "In review" },
  { key: "processing", label: "Processing" },
  { key: "completed", label: "Completed" },
];

export const STATUS_LABEL: Record<OrderStatus, string> = {
  submitted: "Submitted",
  in_review: "In review",
  processing: "Processing",
  awaiting_info: "Awaiting info",
  completed: "Completed",
  cancelled: "Cancelled",
};

export const stepIndex = (status: OrderStatus) => {
  if (status === "completed") return ORDER_STEPS.length - 1;
  if (status === "cancelled" || status === "awaiting_info") return 1;
  return Math.max(0, ORDER_STEPS.findIndex((s) => s.key === status));
};

/** Format a number as Kenyan Shillings. */
export const kes = (value: number | null | undefined) =>
  value == null
    ? "—"
    : new Intl.NumberFormat("en-KE", { style: "currency", currency: "KES", maximumFractionDigits: 2 }).format(Number(value));

export const WHATSAPP_NUMBER = "254717576870";
export const SUPPORT_EMAIL = "flexflarescyberservices@gmail.com";