Solución

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

export function calculateOrderDiscount(order: OrderItem[], membership: string): number {
  let TOTAL_PRICE = 0;
  let DISCOUNT = 0;
  let ORDER_ITEM = order;
  const MAX_GOLD_DISCOUNT = 0.20;
  const MAX_SILVER_DISCOUNT = 0.10;
  const MINIMUN_DISCOUNT = 0.05;
  const MAX_ORDER_AMOUNT = 100


  

  for (let item of ORDER_ITEM) {
    TOTAL_PRICE = TOTAL_PRICE + item.price * item.quantity;
  }
  
  if(checkMinimunRequired(TOTAL_PRICE)) return -1;

  
  if (membership === "gold") {
    if (TOTAL_PRICE >= MAX_ORDER_AMOUNT) {
      DISCOUNT = TOTAL_PRICE * MAX_GOLD_DISCOUNT;
    } else {
      DISCOUNT = TOTAL_PRICE * MAX_SILVER_DISCOUNT;
    }
  } else if (membership === "silver") {
    if (TOTAL_PRICE >= MAX_ORDER_AMOUNT) {
      DISCOUNT = TOTAL_PRICE * MAX_SILVER_DISCOUNT;
    } else {
      DISCOUNT = TOTAL_PRICE * MINIMUN_DISCOUNT;
    }
  }

  return TOTAL_PRICE - DISCOUNT;
}

function checkMinimunRequired(totalPrice:number):boolean {
  const MIN_ORDER_AMOUNT = 10
   return totalPrice < MIN_ORDER_AMOUNT;
}
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.