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 {
// Verificar que los días sean válidos
const DAYS = d;
const AUTO_TYPE = t;
const INSURANCE = ins;
if (DAYS <= 0) {
return -1;
}
let TASA = 0;
// Determinar la tarifa base según el tipo de auto
if (AUTO_TYPE === 'economy') {
TASA = 35;
} else if (AUTO_TYPE === 'standard') {
TASA = 55;
} else if (AUTO_TYPE === 'premium') {
TASA = 90;
} else {
return -1;
}
let SUB_TOTAL = TASA * DAYS;
// Aplicar descuento según los días rentados
SUB_TOTAL = getDiscount(SUB_TOTAL, DAYS);
// Agregar costo del seguro si aplica
if (INSURANCE) {
SUB_TOTAL = SUB_TOTAL + 15 * DAYS;
}
return SUB_TOTAL;
}
function getDiscount(subtotal: number, days: number){
let newSubTotal = subtotal;
if ( days >= 14) {
newSubTotal = newSubTotal * (1 - 0.2);
} else if (days >= 7) {
newSubTotal = newSubTotal * (1 - 0.1);
}
return newSubTotal;
}0respuestas