fix: defer expiry reminders for trial and bonus subscriptions
Trial and registration/referral-bonus subscriptions usually last only a few days, so the multi-day ending-soon reminders fired almost the moment they were granted and needlessly alarmed newcomers. Track this with a new subscription flag (suppress_early_expiry_notifications, migration 0035): trial activation, referral welcome bonus and inviter bonus grants set it, while a real paid purchase clears it on upsert. While set, the notification worker skips the day-before stages but still sends the hours-before reminder and the expiry/after-expiry notices, so users are warned shortly before access ends. Once they pay for a full subscription the complete reminder spectrum resumes.
This commit is contained in:
@@ -122,6 +122,12 @@ class Subscription(Base):
|
||||
last_notification_sent = Column(DateTime(timezone=True), nullable=True)
|
||||
provider = Column(String, nullable=True)
|
||||
skip_notifications = Column(Boolean, default=False)
|
||||
# Trial and registration/referral-bonus subscriptions are only a few days
|
||||
# long, so the multi-day "ending soon" reminders would fire almost as soon
|
||||
# as they are granted. While this is set the worker keeps only the
|
||||
# hours-before reminder plus the expiry/after-expiry notices; a real payment
|
||||
# clears it so the full reminder spectrum resumes.
|
||||
suppress_early_expiry_notifications = Column(Boolean, nullable=False, default=False)
|
||||
auto_renew_enabled = Column(Boolean, default=True, index=True)
|
||||
tariff_key = Column(String, nullable=True, index=True)
|
||||
tier_baseline_bytes = Column(BigInteger, nullable=True)
|
||||
|
||||
Reference in New Issue
Block a user