import { NextRequest, NextResponse } from "next/server"; import { requirePaidApiUser } from "@/lib/api-auth"; import { saveUploadedFile } from "@/lib/jobs/create-job"; export const maxDuration = 120; export async function POST(req: NextRequest) { const { error, user } = await requirePaidApiUser(req); if (error || !user) return error!; const formData = await req.formData(); const file = formData.get("file") as File | null; const type = formData.get("type") as string | null; if (!file || !type || (type !== "image" && type !== "audio")) { return NextResponse.json( { error: "Provide multipart fields: file, type (image|audio)" }, { status: 400 }, ); } try { const result = await saveUploadedFile(user.id, file, type, user.plan); return NextResponse.json(result); } catch (err) { const message = err instanceof Error ? err.message : "Upload failed"; return NextResponse.json({ error: message }, { status: 400 }); } }