// Manejo de moneda para Venezuela: precios en USD con conversion a Bs segun tasa.
// La tasa vive a nivel de restaurante (cada negocio fija la suya, tipo BCV o paralelo).

export function bsDesdeUsd(usd: number, tasa: number): number {
  return Math.round(usd * tasa * 100) / 100;
}

export function formatUsd(usd: number): string {
  return new Intl.NumberFormat('es-VE', {
    style: 'currency',
    currency: 'USD',
    minimumFractionDigits: 2,
  }).format(usd);
}

export function formatBs(bs: number): string {
  return (
    'Bs ' +
    new Intl.NumberFormat('es-VE', {
      minimumFractionDigits: 2,
      maximumFractionDigits: 2,
    }).format(bs)
  );
}

// Muestra el precio en USD y su equivalente en Bs (si hay tasa).
export function precioDual(usd: number, tasa: number | null | undefined): string {
  if (!tasa || tasa <= 0) return formatUsd(usd);
  return `${formatUsd(usd)} · ${formatBs(bsDesdeUsd(usd, tasa))}`;
}

export function sumarCarrito(items: { precio_usd: number; cantidad: number }[]): number {
  const total = items.reduce((acc, i) => acc + i.precio_usd * i.cantidad, 0);
  return Math.round(total * 100) / 100;
}
