Jun 29 - Update: Fail2ban, welcome email, dunning sequence, escalation
This commit is contained in:
@@ -113,6 +113,11 @@ class Tenant(ControlBase):
|
||||
current_period_end = Column(DateTime, nullable=True)
|
||||
billing_email = Column(String(255), nullable=True)
|
||||
|
||||
# ── Dunning (payment failure reminders) ────────────────────────────────
|
||||
past_due_since = Column(DateTime, nullable=True) # set when payment first fails
|
||||
dunning_stage = Column(Integer, nullable=False, default=0) # 0=none 1=day3 2=day7 3=day14
|
||||
dunning_sent_at = Column(DateTime, nullable=True) # last dunning email timestamp
|
||||
|
||||
plan = relationship('Plan', back_populates='tenants')
|
||||
domains = relationship('TenantDomain', back_populates='tenant',
|
||||
cascade='all, delete-orphan')
|
||||
|
||||
Reference in New Issue
Block a user