Solución
solution.tsTypeScript
export function getProductFinalPrice(p: number, c: string, s: number): number {
const stock = s;
const price = p;
const category = c;
const TAX = 1.21;
// Verificar si el stock es válido
if (stock <= 0) return -1;
// Verificar si el precio es válido
if (price <= 0) return -1;
const discount = getCategoryDiscount(price, category);
// Calcular el precio con descuento aplicado
let discounted = price - discount;
// Aplicar el impuesto sobre el precio con descuento
let result = discounted * TAX;
// Redondear a dos decimales
return Math.round(result * 100) / 100;
}
function getCategoryDiscount(price: number, category: string):number {
let discount = 0;
const ELECTRONICS_DISCOUNT = 0.15;
const CLOTHING_DISCOUNT = 0.20;
const FOOD_DISCOUNT = 0.05;
// Aplicar descuento según la categoría del producto
if (category === "electronics") {
discount = price * ELECTRONICS_DISCOUNT;
} else if (category === "clothing") {
discount = price * CLOTHING_DISCOUNT;
} else if (category === "food") {
discount = price * FOOD_DISCOUNT;
}
return discount;
}0respuestas