import { nanoid } from "nanoid";
import { NextResponse } from "next/server";
import { generateV4UploadSignedUrl } from "@/lib/actions/upload";
import { z } from "zod";

const BodySchema = z.object({
  folderName: z.string().optional(),
  fileType: z.string(),
});

// export const runtime = "edge";
async function handler(req: Request) {
  // const session = await getSession();
  // if (!session?.user.id) {
  //   return new Response("Unauthorized", {
  //     status: 401,
  //   });
  // }
  const rawJson = await req.json();
  const body = BodySchema.parse(rawJson);
  const { folderName, fileType } = body;
  const filename = (`${folderName}/` ?? "") + nanoid();
  const signedUrl = await generateV4UploadSignedUrl(filename, fileType);

  return NextResponse.json({ ...signedUrl, fileName: filename });
}

export { handler as POST };