import { NextRequest, NextResponse } from "next/server";

export async function MiddlewareAuth(
  request: NextRequest,
  response: NextResponse,
): Promise<NextResponse> {
  const isEnglishLocale = request.nextUrl.pathname.startsWith("/en");
  const userToken = request.cookies.get("token");

  const LocaleUrl = isEnglishLocale ? "/en" : "";
  const LocaleRedirectUrl = isEnglishLocale ? "/en" : "/";

  const authPath = request.nextUrl.pathname.startsWith(`${LocaleUrl}/auth`);
  const profilePath = request.nextUrl.pathname.startsWith(
    `${LocaleUrl}/profile`,
  );

  if (!userToken) {
    response.cookies.delete("sessionToken");
    response.cookies.delete("token");
  }
  if (profilePath && !userToken) {
    return NextResponse.redirect(new URL(`${LocaleRedirectUrl}`, request.url));
  }
  if (authPath && userToken) {
    return NextResponse.redirect(new URL(`${LocaleRedirectUrl}`, request.url));
  }
  return response;
}
