Solución
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