Aller au contenu

Rappels

phil/reservation
$schedule = new ReminderSchedule(1440, 60);   // a day before, then an hour before
$schedule->moments($booking->interval);        // the two moments, the earliest first
$schedule->due($booking->interval, $now, $lastSent);

Les décalages sont des minutes avant le début, de 1 à un an, au plus 20 ; chacun n'est gardé qu'une fois, le plus éloigné en premier. Un décalage hors des bornes, ou plus de 20 décalages, lève InvalidDefinition.

due() donne le décalage du rappel à envoyer maintenant, ou null : celui qui est le plus proche du début et dont le moment est venu, après le dernier envoyé, tant que la réservation n'a pas commencé. Un rappel dont le moment est passé sans envoi est dépassé : une réservation faite une heure avant son début ne reçoit que le rappel de l'heure, et une tâche en retard envoie un seul rappel, pas plusieurs. L'application garde le dernier décalage qu'elle a envoyé et le repasse ; la bibliothèque ne garde rien.