Caso práctico: Reserva de taquillas

,

El objetivo de este artículo es describir el proceso de creación de un sistema básico de reservas para taquillas utilizando Hapio. En primer lugar, vamos a introducir una serie de requisitos.

Los requisitos

  • Las taquillas de almacenamiento están vinculadas a una ubicación física específica, y se deben admitir múltiples ubicaciones físicas.
  • Las taquillas pueden reservarse día a día y son accesibles durante el horario laboral. Todas las taquillas deben tener su propio horario para que no se pueda acceder a determinadas taquillas en determinadas fechas.
  • Los horarios difieren entre el invierno y el verano (los veranos tienen los sábados cerrados y los inviernos los domingos).
  • Hay dos tipos de taquillas de almacenamiento: una básica y otra premium, que tiene un espacio de almacenamiento mayor. 
  • El precio de una reserva viene determinado por el número de días que se ocupa y el precio por día difiere entre una taquilla básica y una premium.
  • Una reserva sólo debe ser válida para una taquilla concreta en un lugar determinado.
  • Una reserva debe poder cancelarse.
  • La información del cliente debe almacenarse para cada reserva.

Entidades de Hapio

Dados los requisitos anteriores, vamos a presentar las entidades Hapio que podemos utilizar para implementar esto.

Ubicaciones

La entidad de ubicación en Hapio se utiliza para representar las diferentes ubicaciones físicas. En este caso de las taquillas, la estrategia de selección de recursos se establece como aleatoria, ya que no es de suma importancia a qué cliente se le asigna una taquilla específica. 

Servicios

En este caso, los servicios se utilizan para diferenciar entre taquillas básicas y premium. Utilizando las propiedades de tipo, precio y tiempo resulta trivial configurar servicios adicionales en el futuro para diferentes tipos de taquillas, como las reservadas para un tiempo fijo en lugar de diario.

Recursos

Cada taquilla de almacenamiento se representa como un recurso y en su forma más básica es sólo un nombre de la taquilla donde la cantidad de reservas simultáneas se establece en uno.

Asociar las taquillas a los servicios garantiza que sea sencillo diferenciar entre taquillas premium y básicas. También trivializa los cambios necesarios en caso de que todas las taquillas básicas sean sustituidas por taquillas premium.

Programación periódica

Los horarios de las taquillas se crean utilizando un horario recurrente para cada taquilla. Dado que los horarios de apertura son diferentes en verano y en invierno, es necesario crear dos horarios para cada recurso. El horario de verano comienza a principios de mayo y termina a finales de agosto, y el horario de invierno comienza a principios de septiembre y termina a finales de abril.

Bloque de programación recurrente

Para cada horario, se utilizan bloques de horarios recurrentes para establecer las diferentes horas de apertura para cada día de la semana. Las horas de apertura determinan dónde se permite crear reservas para el recurso. Para el horario de verano, son todos los días completos excepto el sábado, el horario de invierno son todos los días completos excepto el domingo.

Reservas

Una reserva es una asociación entre un recurso y un servicio para un lugar específico dentro de un tiempo disponible en su horario.

El soporte incorporado para almacenar cualquier JSON válido utilizando los metadatos simplifica el mapeo entre diferentes sistemas con el fin de obtener toda la información necesaria de una reserva, junto con el soporte innato para la cancelación y reservas temporales haciendo que la entidad de reserva sea extremadamente flexible. Además, el uso de webhooks para los eventos de reserva permite integraciones altamente personalizables y sin fisuras con otros sistemas.

Utilización de Hapio

Con las entidades necesarias configuradas, es hora de ver cómo aprovechar toda la potencia de Hapio para empezar con el proceso de reserva.

Una de las operaciones más comunes es encontrar qué franjas horarias se pueden reservar para un servicio determinado en una ubicación específica. Hapio trivializa la operación exponiendo un único punto final para obtener todas las franjas horarias reservables para un servicio dado en una ubicación especificada, con la opción de devolver sólo las franjas horarias de un recurso especificado. En el caso del sistema de taquillas, la taquilla que se asigna a un cliente es menos importante, por lo que no es necesario especificar un recurso cuando se obtienen las franjas horarias reservables.

La lista de franjas horarias que se pueden reservar incluye todas las franjas horarias disponibles para el servicio en cuestión. Cada franja horaria contiene sus horas de inicio y fin junto con una lista de recursos disponibles para el tiempo asignado. A partir de la franja horaria se puede crear sin esfuerzo una reserva para el servicio con las horas de inicio y fin y, si es necesario, especificar un recurso para cubrir la franja horaria. Si no se especifica ningún recurso para la reserva, Hapio asigna automáticamente un recurso basándose en la estrategia de selección de recursos del lugar.

El soporte de la propiedad de metadatos en algunas de las entidades hace que sea trivial mapear las entidades Hapio a otras entidades de negocio y viene con el beneficio añadido de tener un control total al hacer integraciones personalizadas sin fisuras con otros sistemas.

El enfoque "API-first" de Hapio permite la máxima flexibilidad, ya que puede ser consumido con la misma facilidad por aplicaciones móviles que por aplicaciones web. Además, Hapio ofrece la ventaja añadida de que el usuario no tiene que alternar entre varios sistemas en su trabajo diario, ya que se integra fácilmente en su propio panel de control administrativo.

Ventajas de utilizar Hapio

Los requisitos se resolvieron fácilmente utilizando las entidades integradas de Hapio. Al externalizar el proceso de reserva a Hapio, no es necesario dedicar incontables horas a desarrollar un sistema de reservas completo y su desarrollo puede centrarse en otros valores empresariales y en perfeccionar la experiencia del cliente.

La compatibilidad de Hapio con webhooks facilita la respuesta a los cambios dentro del sistema, lo que a su vez permite un sistema de reservas altamente personalizable que se integra con los sistemas favoritos de cada uno.

¿Está interesado en integrar Hapio en su sistema? ¡ Empiece ya!

Autor

Mattias