from sqlalchemy import Column, Integer, String, Boolean, DateTime, ForeignKey, Text, Numeric from sqlalchemy.sql import func from app.db.base import Base class EmailProvider(Base): __tablename__ = 'email_providers' __table_args__ = {'schema': 'data'} id = Column(Integer, PRIMARY KEY=True) name = Column(String(50), nullable=False) priority = Column(Integer, default=1) provider_type = Column(String(10), default='SMTP') host = Column(String(255)) port = Column(Integer) username = Column(String(255)) password_hash = Column(String(255)) is_active = Column(Boolean, default=True) daily_limit = Column(Integer, default=300) current_daily_usage = Column(Integer, default=0) class EmailLog(Base): __tablename__ = 'email_logs' __table_args__ = {'schema': 'data'} id = Column(Integer, PRIMARY KEY=True) user_id = Column(Integer, ForeignKey('data.users.id'), nullable=True) email_type = Column(String(50)) recipient = Column(String(255)) provider_id = Column(Integer, ForeignKey('data.email_providers.id')) status = Column(String(20)) sent_at = Column(DateTime(timezone=True), server_default=func.now()) error_message = Column(Text)