Configuration
Variables d'environnement de @lrvo/module-booking, permissions, fuseau horaire et ce qui se règle plutôt dans l'admin.
Toutes les variables du module portent le préfixe LRVO_MODULE_BOOKING. Elles se lisent une fois par processus et sont gelées : modifier le .env demande un redémarrage.
Ce qui n'est pas ici
Les types de rendez-vous, les intervenants, les horaires et les liens de réservation sont des données, pas de la configuration. Ils se créent dans la page Options de l'admin, sous la permission booking.options, et changent sans redéploiement. Voir Administration.
L'environnement ne porte que ce qui vaut pour tout le site : l'ouverture de la prise en ligne, la forme d'un nouveau type de rendez-vous, les fenêtres de réservation et d'annulation, les rappels et la marque de la page publique.
Activation
| Variable | Défaut | Rôle |
|---|---|---|
LRVO_MODULE_BOOKING | - | Active le module. Requise. |
LRVO_MODULE_BOOKING_CRON | true | Enregistre les deux tâches planifiées. |
LRVO_MODULE_BOOKING_ONLINE | false | Ouvre la prise de rendez-vous en ligne. |
Fermée, la prise en ligne ne masque pas une interface : les routes de réservation répondent 404 et la page d'un lien aussi. Un lien de réservation diffusé cesse de fonctionner à la seconde où la variable passe à false.
Cette variable ne gouverne que la réservation. La page /lrvo/booking/rendez-vous/<jeton>, par laquelle un client consulte, déplace ou annule le rendez-vous qu'il a déjà, reste servie dans tous les cas. Ce qu'il peut y faire dépend de LRVO_MODULE_BOOKING_ALLOW_CANCEL et LRVO_MODULE_BOOKING_ALLOW_RESCHEDULE, décrites plus bas. Les deux à false laissent une page de consultation.
Forme d'un nouveau type de rendez-vous
Ces quatre valeurs ne sont que des défauts de formulaire. Chacune reste modifiable type par type.
| Variable | Défaut | Bornes |
|---|---|---|
LRVO_MODULE_BOOKING_SLOT_STEP_MINUTES | 15 | 5 à 240 |
LRVO_MODULE_BOOKING_DEFAULT_DURATION_MINUTES | 60 | 5 à 1440 |
LRVO_MODULE_BOOKING_BUFFER_BEFORE_MINUTES | 0 | 0 à 720 |
LRVO_MODULE_BOOKING_BUFFER_AFTER_MINUTES | 0 | 0 à 720 |
Le pas de la grille est ancré sur le début de la plage d'ouverture, pas sur minuit : une ouverture à 9 h 05 avec un pas de 15 minutes donne 9 h 05, 9 h 20, 9 h 35.
Fenêtre de réservation
| Variable | Défaut | Rôle |
|---|---|---|
LRVO_MODULE_BOOKING_MIN_NOTICE_MINUTES | 120 | Délai minimum entre maintenant et le créneau, en ligne seulement. |
LRVO_MODULE_BOOKING_MAX_ADVANCE_DAYS | 60 | Horizon de réservation en ligne. |
LRVO_MODULE_BOOKING_REQUIRE_APPROVAL | false | Met les réservations en ligne en attente d'approbation. |
LRVO_MODULE_BOOKING_PENDING_EXPIRY_HOURS | 72 | Annule une demande jamais approuvée. 0 désactive. |
Un type de rendez-vous peut surcharger le délai, l'horizon et la confirmation. Le champ vide de l'admin veut dire « suivre l'environnement », ce qui n'est pas la même chose que zéro.
L'administration n'est pas soumise à ces fenêtres. Elle prend un rendez-vous pour quelqu'un qui est déjà au téléphone : le délai minimum et l'horizon sont la contrainte du visiteur, pas la sienne.
Ce que le client peut encore faire
| Variable | Défaut | Rôle |
|---|---|---|
LRVO_MODULE_BOOKING_ALLOW_CANCEL | true | Annulation par le lien du courriel. |
LRVO_MODULE_BOOKING_ALLOW_RESCHEDULE | true | Déplacement par le lien du courriel. |
LRVO_MODULE_BOOKING_CANCEL_NOTICE_MINUTES | 1440 | Délai avant le rendez-vous, en deçà duquel les deux ferment. |
LRVO_MODULE_BOOKING_MAX_RESCHEDULES | 2 | Déplacements par rendez-vous. 0 interdit. |
LRVO_MODULE_BOOKING_MAX_PER_EMAIL_PER_DAY | 3 | Réservations en ligne par adresse et par jour. 0 lève la limite. |
Le plafond par adresse est compté en base, dans la transaction de réservation. Le rate limit du routeur du core est par IP et en mémoire du processus : il ne survit pas à un redémarrage et ne voit pas les autres instances. Les deux se complètent, aucun ne remplace l'autre.
Courriels
| Variable | Défaut | Rôle |
|---|---|---|
LRVO_MODULE_BOOKING_REMINDER_HOURS | 24 | Heures avant le rendez-vous, séparées par des virgules : 48,24,2. Vide désactive. |
LRVO_MODULE_BOOKING_ICS | true | Joint le fichier calendrier aux courriels du client. |
LRVO_MODULE_BOOKING_NOTIFY_STAFF | true | Prévient aussi l'intervenant, s'il a un courriel. |
LRVO_MODULE_BOOKING_ADMIN_EMAIL | - | Adresse recevant les avis de l'administration. |
LRVO_MODULE_BOOKING_CONTACT_EMAIL | l'adresse ci-dessus | Adresse de réponse des courriels du client. |
Voir Courriels.
Marque de la page publique
| Variable | Défaut | Rôle |
|---|---|---|
LRVO_MODULE_BOOKING_BRAND_NAME | LRVO_NAME | Nom affiché dans le pied de la page publique. |
LRVO_MODULE_BOOKING_LOGO_URL | LRVO_LOGO_URL | URL absolue ou chemin servi depuis public/. |
LRVO_MODULE_BOOKING_LOGO_URL_DARK | le logo principal | Variante pour le thème sombre. |
LRVO_MODULE_BOOKING_SITE_URL | LRVO_SITE_URL | Cible du logo et du pied de page. |
LRVO_MODULE_BOOKING_COMPANY_ADDRESS | - | Adresse civique affichée. |
LRVO_MODULE_BOOKING_COMPANY_PHONE | - | Téléphone affiché. |
Les variables du module ne servent qu'aux sites qui prennent rendez-vous sous une autre enseigne que celle de l'application : sans elles, la marque du site sert, déclarée une fois dans le core. Voir Variables d'environnement.
Aucune de ces variables n'est préfixée NEXT_PUBLIC : elles descendent en props depuis le composant serveur. Les préfixer publierait la configuration à tout visiteur.
Fuseau horaire
Le module lit LRVO_TIMEZONE du core, America/Toronto par défaut, et ne redéclare rien. Toutes les heures saisies dans l'admin et affichées au client sont dans ce fuseau, nommé sous la grille de la page publique.
Les instants sont stockés en TIMESTAMPTZ, donc justes quel que soit le fuseau. En revanche la colonne local_date de chaque rendez-vous est calculée à l'écriture : changer LRVO_TIMEZONE sur un site en production la rend fausse pour les rendez-vous déjà pris et demande une migration de recalcul.
Permissions
| Clé | Couvre |
|---|---|
booking.view | Agenda, calendrier, panneau du tableau de bord, et les types, intervenants et horaires que ces écrans affichent. |
booking.manage | Créer, approuver, déplacer, annuler un rendez-vous, le marquer terminé ou absent, le supprimer. |
booking.options | La page Options entière : types, intervenants, horaires, exceptions et liens. Aussi le lancement manuel d'une tâche planifiée. |
Les trois sont attribuées au rôle admin par lrvo-db init, et ajoutées au catalogue par lrvo-db migrate sur une base existante.
booking.manage et booking.options s'appuient toutes deux sur booking.view : les écrans qu'elles ouvrent lisent par les routes de consultation. Un rôle qui porte l'une sans booking.view verrait des listes vides.
booking.options a été séparée de booking.manage, qui ouvrait auparavant la page Options. Sur une base existante, lrvo-db migrate l'attribue une fois à chaque rôle qui détient booking.manage : personne ne perd ses réglages à la mise à jour. Pour qu'un rôle prenne des rendez-vous sans accéder aux options, lui retirer booking.options dans /admin/roles.