Rendez-vous

Agenda et calendrier dans l'admin, types de rendez-vous, intervenants, horaires, prise de rendez-vous en ligne et rappels par courriel.

@lrvo/module-booking ajoute une section Rendez-vous à l'admin et, si le projet l'ouvre, une prise de rendez-vous en ligne servie par une page publique à jeton, intégrable en iframe sur un site externe.

Les deux moitiés sont indépendantes. Un cabinet qui ne veut qu'un agenda interne active le module et laisse LRVO_MODULE_BOOKING_ONLINE à false : les liens de réservation répondent 404 et seule l'administration crée des rendez-vous.

La page de gestion d'un rendez-vous existant n'est pas concernée par cet interrupteur. Elle répond sur son jeton seul, même prise en ligne fermée : un rendez-vous créé par l'admin envoie une confirmation qui porte ce lien, et ce lien doit mener quelque part. Voir Réservation en ligne.

L'agenda de l'admin, groupé par échéance, avec la fiche du prochain rendez-vous en tête

L'agenda groupe ce qui vient par échéance, et le bandeau du haut est la fiche du prochain rendez-vous, derrière le filet de couleur de son type. Les types, les intervenants et les horaires que portent ces lignes sont des données, créées dans la page Options : ils changent sans redéploiement.

Pages de cette section

PageContenu
InstallationInstaller le module, créer les tables, poser le premier horaire.
ConfigurationVariables d'environnement, permissions, fuseau horaire.
AdministrationAgenda, calendrier, et la page Options : types, intervenants, horaires, liens.
Réservation en ligneLiens de réservation, parcours public, iframe, annulation par le client.
CourrielsConfirmation, rappel, avis internes, fichier .ics.
Modèle de donnéesLes onze tables lrvo_booking_*.
APIRoutes HTTP d'admin et publiques.

Ce que le module apporte

ÉlémentDétail
TablesOnze, toutes préfixées lrvo_booking_.
Entrées d'adminSection « Rendez-vous », icône Appointment02Icon, ordre 140, trois items.
Permissionsbooking.view, booking.manage et booking.options.
Routes API31 routes d'admin, 9 routes publiques.
Pages publiques/lrvo/booking/<slug> et /lrvo/booking/rendez-vous/<jeton>.
Panneau de tableau de bordProchains rendez-vous et demandes en attente.
Tâches planifiéesbooking-reminders toutes les heures, booking-housekeeping chaque nuit.

Les objets du module

ObjetRôle
IntervenantLa personne qui reçoit. Fiche propre au module, reliable à un compte LRVO.
Type de rendez-vousDurée, tampons, capacité, lieu, prix indicatif, questions supplémentaires, intervenants autorisés.
HoraireLes heures d'ouverture de l'organisation, qu'un intervenant peut remplacer par les siennes.
ExceptionUne fermeture ou une ouverture exceptionnelle, à une date précise.
Lien de réservationUne adresse publique et la portée de ce qu'elle offre.
Rendez-vousCe qui est réservé, et le jeton qui permet au client d'y revenir.

Dépendances fonctionnelles

Le module n'a aucune dépendance de code au-delà du core, mais trois de ses fonctions reposent sur des services que le projet doit avoir configurés :

FonctionDépend de
Toute réservation en ligneNEXT_PUBLIC_URL, sans laquelle la vérification d'origine du core rejette la requête.
Confirmations, rappels et avisLa configuration courriel du core, Resend ou SMTP.
Heure des créneauxLRVO_TIMEZONE, défaut America/Toronto.

Ce que le module ne fait pas

  • Il n'encaisse aucun paiement. Un type de rendez-vous porte un prix indicatif, affiché au client, jamais débité.
  • Il ne lit aucun agenda externe. Les disponibilités viennent des horaires saisis et des rendez-vous déjà pris. Un empêchement extérieur se pose à la main, en exception.
  • Il n'enregistre pas de bloc BlockEditor. Le site atteint la réservation par un lien, par la page publique, ou par le script d'intégration en iframe.
  • Il ne gère qu'un fuseau horaire, celui du site. Les heures sont affichées au client avec le fuseau nommé sous la grille.

Notes

  • Le fuseau vient de LRVO_TIMEZONE et rien d'autre. Changer cette variable sur un site en production laisse les instants justes mais rend fausse la colonne local_date des rendez-vous déjà pris. Voir Modèle de données.
  • Un rendez-vous annulé est le seul qui libère son créneau. Un rendez-vous terminé ou marqué absent a bel et bien occupé le temps.
  • La capacité d'un type de rendez-vous n'autorise pas N rendez-vous qui se chevauchent : elle autorise N participants dans le même créneau.

Sur cette page