// /opt/erp-system/proxy.ts
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { getToken } from "next-auth/jwt";

export default async function proxy(req: NextRequest) {
  // Holt das Token aus dem Request
  const token = await getToken({ req, secret: process.env.NEXTAUTH_SECRET });
  const isAuthPage = req.nextUrl.pathname.startsWith("/login");

  // Wenn der Nutzer auf der Login-Seite ist, aber schon eingeloggt -> ab zum Dashboard
  if (isAuthPage) {
    if (token) {
      return NextResponse.redirect(new URL("/", req.url));
    }
    return NextResponse.next();
  }

  // Wenn der Nutzer nicht eingeloggt ist und versucht auf interne Seiten zuzugreifen -> zum Login
  if (!token) {
    return NextResponse.redirect(new URL("/login", req.url));
  }

  // Alles in Ordnung, Anfrage durchlassen
  return NextResponse.next();
}

// Hier definieren wir, auf welchen Routen die Proxy/Middleware überhaupt laufen soll
export const config = {
  matcher: ["/((?!api/auth|_next/static|_next/image|favicon.ico).*)"],
};
