Files
leadradar/backend/app/models/lead_interacao.py
T

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}>'