Files
FRASA-CAS/api-gateway/scripts/seed-modo-local.js
Consult AS Technology 388e1da338 feat(modo-local): CRM 100% local sin dependencia de Monday.com
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.
2026-09-07 04:00:15 +00:00

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())