Comment desservir les cliniques, restaurants et salons avec un seul système de réservation ?
Share

In this article
Modélisez une entité de réservation générique et laissez chaque secteur l'étendre avec une charge utile typée : un dossier patient, une commande de table ou une sélection de service. Les moteurs de réservation, de notification et de facturation restent indépendants du secteur, ainsi seul le schéma d'extension change selon le secteur et la base de code ne se divise jamais.
Pourquoi ne pas créer un flux de réservation distinct pour chaque secteur ?
Les cliniques prennent des rendez-vous, les restaurants enregistrent des commandes de table et les salons vendent des créneaux de service, donc chacun semble être un produit différent. Diviser par secteur triple le code de réservation, WhatsApp et facturation, et chaque correction doit être appliquée trois fois. Les parties communes sont identiques ; seul l'objet principal diffère.
À quoi ressemble une entité de réservation générique ?
Une réservation de base avec les champs partagés (entreprise, client, créneau, statut) plus une charge utile typée par secteur : un dossier patient pour les cliniques, une commande de table et de menu pour les restaurants, une sélection de service pour les salons. Les moteurs opèrent sur la base ; le code sectoriel ne lit et n'écrit que sa charge utile.
Comment éviter la double réservation d'un créneau ?
Attribuez à chaque créneau un champ de version. Si deux clients réservent en quelques millisecondes, l'écriture qui échoue reçoit un conflit au lieu d'un écrasement silencieux et réessaie avec l'état actuel du créneau. Les écritures sur les créneaux sont courtes et rarement contestées, donc le verrouillage optimiste est préférable à un verrou maintenu pendant toute la requête.
Comment empêcher qu'une entreprise limitée ralentisse le résumé hebdomadaire de tous ?
Exécutez la synchronisation Google Business Profile et la génération de résumé comme des tâches dans une file RabbitMQ avec un consommateur par entreprise, chacun avec son propre délai de reprise. Une limite de débit sur un compte ne retarde alors que la tâche de ce compte. Les instantanés de dernière synchronisation et les compteurs de limite de débit par entreprise sont stockés dans Redis.
Publié à l'origine sur sakshamjain.codes/blog/one-booking-engine-for-clinics-restaurants-salons. Besoin de ce système ? Découvrez mes services sur NexoRush ou contactez-moi.