30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
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'<LeadInteracao {self.tipo} lead={self.lead_id}>'
|