import type { Ride } from "@/types/type";

export const sortRides = (rides: Ride[]): Ride[] => {
  return [...rides].sort(
    (a, b) =>
      new Date(b.created_at).getTime() - new Date(a.created_at).getTime(),
  );
};

export function formatTime(minutes: number): string {
  const formattedMinutes = Math.round(minutes) || 0;

  if (formattedMinutes < 60) {
    return `${formattedMinutes} min`;
  } else {
    const hours = Math.floor(formattedMinutes / 60);
    const remainingMinutes = formattedMinutes % 60;
    return `${hours}h ${remainingMinutes}m`;
  }
}

export function formatDate(dateString: string): string {
  const date = new Date(dateString);
  const day = date.getDate();
  const monthNames = [
    "Jan",
    "Feb",
    "Mar",
    "Apr",
    "May",
    "Jun",
    "Jul",
    "Aug",
    "Sep",
    "Oct",
    "Nov",
    "Dec",
  ];
  const month = monthNames[date.getMonth()];
  const year = date.getFullYear();

  return `${day < 10 ? "0" + day : day} ${month} ${year}`;
}

// Normalizes a Lebanese phone number to E.164 (+961...).
export function normalizePhone(raw: string): string {
  const cleaned = raw.replace(/[^\d+]/g, "");

  if (cleaned.startsWith("+")) return cleaned;

  return `+961${cleaned.replace(/^0+/, "")}`;
}
