Solución

@arkzado
·hace 10hTypeScript
solution.tsTypeScript
interface OrderItem {
  price: number;
  quantity: number;
}

let descuentoPorMembresia: Record<string, number> = {
  "gold": 20,
  "silver": 10
} 

export function calculateOrderDiscount(itemsPedido: OrderItem[], tipoMembresia: string): number {
  // Sumar el total de todos los items del pedido
  let total = itemsPedido.reduce((count, current) => count + (current.price * current.quantity), 0);

  // Verificar si el pedido cumple el mínimo requerido
  const CANTIDAD_MINIMA = 10;

  if (total < CANTIDAD_MINIMA) return -1;

  // Aplicar descuento según el tipo de membresía y el monto total
  let descuento = calcularDescuento(total, tipoMembresia);

  return total - descuento;
}

function calcularDescuento(total: number, membresia: string): number {
  descuentoPorMembresia[membresia] ??= 0;

  let porcentajeMembresia = descuentoPorMembresia[membresia];
  
  let porcentajeDescuento = (total < 100) && (porcentajeMembresia !== 0) 
  ? porcentajeMembresia - (porcentajeMembresia / 2) 
  : porcentajeMembresia;

  return total * (porcentajeDescuento / 100);
}
0respuestas
Respuestas
0

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.
Markdown