import { NextResponse } from "next/server";

import prismadb from "@/lib/prisma";

import { getServerSession } from "next-auth";

export async function POST(
  req: Request,
) {
  try {
    const session = await getServerSession();
    const email = session?.user?.email;

    const body = await req.json();

    const { name, logo, shopMail, shopUrl } = body;

    if (!email) {
      return new NextResponse("Unauthorized", { status: 401 });
    }

    if (!name) {
      return new NextResponse("Nom requis", { status: 400 });
    }

    if (!logo) {
      return new NextResponse("Logo requis", { status: 400 });
    }

    if (!shopMail) {
      return new NextResponse("Adresse mail requise", { status: 400 });
    }

    if (!shopUrl) {
      return new NextResponse("Url requis", { status: 400 });
    }

    const store = await prismadb.store.create({
      data: {
        name,
        logo,
        shopMail,
        shopUrl,
        createdBy: email
      }
    });

    await prismadb.userStore.create({
      data: {
        userId: email,
        storeId: store.id
      }
    })

    return NextResponse.json(store);

  } catch (error) {
    console.log('[STORES_POST]', error);
    return new NextResponse("Internal error", { status: 500 })
  }

}