37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
from sqlalchemy import (
|
|
Column,
|
|
Integer,
|
|
String,
|
|
DateTime,
|
|
Float,
|
|
Text,
|
|
Boolean,
|
|
)
|
|
from datetime import datetime
|
|
from database.models.generic_model import Base
|
|
|
|
|
|
class WorkflowLog(Base):
|
|
__tablename__ = "workflow_logs"
|
|
|
|
id = Column(String(36), primary_key=True)
|
|
|
|
document_source = Column(String(100), nullable=False, index=True)
|
|
type_source = Column(Integer, nullable=False) # 0=Devis, 3=Commande, etc.
|
|
|
|
document_cible = Column(String(100), nullable=False, index=True)
|
|
type_cible = Column(Integer, nullable=False)
|
|
|
|
nb_lignes = Column(Integer, nullable=True)
|
|
montant_ht = Column(Float, nullable=True)
|
|
montant_ttc = Column(Float, nullable=True)
|
|
|
|
date_transformation = Column(DateTime, default=datetime.now, nullable=False)
|
|
utilisateur = Column(String(100), nullable=True)
|
|
|
|
succes = Column(Boolean, default=True)
|
|
erreur = Column(Text, nullable=True)
|
|
duree_ms = Column(Integer, nullable=True) # Durée en millisecondes
|
|
|
|
def __repr__(self):
|
|
return f"<WorkflowLog {self.document_source} → {self.document_cible}>"
|