feat(mi-dia): seccion 'Mis capturas de afluencia' en el panel del vendedor

Nueva tabla LeadCaptura (quien capturo cada lead, algo que Monday no
guarda porque el creador del item siempre es el token del API). El
POST /api/leads la registra con el usuario del token y el resumen de
Mi dia la enriquece con el estado/origen actual del lead en Monday.
La captura rapida refresca el panel al registrar.
This commit is contained in:
2026-09-02 02:13:13 +00:00
parent 57029bdd3d
commit 895a831ff8
9 changed files with 266 additions and 11 deletions

View File

@@ -0,0 +1,17 @@
-- CreateTable
CREATE TABLE "LeadCaptura" (
"id" TEXT NOT NULL PRIMARY KEY,
"leadId" TEXT NOT NULL,
"oportunidadId" TEXT,
"usuarioId" TEXT NOT NULL,
"nombreLead" TEXT NOT NULL,
"telefono" TEXT,
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- CreateIndex
CREATE UNIQUE INDEX "LeadCaptura_leadId_key" ON "LeadCaptura"("leadId");
-- CreateIndex
CREATE INDEX "LeadCaptura_usuarioId_idx" ON "LeadCaptura"("usuarioId");

View File

@@ -150,6 +150,21 @@ model LeadOportunidad {
createdAt DateTime @default(now())
}
// Registro local de qué usuario del ecosistema capturó cada lead (alta de
// afluencia). Monday no guarda al capturista (el creador del item siempre es
// el token del API); esta tabla alimenta "Mis capturas" del panel Mi día.
model LeadCaptura {
id String @id @default(uuid())
leadId String @unique // item del tablero Leads (Monday)
oportunidadId String? // item del tablero Oportunidades ligado al capturar
usuarioId String // Usuario.id del capturista
nombreLead String
telefono String?
createdAt DateTime @default(now())
@@index([usuarioId])
}
// Estado persistente de las automatizaciones de Monday (round-robin, recordatorios).
// Clave-valor genérico: 'rr:indice', 'rr:vendedores', 'recordatorio:<itemId>:<fecha>', etc.
model AutomatizacionState {