Solución

@aventuradev·25/5/2026TypeScript
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
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.