feat(invitations): Do not send periodic invites in some cases #2493
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
closes #2444
Contexte
On a remarqué qu'il y avait certaines invitations périodiques qui sont lancée alors que l'usager a reçu une invitation pas longtemps avant.
C'est parce que quand la périodicité est choisie sur un jour dans le mois (
day_of_the_month_periodic_invites
), on ne vérifiait pas que l'usager n'avait pas reçu d'invitations pas longtemps auparavant.Il y avait aussi rien d'explicite dans le code qui s'assurait qu'on envoyait pas des reminder sur des invitations périodiques.
Dans les faits c'est rare parce qu'on envoie pas de reminder sur les invitations qui n'expirent jamais (ce qui devrait être le cas pour toutes les invitations périodiques), mais ce n'est pas le cas tout le temps (+ de détails à ce sujet dans lla dernière partie de la description).
Solutions
Remarque sur des configurations dans un état invalides
J'ai listé ici des configurations qui ont l'invitation périodique activée alors que les invitations ont une expiration. Elles sont donc dans un état invalide.
Il faudra changer ces configurations et probablement enlever les expirations sur les invitations périodiques envoyées.
En faisant ça on pourra filtrer sur les invitations qui n'expirent jamais dans le
SendPeriodicInvitesJob
pour itérer sur un set moins grand.