import { z } from "zod";
import { loginSelectEmployee } from "@/apifetchers/custom/login/login";
import { NextResponse } from "next/server";

const loginSchemaEmployee = z.object({
  uuid: z.string(),
});

export async function POST(req: Request): Promise<NextResponse> {
  try {
    const headers = req.headers;
    const body = await req.json();
    const dataValidated = {
      uuid: body.uuid,
    };
    const validatedLoginBody = loginSchemaEmployee.safeParse(body);
    if (!validatedLoginBody.success) {
      return NextResponse.json({
        status: 422,
        message: validatedLoginBody.error.message,
      });
    }

    const userLogin = await loginSelectEmployee(dataValidated);
    if (userLogin.status === 200 || userLogin.status === 202) {
      return NextResponse.json({
        status: 200,
        message: "Selection successfully completed",
        data: userLogin.data,
      });
    } else {
      return NextResponse.json({
        status: userLogin.status,
        message: userLogin.message,
      });
    }
  } catch (error) {
    return NextResponse.json({ status: 401, message: "Invalid credentials" });
  }
}
