from sqlalchemy import Column, Integer, String, DateTime, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.sql import func from app.domain.models.base import BaseModel from app.settings import settings class Mailing(BaseModel): __tablename__ = 'mailing' __table_args__ = {"schema": settings.SCHEMA} text = Column(String, nullable=False) title = Column(String, nullable=False) datetime = Column(DateTime, nullable=False, default=func.utcnow) user_id = Column(Integer, ForeignKey(f'{settings.SCHEMA}.users.id', ondelete='SET NULL'), nullable=True) user = relationship('User', back_populates='mailing') recipients = relationship('Recipient', back_populates='mailing', cascade="all, delete") mailing_options = relationship('MailingOption', back_populates='mailing', cascade="all, delete")