1. Leads limpiados (207 eliminados, 18 apartados conservados) 2. Round-robin desactivado (config round_robin_habilitado=false) 3. Admin puede borrar/reasignar/mover leads (DELETE/PATCH/POST) 4. Calendario: fechaCita guardada y pasada correctamente 5. Avisos Monday eliminados (BannerModoLocal, ChipPendienteSync, vinculación) 6. Contactos filtrados por usuario asignado 7. Modal bitácora: notas persisten entre fases 8. Fases oportunidades: Agendo→Afluencia→Cotizar→Aparto 9. Toast de nota eliminado en cambios de status 10. Branding: CRM360 FRASA + logo en todas las apps 11. 7 apps construidas
61 lines
2.2 KiB
JavaScript
61 lines
2.2 KiB
JavaScript
/**
|
|
* Elimina todos los registros de LeadCaptura donde board = 'LEADS' o
|
|
* board = 'OPORTUNIDADES'. Muestra conteo antes y después.
|
|
*
|
|
* Uso: npx tsx scripts/limpiar-leads.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() {
|
|
// ── Conteo antes ──
|
|
const total = await prisma.leadCaptura.count()
|
|
const leads = await prisma.leadCaptura.count({ where: { board: 'LEADS' } })
|
|
const oportunidades = await prisma.leadCaptura.count({ where: { board: 'OPORTUNIDADES' } })
|
|
const otros = total - leads - oportunidades
|
|
|
|
console.log('── Antes de limpiar ──')
|
|
console.log(` Total LeadCaptura: ${total}`)
|
|
console.log(` board = LEADS: ${leads}`)
|
|
console.log(` board = OPORTUNIDADES: ${oportunidades}`)
|
|
console.log(` Otros (APARTADO, etc.): ${otros}`)
|
|
|
|
if (leads + oportunidades === 0) {
|
|
console.log('\nNo hay leads ni oportunidades que borrar.')
|
|
return
|
|
}
|
|
|
|
// ── Eliminar leads y oportunidades ──
|
|
const deleted = await prisma.leadCaptura.deleteMany({
|
|
where: { board: { in: ['LEADS', 'OPORTUNIDADES'] } },
|
|
})
|
|
console.log(`\nEliminados: ${deleted.count} registros`)
|
|
|
|
// ── Conteo después ──
|
|
const totalDespues = await prisma.leadCaptura.count()
|
|
const leadsDespues = await prisma.leadCaptura.count({ where: { board: 'LEADS' } })
|
|
const opDespues = await prisma.leadCaptura.count({ where: { board: 'OPORTUNIDADES' } })
|
|
const otrosDespues = totalDespues - leadsDespues - opDespues
|
|
|
|
console.log('\n── Después de limpiar ──')
|
|
console.log(` Total LeadCaptura: ${totalDespues}`)
|
|
console.log(` board = LEADS: ${leadsDespues}`)
|
|
console.log(` board = OPORTUNIDADES: ${opDespues}`)
|
|
console.log(` Otros (APARTADO, etc.): ${otrosDespues}`)
|
|
console.log('\n✅ Limpieza completada.')
|
|
}
|
|
|
|
main()
|
|
.catch((err) => {
|
|
console.error('❌ Error:', err)
|
|
process.exit(1)
|
|
})
|
|
.finally(() => prisma.$disconnect())
|