44 lines
1.3 KiB
Python
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}>"
|