refactor(models): clean up model comments and whitespace

This commit is contained in:
Fanilo-Nantenaina 2026-01-15 14:38:26 +03:00
parent 671d5bac15
commit eedc628a5f

View file

@ -61,8 +61,7 @@ class SageDocumentType(int, Enum):
class UniversignTransaction(Base): class UniversignTransaction(Base):
__tablename__ = "universign_transactions" __tablename__ = "universign_transactions"
# === IDENTIFIANTS === id = Column(String(36), primary_key=True)
id = Column(String(36), primary_key=True) # UUID local
transaction_id = Column( transaction_id = Column(
String(255), String(255),
unique=True, unique=True,
@ -71,7 +70,6 @@ class UniversignTransaction(Base):
comment="ID Universign (ex: tr_abc123)", comment="ID Universign (ex: tr_abc123)",
) )
# === LIEN AVEC LE DOCUMENT SAGE ===
sage_document_id = Column( sage_document_id = Column(
String(50), String(50),
nullable=False, nullable=False,
@ -82,7 +80,6 @@ class UniversignTransaction(Base):
SQLEnum(SageDocumentType), nullable=False, comment="Type de document Sage" SQLEnum(SageDocumentType), nullable=False, comment="Type de document Sage"
) )
# === STATUTS UNIVERSIGN (SOURCE DE VÉRITÉ) ===
universign_status = Column( universign_status = Column(
SQLEnum(UniversignTransactionStatus), SQLEnum(UniversignTransactionStatus),
nullable=False, nullable=False,
@ -94,7 +91,6 @@ class UniversignTransaction(Base):
DateTime, nullable=True, comment="Dernière MAJ du statut Universign" DateTime, nullable=True, comment="Dernière MAJ du statut Universign"
) )
# === STATUT LOCAL (DÉDUIT) ===
local_status = Column( local_status = Column(
SQLEnum(LocalDocumentStatus), SQLEnum(LocalDocumentStatus),
nullable=False, nullable=False,
@ -103,7 +99,6 @@ class UniversignTransaction(Base):
comment="Statut métier simplifié pour l'UI", comment="Statut métier simplifié pour l'UI",
) )
# === URLS ET MÉTADONNÉES UNIVERSIGN ===
signer_url = Column(Text, nullable=True, comment="URL de signature") signer_url = Column(Text, nullable=True, comment="URL de signature")
document_url = Column(Text, nullable=True, comment="URL du document signé") document_url = Column(Text, nullable=True, comment="URL du document signé")
@ -125,17 +120,14 @@ class UniversignTransaction(Base):
certificate_url = Column(Text, nullable=True, comment="URL du certificat") certificate_url = Column(Text, nullable=True, comment="URL du certificat")
# === SIGNATAIRES ===
signers_data = Column( signers_data = Column(
Text, nullable=True, comment="JSON des signataires (snapshot)" Text, nullable=True, comment="JSON des signataires (snapshot)"
) )
# === INFORMATIONS MÉTIER ===
requester_email = Column(String(255), nullable=True) requester_email = Column(String(255), nullable=True)
requester_name = Column(String(255), nullable=True) requester_name = Column(String(255), nullable=True)
document_name = Column(String(500), nullable=True) document_name = Column(String(500), nullable=True)
# === DATES CLÉS ===
created_at = Column( created_at = Column(
DateTime, DateTime,
default=datetime.now, default=datetime.now,
@ -150,14 +142,12 @@ class UniversignTransaction(Base):
expired_at = Column(DateTime, nullable=True) expired_at = Column(DateTime, nullable=True)
canceled_at = Column(DateTime, nullable=True) canceled_at = Column(DateTime, nullable=True)
# === SYNCHRONISATION ===
last_synced_at = Column( last_synced_at = Column(
DateTime, nullable=True, comment="Dernière sync réussie avec Universign" DateTime, nullable=True, comment="Dernière sync réussie avec Universign"
) )
sync_attempts = Column(Integer, default=0, comment="Nombre de tentatives de sync") sync_attempts = Column(Integer, default=0, comment="Nombre de tentatives de sync")
sync_error = Column(Text, nullable=True) sync_error = Column(Text, nullable=True)
# === FLAGS ===
is_test = Column( is_test = Column(
Boolean, default=False, comment="Transaction en environnement .alpha" Boolean, default=False, comment="Transaction en environnement .alpha"
) )
@ -166,7 +156,6 @@ class UniversignTransaction(Base):
) )
webhook_received = Column(Boolean, default=False, comment="Webhook Universign reçu") webhook_received = Column(Boolean, default=False, comment="Webhook Universign reçu")
# === RELATION ===
signers = relationship( signers = relationship(
"UniversignSigner", back_populates="transaction", cascade="all, delete-orphan" "UniversignSigner", back_populates="transaction", cascade="all, delete-orphan"
) )
@ -174,7 +163,6 @@ class UniversignTransaction(Base):
"UniversignSyncLog", back_populates="transaction", cascade="all, delete-orphan" "UniversignSyncLog", back_populates="transaction", cascade="all, delete-orphan"
) )
# === INDEXES COMPOSITES ===
__table_args__ = ( __table_args__ = (
Index("idx_sage_doc", "sage_document_id", "sage_document_type"), Index("idx_sage_doc", "sage_document_id", "sage_document_type"),
Index("idx_sync_status", "needs_sync", "universign_status"), Index("idx_sync_status", "needs_sync", "universign_status"),
@ -190,10 +178,6 @@ class UniversignTransaction(Base):
class UniversignSigner(Base): class UniversignSigner(Base):
"""
Détail de chaque signataire d'une transaction
"""
__tablename__ = "universign_signers" __tablename__ = "universign_signers"
id = Column(String(36), primary_key=True) id = Column(String(36), primary_key=True)
@ -204,33 +188,27 @@ class UniversignSigner(Base):
index=True, index=True,
) )
# === DONNÉES SIGNATAIRE ===
email = Column(String(255), nullable=False, index=True) email = Column(String(255), nullable=False, index=True)
name = Column(String(255), nullable=True) name = Column(String(255), nullable=True)
phone = Column(String(50), nullable=True) phone = Column(String(50), nullable=True)
# === STATUT ===
status = Column( status = Column(
SQLEnum(UniversignSignerStatus), SQLEnum(UniversignSignerStatus),
default=UniversignSignerStatus.WAITING, default=UniversignSignerStatus.WAITING,
nullable=False, nullable=False,
) )
# === ACTIONS ===
viewed_at = Column(DateTime, nullable=True) viewed_at = Column(DateTime, nullable=True)
signed_at = Column(DateTime, nullable=True) signed_at = Column(DateTime, nullable=True)
refused_at = Column(DateTime, nullable=True) refused_at = Column(DateTime, nullable=True)
refusal_reason = Column(Text, nullable=True) refusal_reason = Column(Text, nullable=True)
# === MÉTADONNÉES ===
ip_address = Column(String(45), nullable=True) ip_address = Column(String(45), nullable=True)
user_agent = Column(Text, nullable=True) user_agent = Column(Text, nullable=True)
signature_method = Column(String(50), nullable=True) signature_method = Column(String(50), nullable=True)
# === ORDRE ===
order_index = Column(Integer, default=0) order_index = Column(Integer, default=0)
# === RELATION ===
transaction = relationship("UniversignTransaction", back_populates="signers") transaction = relationship("UniversignTransaction", back_populates="signers")
def __repr__(self): def __repr__(self):
@ -238,10 +216,6 @@ class UniversignSigner(Base):
class UniversignSyncLog(Base): class UniversignSyncLog(Base):
"""
Journal de toutes les synchronisations (audit trail)
"""
__tablename__ = "universign_sync_logs" __tablename__ = "universign_sync_logs"
id = Column(Integer, primary_key=True, autoincrement=True) id = Column(Integer, primary_key=True, autoincrement=True)
@ -252,22 +226,18 @@ class UniversignSyncLog(Base):
index=True, index=True,
) )
# === SYNC INFO ===
sync_type = Column(String(50), nullable=False, comment="webhook, polling, manual") sync_type = Column(String(50), nullable=False, comment="webhook, polling, manual")
sync_timestamp = Column(DateTime, default=datetime.now, nullable=False, index=True) sync_timestamp = Column(DateTime, default=datetime.now, nullable=False, index=True)
# === CHANGEMENTS DÉTECTÉS ===
previous_status = Column(String(50), nullable=True) previous_status = Column(String(50), nullable=True)
new_status = Column(String(50), nullable=True) new_status = Column(String(50), nullable=True)
changes_detected = Column(Text, nullable=True, comment="JSON des changements") changes_detected = Column(Text, nullable=True, comment="JSON des changements")
# === RÉSULTAT ===
success = Column(Boolean, default=True) success = Column(Boolean, default=True)
error_message = Column(Text, nullable=True) error_message = Column(Text, nullable=True)
http_status_code = Column(Integer, nullable=True) http_status_code = Column(Integer, nullable=True)
response_time_ms = Column(Integer, nullable=True) response_time_ms = Column(Integer, nullable=True)
# === RELATION ===
transaction = relationship("UniversignTransaction", back_populates="sync_logs") transaction = relationship("UniversignTransaction", back_populates="sync_logs")
def __repr__(self): def __repr__(self):
@ -287,7 +257,6 @@ class UniversignConfig(Base):
api_url = Column(String(500), nullable=False) api_url = Column(String(500), nullable=False)
api_key = Column(String(500), nullable=False, comment="À chiffrer") api_key = Column(String(500), nullable=False, comment="À chiffrer")
# === OPTIONS ===
webhook_url = Column(String(500), nullable=True) webhook_url = Column(String(500), nullable=True)
webhook_secret = Column(String(255), nullable=True) webhook_secret = Column(String(255), nullable=True)