Bounce management

This commit is contained in:
James Pattinson
2025-11-10 16:57:29 +00:00
parent 7fd237c28b
commit 051bd05149
15 changed files with 1198 additions and 9 deletions

View File

@@ -288,3 +288,24 @@ class EmailTemplate(Base):
is_active = Column(Boolean, default=True, nullable=False)
created_at = Column(DateTime, default=datetime.utcnow, nullable=False)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False)
class BounceType(str, enum.Enum):
HARD = "hard"
SOFT = "soft"
COMPLAINT = "complaint"
UNSUBSCRIBE = "unsubscribe"
class EmailBounce(Base):
__tablename__ = "email_bounces"
id = Column(Integer, primary_key=True, index=True)
email = Column(String(255), nullable=False, index=True)
bounce_type = Column(SQLEnum(BounceType), nullable=False)
bounce_reason = Column(String(500), nullable=True)
smtp2go_message_id = Column(String(255), nullable=True, index=True)
bounce_date = Column(DateTime, nullable=False)
is_active = Column(Boolean, default=True, nullable=False)
created_at = Column(DateTime, default=datetime.utcnow, nullable=False)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False)