import { format } from "date-fns-jalali";
import { enUS } from "date-fns-jalali/locale/en-US";
import { faIR } from "date-fns-jalali/locale/fa-IR";

const PLAN_TIERS = ["Free", "Pro", "Business", "Enterprise"] as const;
export type PlanTierKey = (typeof PLAN_TIERS)[number];

export function isPlanTierKey(tier: string): tier is PlanTierKey {
  return (PLAN_TIERS as readonly string[]).includes(tier);
}

export function numberLocaleForUi(locale: string): string {
  if (locale === "en") return "en-US";
  if (locale === "ar") return "ar-SA";
  return "fa-IR";
}

export function formatHeaderTime(date: Date, locale: string): string {
  return date.toLocaleTimeString(numberLocaleForUi(locale), {
    hour: "2-digit",
    minute: "2-digit",
    second: "2-digit",
    hour12: false,
  });
}

export function formatHeaderJalaliDate(date: Date, locale: string): string {
  const jalaliLocale = locale === "en" ? enUS : faIR;
  return format(date, "EEEE d MMMM yyyy", { locale: jalaliLocale });
}
