/**
 * Cron: Purge Stale Drafts — runs daily at 00:00 UTC.
 *
 * Deletes deal_drafts rows where is_starred=false AND updated_at < now() - 30 days.
 * Starred drafts are never purged regardless of age.
 */

import { createDbService } from '@/server/services/db.js';
import { withSentry } from '@/server/observability/with-sentry';
import { purgeStaleUnstarred } from '../db/queries/deal-drafts.js';
import type { CronEnv } from './deal-expiry.js';

export const runPurgeStaleDrafts = withSentry(
  async function runPurgeStaleDrafts(env: CronEnv): Promise<void> {
    const db = env.db ?? createDbService({ DATABASE_URL: env.DATABASE_URL });
    const cutoff = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000);
    const deleted = await purgeStaleUnstarred(db, cutoff);
    console.warn(`[purge-stale-drafts] deleted ${deleted} stale unstarred draft(s)`);
  },
  { name: 'cron.purge-stale-drafts', kind: 'cron' },
);
