import { NextResponse } from "next/server"; import { startRenderJob } from "@/lib/run-render"; export async function POST(request: Request) { const body = await request.json(); const { input, options } = body as { input: { text?: string; source?: string; sourceArgs?: Record; template: string; platform?: string; platforms?: string[]; ttsProvider: string; voiceId?: string; }; options?: { noTts?: boolean; }; }; const platforms: string[] = input.platforms ?? (input.platform ? input.platform.split(",").map(p => p.trim()) : ["bilibili"]); if (!input.text && !input.source) { return NextResponse.json({ error: "text or source is required" }, { status: 400 }); } const { jobId } = startRenderJob({ template: input.template, platforms, ttsProvider: input.ttsProvider, source: input.source, sourceArgs: input.sourceArgs, text: input.text, voiceId: input.voiceId, noTts: options?.noTts, }); return NextResponse.json({ jobId, status: "started" }); }