import { clsx, type ClassValue } from "clsx";
import { twMerge } from "tailwind-merge";
import moment from "moment-jalaali";

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs));
}

export const formatNumber = (value: string | number) => {
  // if (!value) return "0";
  const numericValue = typeof value === "string" ? parseFloat(value) : value;
  if (isNaN(numericValue)) return "0";
  return new Intl.NumberFormat("fa-IR").format(numericValue);
};

export const formatCurrency = (amount: string | number) => {
  if (!amount) return "0 ریال";
  // Remove commas and convert to number
  const numericAmount =
    typeof amount === "string" ? parseFloat(amount.replace(/,/g, "")) : amount;
  if (isNaN(numericAmount)) return "0 ریال";
  return new Intl.NumberFormat("fa-IR").format(numericAmount) + " ریال";
};



export const  handleDataValue = (val: any): any => {
moment.loadPersian({ usePersianDigits: true });
  if (val == null) return val;
  if (
    typeof val === "string" &&
    /^\d{4}[-/]\d{2}[-/]\d{2}( \d{2}:\d{2}(:\d{2})?)?$/.test(val)
  ) {
    return moment(val, "YYYY-MM-DD HH:mm:ss").format("YYYY/MM/DD");
  }
  if (
    typeof val === "number" ||
    (typeof val === "string" && /^-?\d+$/.test(val))
  ) {
    return val.toString().replace(/\d/g, (d) => "۰۱۲۳۴۵۶۷۸۹"[+d]);
  }
  return val;
}
