/**
 * lead-score-refresh cron — lead-qualification-scoring (wave-14).
 * Scheduled: daily at 11:00 UTC.
 *
 * Queries all active leads with score_updated_at older than 24 h (or never scored),
 * then enqueues a lead.score_recalc job for each so the queue worker recomputes
 * scores asynchronously without blocking the cron handler.
 */
import { listAllActiveLeadTenantPairs, createDb } from '@zync/db/queries'
import { enqueueLeadScoreRecalc } from '../queues/lead-score-recalc'
import type { Env } from '@zync/types'

export async function runLeadScoreRefresh(env: Env): Promise<void> {
  const db = createDb(env)
  const pairs = await listAllActiveLeadTenantPairs(db)
  console.log(`lead-score-refresh: queuing ${pairs.length} leads for score recalc`)
  for (const { id: leadId, tenantId } of pairs) {
    await enqueueLeadScoreRecalc(env, tenantId, leadId)
  }
}
