import { NextRequest, NextResponse } from "next/server";
import db from "@/lib/db";
import { writeFile } from "fs/promises";
import { join } from "path";
import {getLogger} from "@/utils/logger";

const logger = getLogger("api/adminUserEdit");

enum Gender {
  MALE = "MALE",
  FEMALE = "FEMALE",
  OTHER = "OTHER",
}

function parseGender(value: string): Gender | undefined {
  return Object.values(Gender).includes(value as Gender)
    ? (value as Gender)
    : undefined;
}

export const PUT = async (req: NextRequest, { params }: { params: { uuid: string } }) => {

  try {
    const { is_blocked, blockedBy } = await req.json();
    const updateData: any = {
      updated_by: blockedBy,
      is_blocked,
    };

    const updatedUser = await db.user.update({
      where: { uuid: params.uuid },
      data: updateData,
    });

    return NextResponse.json(
      {
        user: updatedUser,
        message: "User updated Successfully",
      },
      { status: 201 }
    );
  } catch (error:any) {
    logger.error("An error occurred while updating user", { errorMsg: error.message, errorData: error.config.data });
    return new NextResponse("Internal Server Error", {
      status: 500,
    });
  }
};
