43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
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"<EmailLog {self.id} to={self.destinataire} status={self.statut.value}>"
|