class SuppressionEntry(Base, TimestampMixin):
    __tablename__ = "suppression_list"
    id = Column(Integer, primary_key=True)
    email = Column(String(320), unique=True, nullable=False, index=True)
    reason = Column(String(50), default="unsubscribed")  # unsubscribed|bounced|complaint|manual
    source = Column(String(200), default="")
    campaign_id = Column(Integer, ForeignKey("campaigns.id", ondelete="SET NULL"))
    user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"))


class SubjectLine(Base, TimestampMixin):
===
class RecipientList(Base, TimestampMixin):
    __tablename__ = "recipient_lists"
    id = Column(Integer, primary_key=True)
    user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False, index=True)
    name = Column(String(200), nullable=False)
    description = Column(Text, default="")
    source = Column(String(30), default="manual")  # manual|csv|txt
    row_count = Column(Integer, default=0)

    recipients = relationship("Recipient", back_populates="list", cascade="all, delete-orphan")


class Recipient(Base, TimestampMixin):
