import { PrismaClient } from '@prisma/client'; import { ProcessingStatusManager } from './lib/processingStatusManager'; const prisma = new PrismaClient(); async function debugImportStatus() { try { console.log('=== DEBUGGING PROCESSING STATUS (REFACTORED SYSTEM) ===\n'); // Get pipeline status using the new system const pipelineStatus = await ProcessingStatusManager.getPipelineStatus(); console.log(`Total Sessions: ${pipelineStatus.totalSessions}\n`); // Display status for each stage const stages = ['CSV_IMPORT', 'TRANSCRIPT_FETCH', 'SESSION_CREATION', 'AI_ANALYSIS', 'QUESTION_EXTRACTION']; for (const stage of stages) { console.log(`${stage}:`); const stageData = pipelineStatus.pipeline[stage] || {}; const pending = stageData.PENDING || 0; const inProgress = stageData.IN_PROGRESS || 0; const completed = stageData.COMPLETED || 0; const failed = stageData.FAILED || 0; const skipped = stageData.SKIPPED || 0; console.log(` PENDING: ${pending}`); console.log(` IN_PROGRESS: ${inProgress}`); console.log(` COMPLETED: ${completed}`); console.log(` FAILED: ${failed}`); console.log(` SKIPPED: ${skipped}`); console.log(''); } // Check Sessions vs SessionImports console.log('=== SESSION IMPORT RELATIONSHIP ==='); const sessionsWithImports = await prisma.session.count({ where: { importId: { not: null } } }); const totalSessions = await prisma.session.count(); console.log(` Sessions with importId: ${sessionsWithImports}`); console.log(` Total sessions: ${totalSessions}`); // Show failed sessions if any const failedSessions = await ProcessingStatusManager.getFailedSessions(); if (failedSessions.length > 0) { console.log('\n=== FAILED SESSIONS ==='); failedSessions.slice(0, 10).forEach(failure => { console.log(` ${failure.session.import?.externalSessionId || failure.sessionId}: ${failure.stage} - ${failure.errorMessage}`); }); if (failedSessions.length > 10) { console.log(` ... and ${failedSessions.length - 10} more failed sessions`); } } else { console.log('\n✓ No failed sessions found'); } // Show what needs processing console.log('\n=== WHAT NEEDS PROCESSING ==='); for (const stage of stages) { const stageData = pipelineStatus.pipeline[stage] || {}; const pending = stageData.PENDING || 0; const failed = stageData.FAILED || 0; if (pending > 0 || failed > 0) { console.log(`• ${stage}: ${pending} pending, ${failed} failed`); } } } catch (error) { console.error('Error debugging processing status:', error); } finally { await prisma.$disconnect(); } } debugImportStatus();