import uuid from datetime import datetime, timezone from app.extensions import db class LeadInteracao(db.Model): __tablename__ = 'lead_interacoes' id = db.Column(db.String(36), primary_key=True, default=lambda: str(uuid.uuid4())) lead_id = db.Column(db.String(36), db.ForeignKey('leads.id', ondelete='CASCADE'), nullable=False, index=True) usuario_id = db.Column(db.String(36), db.ForeignKey('users.id', ondelete='SET NULL'), nullable=True, index=True) tipo = db.Column(db.String(50), nullable=False, index=True) descricao = db.Column(db.Text, nullable=False) metadados = db.Column(db.JSON, default=dict) timestamp = db.Column(db.DateTime, default=lambda: datetime.now(timezone.utc), index=True) def to_dict(self): return { 'id': self.id, 'lead_id': self.lead_id, 'usuario_id': self.usuario_id, 'usuario_nome': self.usuario.nome if self.usuario else 'Sistema', 'tipo': self.tipo, 'descricao': self.descricao, 'metadados': self.metadados or {}, 'timestamp': self.timestamp.isoformat() if self.timestamp else None } def __repr__(self): return f''