export type FormatPriceConfig = {
  locale?: string;
  currency?: string;
  minimumFractionDigits?: number;
  maximumFractionDigits?: number;
  fallback?: string;
};

export function formatPrice(
  value: number | string,
  config: FormatPriceConfig = {}
): string {
  const {
    locale = "en-IN",
    currency = "INR",
    minimumFractionDigits = 0,
    maximumFractionDigits = 2,
    fallback = "N/A",
  } = config;

  const amount = typeof value === "number" ? value : parseFloat(value);

  if (isNaN(amount)) return fallback;

  try {
    return new Intl.NumberFormat(locale, {
      style: "currency",
      currency,
      minimumFractionDigits,
      maximumFractionDigits,
    }).format(amount);
  } catch (error) {
    console.warn("formatPrice error:", error);
    return fallback;
  }
}
