feat(mi-dia): vendedores solo-app con cuenta Monday compartida
- Las listas personales de Mi día (leads, oportunidades, apartados) se calculan por captura local (LeadCaptura/Cliente + mapping LeadOportunidad) ADEMÁS de la columna people de Monday: la app ya es totalmente usable sin cuenta Monday - Config MONDAY_VENDEDOR_COMPARTIDO_ID: cuando el usuario está ligado a la cuenta compartida, la columna people se ignora para 'lo mío' (si no, todos verían los leads de todos) - scripts/vincular-vendedores-compartido.js: vincula todos los usuarios con rol vendedor a la cuenta Monday compartida - Tests: 478 API, verde; verificado en vivo con usuario sin Monday
This commit is contained in:
@@ -2,6 +2,7 @@ import type { Request, Response } from 'express'
|
||||
import { prisma } from '../services/prisma.js'
|
||||
import { mondayService } from '../services/monday.service.js'
|
||||
import { resumenMiDia } from '../services/mi-dia.service.js'
|
||||
import { config } from '../config/index.js'
|
||||
import { AppError } from '../utils/errors.js'
|
||||
|
||||
/**
|
||||
@@ -44,6 +45,17 @@ export async function resumenMiDiaEndpoint(req: Request, res: Response): Promise
|
||||
orderBy: { createdAt: 'desc' },
|
||||
})
|
||||
|
||||
// "Lo mío" incluye las oportunidades ligadas a mis capturas (mapping
|
||||
// LeadOportunidad: conversión con "Agendo" y afluencias históricas)
|
||||
const mappings = await prisma.leadOportunidad.findMany({
|
||||
where: { leadId: { in: capturas.map((c) => c.leadId) } },
|
||||
})
|
||||
const capturadosIds = new Set([
|
||||
...capturas.map((c) => c.leadId),
|
||||
...capturas.map((c) => c.oportunidadId).filter((id): id is string => id !== null),
|
||||
...mappings.map((m) => m.oportunidadId),
|
||||
])
|
||||
|
||||
// Altas de clientes iniciadas por el usuario (registro local)
|
||||
const clientes = await prisma.cliente.findMany({
|
||||
where: { capturadoPorId: usuario.id },
|
||||
@@ -57,6 +69,9 @@ export async function resumenMiDiaEndpoint(req: Request, res: Response): Promise
|
||||
nombresPorMondayId,
|
||||
capturas,
|
||||
clientes,
|
||||
new Date(),
|
||||
config.automatizaciones.vendedorCompartidoId > 0 ? config.automatizaciones.vendedorCompartidoId : null,
|
||||
capturadosIds,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user