from sqlalchemy import ( Column, Integer, String, DateTime, Text, Enum as SQLEnum, ) from datetime import datetime from database.models.generic_model import Base from database.Enum.status import StatutEmail class EmailLog(Base): __tablename__ = "email_logs" id = Column(String(36), primary_key=True) destinataire = Column(String(255), nullable=False, index=True) cc = Column(Text, nullable=True) cci = Column(Text, nullable=True) sujet = Column(String(500), nullable=False) corps_html = Column(Text, nullable=False) document_ids = Column(Text, nullable=True) type_document = Column(Integer, nullable=True) statut = Column(SQLEnum(StatutEmail), default=StatutEmail.EN_ATTENTE, index=True) date_creation = Column(DateTime, default=datetime.now, nullable=False) date_envoi = Column(DateTime, nullable=True) date_ouverture = Column(DateTime, nullable=True) nb_tentatives = Column(Integer, default=0) derniere_erreur = Column(Text, nullable=True) prochain_retry = Column(DateTime, nullable=True) ip_envoi = Column(String(45), nullable=True) user_agent = Column(String(500), nullable=True) def __repr__(self): return f""