from sqlalchemy import ( Column, Integer, String, DateTime, Text, Boolean, Enum as SQLEnum, ) from datetime import datetime from database.models.generic_model import Base from database.enum.status import StatutSignature class SignatureLog(Base): __tablename__ = "signature_logs" id = Column(String(36), primary_key=True) document_id = Column(String(100), nullable=False, index=True) type_document = Column(Integer, nullable=False) transaction_id = Column(String(100), unique=True, index=True, nullable=True) signer_url = Column(String(500), nullable=True) email_signataire = Column(String(255), nullable=False, index=True) nom_signataire = Column(String(255), nullable=False) statut = Column( SQLEnum(StatutSignature), default=StatutSignature.EN_ATTENTE, index=True ) date_envoi = Column(DateTime, default=datetime.now) date_signature = Column(DateTime, nullable=True) date_refus = Column(DateTime, nullable=True) est_relance = Column(Boolean, default=False) nb_relances = Column(Integer, default=0) derniere_relance = Column(DateTime, nullable=True) raison_refus = Column(Text, nullable=True) ip_signature = Column(String(45), nullable=True) def __repr__(self): return f""