Solución
solution.tsTypeScript
// TODO: refactoriza este código — extrae constantes, mejora nombres y crea funciones auxiliares
export function calculateCarRentalCost(d: number, t: string, ins: boolean): number {
const VEHICLE_TYPE = t;
const RENTAL_DAYS = d
const INSURANCE = ins
let RATE = getTaxRate(VEHICLE_TYPE);
if (RENTAL_DAYS <= 0) return -1;
if (RATE === -1) return -1;
let subTotal = RATE * RENTAL_DAYS;
// Aplicar descuento según los días rentados
if (RENTAL_DAYS >= 14) {
subTotal = subTotal * (1 - 0.2);
} else if (RENTAL_DAYS >= 7) {
subTotal = subTotal * (1 - 0.1);
}
// Agregar costo del seguro si aplica
if (INSURANCE) {
subTotal = subTotal + 15 * RENTAL_DAYS;
}
return subTotal;
}
function getTaxRate(vehicleType:string) {
const ECONOMY_PRICE = 35
const STANDARD_PRICE = 55
const PREMIUM_PRICE = 90
if (vehicleType === 'economy') {
return ECONOMY_PRICE;
} else if (vehicleType === 'standard') {
return STANDARD_PRICE;
} else if (vehicleType === 'premium') {
return PREMIUM_PRICE;
} else {
return -1;
}
}0respuestas