Nuevas tablas: - ActividadLocal (historial de llamadas, reuniones, tareas) - AsignacionLocal (round-robin local) - fechaLimite en LeadCaptura Servicios nuevos: - actividad-local.service.ts (CRUD actividades) - local-canal.ts (canal de envío para recordatorios) - seed-modo-local.js (activar modo local) Mi día local mejorado: - Mis actividades hoy (filtros usuario/fecha/estado) - Apartados por vencer (con fechaLimite real) - Equipo (contadores por vendedor, solo coordinador/admin) - unidadCodigo en oportunidades desde datosJson Automatizaciones locales: - Round-robin: asigna leads sin vendedor + crea actividad - Inactividad: detecta oportunidades >10 días sin update - Escalado: alerta oportunidades >48h sin contacto Reportes: actividadesAbiertas + parcial:false en modo local Cron wiring: crons locales cuando Monday caído 661 tests verdes.
68 lines
2.3 KiB
JavaScript
68 lines
2.3 KiB
JavaScript
/**
|
|
* Activa el modo local forzado en ConfiguracionSistema.
|
|
*
|
|
* 1. Pon `modo_local_forzado = true` en ConfiguracionSistema
|
|
* 2. Verifica que unidades locales existen (count > 0)
|
|
* 3. Verifica que roles existen
|
|
* 4. Log: "Modo local activado. Monday deshabilitado."
|
|
*
|
|
* Idempotente: puede ejecutarse múltiples veces sin efectos adversos.
|
|
*
|
|
* Uso: npx tsx scripts/seed-modo-local.js
|
|
*/
|
|
import path from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
import dotenv from 'dotenv'
|
|
import { PrismaClient } from '@prisma/client'
|
|
|
|
const raizApi = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..')
|
|
dotenv.config({ path: [path.resolve(raizApi, '.env'), path.resolve(raizApi, '..', '.env')] })
|
|
|
|
const prisma = new PrismaClient()
|
|
|
|
async function main() {
|
|
// 1. Activar modo local forzado
|
|
console.log('⚙️ Activando modo local forzado...')
|
|
await prisma.configuracionSistema.upsert({
|
|
where: { clave: 'modo_local_forzado' },
|
|
create: { clave: 'modo_local_forzado', valor: 'true' },
|
|
update: { valor: 'true' },
|
|
})
|
|
console.log(' ✓ modo_local_forzado = true')
|
|
|
|
// 2. Verificar que unidades locales existen
|
|
const unidadesCount = await prisma.unidad.count()
|
|
if (unidadesCount === 0) {
|
|
console.warn(' ⚠️ No hay unidades locales. Ejecuta seed-unidades-locales.js primero.')
|
|
} else {
|
|
console.log(` ✓ ${unidadesCount} unidades locales verificadas`)
|
|
}
|
|
|
|
// 3. Verificar que roles existen
|
|
const rolesCount = await prisma.rolConfiguracion.count()
|
|
if (rolesCount === 0) {
|
|
console.warn(' ⚠️ No hay roles configurados. Ejecuta seed-config.js primero.')
|
|
} else {
|
|
console.log(` ✓ ${rolesCount} roles configurados verificados`)
|
|
}
|
|
|
|
// 4. Verificar que usuarios existen
|
|
const usuariosCount = await prisma.usuario.count()
|
|
if (usuariosCount === 0) {
|
|
console.warn(' ⚠️ No hay usuarios. Ejecuta seed-usuarios.ts primero.')
|
|
} else {
|
|
console.log(` ✓ ${usuariosCount} usuarios verificados`)
|
|
}
|
|
|
|
console.log('\n✅ Modo local activado. Monday deshabilitado.')
|
|
console.log(' La API operará con tablas locales (LeadCaptura, ActividadLocal, etc.)')
|
|
console.log(' Los crons de Monday se saltarán; los crons locales correrán en su lugar.')
|
|
}
|
|
|
|
main()
|
|
.catch((err) => {
|
|
console.error('❌ Error en seed:', err)
|
|
process.exit(1)
|
|
})
|
|
.finally(() => prisma.$disconnect())
|