import { db } from "../db/index"; import { courses } from "../db/schema"; import { eq } from "drizzle-orm"; import { generateCourseInBackground } from "../utils/generateCourse"; export default defineNitroPlugin(async () => { console.log("[revisione] resumeGeneration plugin started"); try { const stuck = await db.query.courses.findMany({ where: eq(courses.status, "processing"), }); console.log(`[revisione] query complete — found ${stuck.length} course(s)`); if (stuck.length === 0) return; console.log(`[revisione] found ${stuck.length} course(s) stuck in processing — resuming`); for (const course of stuck) { console.log(`[revisione] resuming "${course.title}" (${course.id.slice(0, 8)})`); generateCourseInBackground(course.id).catch((err) => { console.error(`[revisione] background generation threw:`, err?.message ?? err); }); } } catch (err: any) { console.error("[revisione] resumeGeneration plugin error:", err?.message ?? err); } });