Recordatorio según el ritmo de cada cliente
Una fecha fija («a los 45 días») no sirve para todos. Cada cliente tiene su intervalo habitual entre visitas. El recordatorio sale cuando tarda una vez y media más de lo normal.
const intervalo = mediana(diasEntreVisitas(cliente)) // 21 días
const sinVenir = diasDesde(cliente.ultimaVisita) // 34 días
if (sinVenir > intervalo * 1.5 && !cliente.avisadoEsteMes) {
actualizarPase(cliente, { mensaje: 'Te faltan 2 sellos para tu cena para dos' })
}Recomendación. En Apple Wallet, cambiar un campo que tiene changeMessage muestra el aviso en la pantalla bloqueada. No hace falta un email aparte.