import { NextResponse } from "next/server" import { eq } from "drizzle-orm" import { db } from "@/lib/db" import { follow_up_rules } from "@/lib/db/schema" import { isAuthorizedCron } from "@/lib/cron-auth" import { runFollowUpsForUser } from "@/lib/follow-ups" // Automated follow-ups cron: runs every user's active follow-up rules. // Runs daily at 10:00 UTC (see functions/project.yml → follow-ups trigger). export async function GET(request: Request) { if (!isAuthorizedCron(request)) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }) } // Distinct user ids that have at least one active follow-up rule. const rows = await db .selectDistinct({ user_id: follow_up_rules.user_id }) .from(follow_up_rules) .where(eq(follow_up_rules.is_active, true)) let processed = 0 let total = 0 for (const { user_id } of rows) { try { const result = await runFollowUpsForUser(user_id) total += result.sent processed++ } catch (err) { console.error(`follow-ups cron failed for user ${user_id}:`, err) } } return NextResponse.json({ processed, sent: total }) }