Reglas de disponibilidad que resisten una semana real

«No disponible» parece un único estado, pero puede significar que el espacio está cerrado, que el recurso está bloqueado o que su capacidad ya está ocupada. Separar esos motivos permite tomar mejores decisiones y dar respuestas útiles.

Actualizado

Tres tipos de «no disponible»

Una agenda sencilla suele guardar franjas libres y ocupadas. Un espacio real necesita distinguir al menos tres capas. La disponibilidad recurrente define cuándo se puede vender normalmente un recurso: por ejemplo, de lunes a viernes de 08:00 a 20:00. Los bloqueos operativos retiran una franja concreta por mantenimiento, limpieza, un evento privado o una incidencia. Por último, las reservas activas consumen el recurso completo o parte de su capacidad.

Estas capas no son intercambiables. Abrir excepcionalmente un domingo no debería modificar para siempre el horario semanal, y cancelar una reserva no debe eliminar un bloqueo de mantenimiento. Cada una tiene propietario, motivo y ciclo de vida diferentes.

Evalúalas por separado cuando llega la solicitud

No conviene materializar meses de «huecos disponibles» en una tabla. Esos huecos quedan obsoletos en cuanto cambia un horario, aparece un bloqueo o se confirma una reserva. Boris evalúa las reglas cuando alguien solicita una franja: comprueba que el recurso esté activo, que el intervalo caiga dentro del horario, que no exista un bloqueo y que siga habiendo capacidad.

El resultado no es solo sí o no. También conserva el motivo del rechazo, porque «cerrado», «bloqueado» y «solo quedan dos puestos» requieren acciones distintas por parte del cliente.

Lista de recursos de Boris con salas, cabinas, zonas abiertas y oficinas privadas, cada una con su modalidad y capacidad
Cada recurso conserva su propia modalidad y capacidad; las reglas de disponibilidad se aplican sobre esa base.

Los bloqueos no son reservas

Crear un cliente ficticio llamado «Mantenimiento» y reservarle la sala parece cómodo, pero contamina ingresos, ocupación y comunicaciones. Además, una reserva cancelada suele liberar el espacio, mientras que una reparación debe seguir bloqueándolo hasta que alguien la cierre explícitamente.

Un bloqueo necesita motivo, inicio, fin y responsable. No necesita factura, invitación, pago ni perfil de cliente. Modelarlo por separado evita que las estadísticas mezclen demanda real con trabajo interno.

Reglas que se olvidan hasta que alguien reclama

  • Zona horaria: las reglas pertenecen a la zona del espacio, no a la del navegador del usuario.
  • Intervalos que cruzan medianoche: 22:00–02:00 no puede evaluarse como una franja del mismo día.
  • Antelación mínima: una sala puede estar libre y aun así no ser reservable cinco minutos antes.
  • Duración mínima y máxima: disponibilidad no significa que cualquier duración sea válida.
  • Capacidad: una zona compartida puede aceptar otra persona aunque ya contenga reservas.

Ordena los controles por la respuesta que producen

Comprueba primero los límites absolutos y baratos: recurso activo, horario válido y bloqueo operativo. Después calcula solapamientos y capacidad. El orden mejora el rendimiento, pero sobre todo mejora el mensaje: «el espacio está cerrado a esa hora» ayuda más que «capacidad agotada», aunque ambas condiciones fueran ciertas.