L'objectif de cet article est de décrire le processus de mise en place d'un système de réservation de base pour les casiers de stockage à l'aide de Hapio. Tout d'abord, présentons un ensemble d'exigences.
Les exigences
- Les casiers de stockage sont liés à un emplacement physique spécifique, et plusieurs emplacements physiques devraient être pris en charge.
- Les casiers de stockage peuvent être réservés jour par jour et sont accessibles pendant les heures d'ouverture. Tous les casiers doivent avoir leur propre horaire pour tenir compte du fait que certains casiers sont inaccessibles à certaines dates.
- Les horaires diffèrent entre l'hiver et l'été (les samedis sont fermés en été et les dimanches en hiver).
- Il existe deux types de casiers de rangement : l'un de base et l'autre premium, qui offre un plus grand espace de rangement.
- Le prix d'une réservation est déterminé par le nombre de jours d'occupation et le prix par jour diffère selon qu'il s'agit d'un casier de base ou d'un casier premium.
- Une réservation ne doit être valable que pour un casier spécifique dans un lieu spécifique.
- Une réservation doit pouvoir être annulée.
- Les informations relatives au client doivent être stockées pour chaque réservation.
Entités d'Hapio
Compte tenu des exigences ci-dessus, présentons les entités Hapio que nous pouvons utiliser pour mettre cela en œuvre.
Localisation des sites
L'entité emplacement de Hapio est utilisée pour représenter les différents emplacements physiques. Dans le cas des casiers de stockage, la stratégie de sélection des ressources est définie comme aléatoire car il n'est pas très important de savoir à quel client est attribué un casier spécifique.
Services
Dans ce cas, les services sont utilisés pour différencier les casiers de base et les casiers premium. En utilisant les propriétés de type, de prix et de temps, il devient trivial de mettre en place des services supplémentaires à l'avenir pour différents types de casiers, tels que ceux qui sont réservés pour une durée fixe au lieu d'une durée quotidienne.
Ressources
Chaque casier de stockage est représenté comme une ressource et n'est, dans sa forme la plus basique, qu'un nom de casier pour lequel le nombre de réservations simultanées est fixé à un.
L'association des casiers aux services garantit qu'il est simple de faire la différence entre les casiers premium et les casiers de base. Cela banalise également les changements nécessaires au cas où tous les casiers de base seraient remplacés par des casiers premium.
Calendrier récurrent
Les horaires des casiers de stockage sont créés à l'aide d'un horaire récurrent pour chaque casier. Comme les heures d'ouverture sont différentes entre l'été et l'hiver, deux horaires doivent être créés pour chaque ressource. L'horaire d'été commence au début du mois de mai et se termine à la fin du mois d'août, tandis que l'horaire d'hiver commence au début du mois de septembre et se termine à la fin du mois d'avril.
Bloc de programmation récurrente
Pour chaque horaire, des blocs d'horaires récurrents sont utilisés pour définir les différentes heures d'ouverture pour chaque jour de la semaine. Les heures d'ouverture déterminent le moment où les réservations peuvent être créées pour la ressource. Pour l'horaire d'été, il s'agit de tous les jours pleins en dehors du samedi, tandis que pour l'horaire d'hiver, il s'agit de tous les jours pleins en dehors du dimanche.
Réservations
Une réservation est une association entre une ressource et un service pour un lieu spécifique dans une période disponible de son calendrier.
La prise en charge intégrée du stockage de tout JSON valide à l'aide des métadonnées simplifie le mappage entre différents systèmes afin d'obtenir toutes les informations nécessaires sur une réservation, ainsi que la prise en charge innée des annulations et des réservations temporaires, ce qui rend l'entité de réservation extrêmement flexible. En outre, l'utilisation de webhooks pour les événements de réservation permet des intégrations hautement personnalisables et transparentes avec d'autres systèmes.
Utiliser Hapio
Une fois les entités nécessaires mises en place, il est temps de voir comment tirer parti de toute la puissance d'Hapio pour lancer le processus de réservation.
L'une des opérations les plus courantes consiste à trouver les plages horaires réservables pour un service donné dans un lieu spécifique. Hapio banalise l'opération en exposant un point d'accès unique pour récupérer tous les créneaux horaires réservables pour un service donné dans un lieu spécifié, avec l'option de ne renvoyer que les créneaux horaires d'une ressource spécifiée. Dans le cas du système de casiers, le casier attribué à un client est de moindre importance, il n'est donc pas nécessaire de spécifier une ressource lors de la recherche de créneaux horaires réservables.
La liste des créneaux horaires réservables présentée ci-dessus comprend toutes les plages horaires disponibles pour le service en question. Chaque créneau contient ses heures de début et de fin ainsi qu'une liste des ressources disponibles pour la durée allouée. En utilisant le créneau, il est alors facile de créer une réservation pour le service avec les heures de début et de fin et, si nécessaire, de spécifier une ressource pour couvrir le créneau. Si aucune ressource n'est spécifiée pour la réservation, Hapio attribue automatiquement une ressource en se basant sur la stratégie de sélection des ressources du lieu.
La prise en charge de la propriété de métadonnées sur certaines des entités rend trivial le mappage des entités Hapio à d'autres entités commerciales et offre l'avantage supplémentaire de disposer d'un contrôle total lors de la réalisation d'intégrations personnalisées et transparentes avec d'autres systèmes.
L'approche API-first de Hapio permet une flexibilité maximale puisqu'elle peut aussi bien être utilisée par des applications mobiles que par des applications web. De plus, Hapio présente l'avantage supplémentaire de ne pas obliger l'utilisateur à passer d'un système à l'autre dans son travail quotidien, puisque Hapio s'intègre facilement dans son propre tableau de bord administratif.
Avantages de l'utilisation de Hapio
Les exigences ont été facilement résolues en utilisant les entités intégrées de Hapio. En confiant le processus de réservation à Hapio, vous n'avez pas besoin de consacrer d'innombrables heures au développement d'un système de réservation à part entière et votre développement peut se concentrer sur d'autres valeurs commerciales et sur l'amélioration de l'expérience client.
La prise en charge des webhooks par Hapio permet de répondre sans effort aux changements au sein du système, ce qui permet de créer un système de réservation hautement personnalisable s'intégrant avec les systèmes préférés de l'utilisateur.
Vous souhaitez intégrer Hapio dans votre système ? Commencez dès maintenant!