Sage100-vps/database/models/signature.py
2025-12-30 18:35:47 +03:00

44 lines
1.3 KiB
Python

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"<SignatureLog {self.id} doc={self.document_id} status={self.statut.value}>"