/**
 * Dispara manualmente el procesamiento de `metricas_invalidaciones` para todos
 * los tenants. Útil tras un `invalidate-metricas-all.ts` para no esperar al
 * cron (cada 15 min).
 *
 * Uso:
 *   pnpm --filter @horux/api exec tsx scripts/process-metricas-now.ts
 */
import { prisma } from '../src/config/database.js';
import { processAllTenantsInvalidations } from '../src/services/metricas-compute.service.js';

async function main() {
  console.log('=== Procesar metricas_invalidaciones (all tenants) ===\n');
  const start = Date.now();
  const r = await processAllTenantsInvalidations();
  const elapsed = ((Date.now() - start) / 1000).toFixed(1);
  console.log(
    `\nTenants revisados: ${r.tenantsRevisados}\n` +
      `Invalidaciones procesadas: ${r.totalProcesadas}\n` +
      `Filas metricas_mensuales escritas: ${r.totalFilasEscritas}\n` +
      `Errores: ${r.totalErrores}\n` +
      `Tiempo: ${elapsed}s`,
  );
  await prisma.$disconnect();
  process.exit(r.totalErrores > 0 ? 1 : 0);
}

main().catch(async (err) => {
  console.error('Fatal:', err);
  await prisma.$disconnect().catch(() => {});
  process.exit(1);
});
