Reservas
Ruta del backoffice: backoffice/bookings
Disponible para roles: Administrador del Sistema, Administrador
Descripción General
La página de Reservas lista todas las reservas de vuelo activas en toda la aerolínea. Los pilotos crean reservas seleccionando vuelos de los horarios publicados, reservando una aeronave y ruta específica por un período de tiempo definido. Los administradores usan esta página para monitorear la actividad de reservas, identificar cuellos de botella y comprender la utilización de la flota en tiempo real.
Cómo Funcionan las Reservas
Cuando un piloto reserva un vuelo del horario, el sistema:
- Valida las restricciones -- verifica que el piloto cumple con todos los requisitos (rango, licencia y cualquier otra restricción configurada) antes de permitir la reserva.
- Deduce el costo en Puntos (si está configurado) -- las reservas pueden opcionalmente costar Puntos, cobrados como una cantidad fija o una tarifa por milla. Esto se configura a nivel de horario o aerolínea.
- Asigna posiciones de salida y llegada -- si los aeropuertos de salida y llegada tienen posiciones configuradas, el sistema asigna automáticamente posiciones de estacionamiento según las restricciones de flota, subflota y aerolínea. La posición de salida es la posición actual de la aeronave; la posición de llegada se selecciona usando un algoritmo escalonado que prefiere posiciones vacías. Para reservas con múltiples tramos, la posición de salida de cada tramo se encadena desde la posición de llegada del tramo anterior.
- Genera elementos MEL -- al crear la reserva, el sistema realiza una tirada de probabilidad para auto-generar elementos de Lista de Equipo Mínimo (MEL) para la aeronave asignada, simulando escenarios de mantenimiento del mundo real.
- Inicia el temporizador de expiración -- la reserva se activa y expirará si no se vuela dentro de la ventana configurada.
Expiración de Reservas
Las reservas expiran automáticamente después de un período configurable, controlado por la configuración BOOKING_EXPIRATION_HOURS (predeterminado: 48 horas). Un trabajo de purga horario se ejecuta en segundo plano para limpiar las reservas expiradas. Cuando una reserva expira:
- El registro de reserva se elimina.
- El piloto recibe una notificación informándole de la expiración.
- La aeronave queda disponible para que otros pilotos la reserven.
Cancelación
Los pilotos pueden cancelar todas sus reservas activas a la vez usando el botón Cancelar Todas las Reservas en la página de reservas. La cancelación incurre en una única penalización de Puntos fija (independientemente del número de reservas) deducida del saldo del piloto. No es posible cancelar reservas individualmente — el piloto cancela toda la cadena de reservas o la mantiene completa. Esto desalienta ciclos de reserva y cancelación frívolos.
Unicidad de Reservas
El sistema admite restricciones de unicidad configurables para prevenir conflictos de recursos:
- Horario único -- un piloto no puede reservar el mismo horario más de una vez simultáneamente.
- Aeronave única -- solo una reserva activa puede existir para una aeronave dada en cualquier momento.
Estas configuraciones pueden combinarse o usarse individualmente dependiendo de sus preferencias operativas.
Restricciones
Todas las restricciones configuradas se aplican en el momento de la reserva. Si un horario, flota o aeronave tiene restricciones vinculadas a una licencia o rango específico, el piloto debe poseer la calificación requerida antes de que el sistema permita la reserva. Los pilotos que no cumplan los criterios serán bloqueados con un mensaje de error apropiado.
Tabla de Reservas
La lista de reservas muestra las siguientes columnas:
| Columna | Descripción |
|---|---|
| Número de Vuelo | El número de vuelo del horario para la ruta reservada. |
| Piloto | El piloto que creó la reserva. |
| Aeronave | La matrícula de la aeronave asignada. |
| Salida | Código ICAO del aeropuerto de salida. |
| Llegada | Código ICAO del aeropuerto de llegada. |
| Estado | Estado actual de la reserva (activa, expirada, etc.). |
| Fecha de Creación | Marca de tiempo de cuándo se creó la reserva. |
La tabla es buscable y ordenable, permitiendo a los administradores localizar rápidamente reservas específicas por nombre del piloto, número de vuelo o aeropuerto.
Horarios Dirigidos
Los pilotos pueden generar rutas aleatorias personalizadas desde su aeropuerto actual usando el panel de Horarios Dirigidos. Esto reemplaza los métodos anteriores de reserva separados ("Aleatorio", "Por Flota" y "Por Aeronave") con una interfaz única y unificada.
Filtros Disponibles
Todos los filtros son opcionales. Cada filtro activo se suma al costo en Puntos:
| Filtro | Descripción |
|---|---|
| Subflota | Restringe la generación de rutas a aeronaves de una subflota específica. |
| Aeronave | Restringe a una aeronave específica (anula el costo de subflota). |
| Destino Final | Fuerza al último tramo a llegar a un aeropuerto elegido. |
| Distancia Mínima por Tramo | Excluye horarios más cortos que la distancia especificada (en millas náuticas). |
| Distancia Máxima por Tramo | Excluye horarios más largos que la distancia especificada (en millas náuticas). |
| Solo Tramos Nuevos | Solo incluye rutas que el piloto nunca ha volado antes. |
| Cantidad de Tramos | Número de tramos a generar (1 a 5). |
Los filtros de distancia mínima y máxima se suman independientemente al costo en Puntos. Si ambos están activos, el costo de distancia se cobra dos veces.
El costo acumulado en Puntos se muestra en tiempo real mientras se activan y desactivan los filtros.
Vista Previa de Ruta
Después de configurar los filtros, los pilotos hacen clic en Generar para producir una vista previa de la ruta. Los Puntos se deducen al momento de la generación (no al aceptar). La vista previa muestra cada tramo (salida, llegada, número de vuelo, distancia) y el costo total.
Si la cantidad solicitada de tramos no se puede generar, el sistema automáticamente intenta con menos tramos (hasta 1). Cuando se encuentra una cantidad menor, el selector de tramos se actualiza y el piloto es notificado — no se deducen Puntos. El piloto puede entonces hacer clic en Generar nuevamente con la cantidad reducida.
Desde la vista previa, los pilotos pueden:
| Acción | Comportamiento |
|---|---|
| Aceptar y Reservar | Confirma la ruta y crea las reservas (sin cargo adicional de Puntos — ya se pagó al generar). |
| Regenerar | Descarta la ruta actual y genera una nueva con los mismos filtros. Cuando DIRECTED_REROLL_COSTS_POINTS está habilitado (predeterminado), cada regeneración deduce el mismo costo en Puntos que la generación inicial. |
| Cancelar | Cierra el panel sin crear reservas. |
Variedad de Rutas (Sesgo de Historial de Vuelo)
El algoritmo rastrea cuántas veces cada piloto ha volado cada par de aeropuertos. Las rutas que el piloto ya ha volado reciben una penalización de peso mayor, haciéndolas menos probables de ser seleccionadas. Las rutas no voladas son naturalmente favorecidas, animando a los pilotos a explorar nuevos destinos en toda la red.
Cuando el filtro Solo Tramos Nuevos está activo, las rutas previamente voladas se excluyen por completo en lugar de solo penalizarse.
Detección de Secuencias Multi-Tramo
Si una secuencia multi-tramo comienza en el aeropuerto actual del piloto y cabe dentro del número solicitado de tramos, toda la secuencia se reserva como grupo. La detección de secuencias se omite cuando los filtros dirigidos están activos, ya que las restricciones pueden entrar en conflicto con la ruta de la secuencia.
Referencia de Configuración
| Configuración | Descripción | Predeterminado |
|---|---|---|
BOOKING_EXPIRATION_HOURS | Horas antes de que una reserva no utilizada expire y sea purgada. | 48 |
DIRECTED_DESTINATION_FILTER_COST | Costo en Puntos agregado cuando el piloto especifica un destino final en Horarios Dirigidos. | 25 |
DIRECTED_DISTANCE_FILTER_COST | Costo en Puntos agregado por cada filtro de distancia (mínima o máxima) que el piloto especifique. Se cobra independientemente por filtro. | 15 |
DIRECTED_UNFLOWN_FILTER_COST | Costo en Puntos agregado cuando el piloto activa el filtro "Solo Tramos Nuevos". | 10 |
DIRECTED_REROLL_COSTS_POINTS | Cuando está habilitado, cada regeneración de un horario dirigido deduce el mismo costo en Puntos que la generación inicial. | On |
| Modo de costo de Puntos | Si los costos de reserva son fijos o calculados por milla. | Configurado por horario |
| Reglas de unicidad | Si las reservas imponen horario único, aeronave única o ambos. | Configuración a nivel de aerolínea |
| Penalización por cancelación | Puntos deducidos cuando un piloto cancela una reserva. | Configuración a nivel de aerolínea |