Solución

@hectoraguero·6/5/2026TypeScript
solution.tsTypeScript
interface OrderItem {
  price: number;
  quantity: number;
}


const Membership: Record<string, number> = {
  GOLD: 0.1,
  SILVER: 0.05,
};

const MIN_ORDER_QUANTITY = 10;
const LARGE_ORDER_QUANTITY = 100;


function getDiscount(membership: string, isLargeOrder: boolean): number {
  const memberDiscount = Membership[membership.toUpperCase()]
  // Aplicar descuento según el tipo de membresía y el monto total
  if (memberDiscount != undefined) {

    return isLargeOrder ? memberDiscount * 2 : memberDiscount;
  }

  return 0;
}

export function calculateOrderDiscount(items: OrderItem[], membership: string): number {
  let total = 0;

  // Sumar el total de todos los items del pedido
  for (const item of items) {
    total += item.price * item.quantity;
  }
  // Verificar si el pedido cumple el mínimo requerido
  if (total < MIN_ORDER_QUANTITY) return -1;

  const isLargeOrder = total >= LARGE_ORDER_QUANTITY;
  let discount = getDiscount(membership, isLargeOrder);

  return total - (total * discount);
}
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.