export const formatAmount = (amount: number | undefined) => {
    if (!amount) return "₦0.00";
    return (
      "₦" +
      Number(amount).toLocaleString("en-NG", {
        minimumFractionDigits: 2,
        maximumFractionDigits: 2,
      })
    );
};
  
export const formatDate = (dateString: string) =>
  new Date(dateString).toLocaleDateString('en-GB', {
    day: '2-digit',
    month: 'short',
    year: 'numeric',
  });

export const calculateLoanDetails = (loanAmount: number, tenure: number, interestRate: number = 0.06) => {
  const interest = loanAmount * interestRate;
  const totalAmountDue = loanAmount + interest;
  const monthlyRepayment = totalAmountDue / tenure;
  
  const currentDate = new Date();
  const dueDate = new Date(currentDate.setMonth(currentDate.getMonth() + tenure));
  const formattedDueDate = dueDate.toLocaleDateString('en-GB', { 
    day: '2-digit', 
    month: 'short', 
    year: 'numeric' 
  }).toUpperCase();
  
  const durationInDays = tenure * 30;

  return {
    loanAmount,
    interest,
    totalAmountDue,
    dueDate: formattedDueDate,
    dueAmount: monthlyRepayment,
    monthlyRepayment,
    installments: tenure,
    duration: durationInDays,
  };
};

export const isTechnicalError = (msg: string) =>
  typeof msg === "string" &&
  (
    msg.includes("Exception") ||
    msg.includes("server") ||
    msg.includes("internal") ||
    msg.includes("retrieving the wallet")
  );

export const getUserFriendlyError = (msg: string) =>
  isTechnicalError(msg)
    ? "Something went wrong. Please try again later."
    : msg || "An error occurred. Please try again.";