/**
 * Next.js Instrumentation — runs once on server startup.
 * https://nextjs.org/docs/app/building-your-application/optimizing/instrumentation
 */
export async function onRequestInit() {
  // no-op — required export for instrumentation file
}

export async function register() {
  // Only run on the Node.js server runtime (not edge, not build)
  if (process.env.NEXT_RUNTIME === 'nodejs') {
    // Retroactive document analysis: analyze all files that haven't been analyzed yet.
    // Runs in background on startup, non-blocking.
    import('./server/services/document-analyzer')
      .then(({ analyzeAllUnanalyzed }) => {
        console.log('[Startup] Starting retroactive document analysis...')
        analyzeAllUnanalyzed()
          .then((result) => {
            console.log(
              `[Startup] Document analysis complete: ${result.analyzed} analyzed, ${result.skipped} skipped, ${result.failed} failed out of ${result.total} total`
            )
          })
          .catch((err) => {
            console.warn('[Startup] Document analysis failed:', err)
          })
      })
      .catch(() => {})

    // Round scheduler: check every 60s for rounds that need to open/close
    import('./server/services/round-scheduler')
      .then(({ processScheduledRounds }) => {
        console.log('[Startup] Round scheduler started (60s interval)')
        // Run once immediately, then every 60 seconds
        processScheduledRounds().catch(() => {})
        setInterval(() => {
          processScheduledRounds().catch((err) => {
            console.error('[RoundScheduler] Error:', err)
          })
        }, 60_000)
      })
      .catch(() => {})
  }
}
