feat: implementacao inicial do sistema LeadRadar
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
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}>'
|
||||
Reference in New Issue
Block a user