Sage100-vps/database/models/email.py
2026-01-08 16:58:43 +03:00

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}>"