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

export function middleware(req: NextRequest) {
  const isPrefetch =
    req.headers.get("next-router-prefetch") === "1" ||
    req.headers.get("purpose") === "prefetch";

  // prefetch بدون کوکی نباید redirect به /login کش شود
  if (isPrefetch) {
    return NextResponse.next();
  }

  const token = req.cookies.get("token")?.value?.trim();

  // صفحاتی که ذاتاً نیازمند ورود هستند (حساب کاربری و ساخت محتوا)
  // بقیه صفحات برای مهمان آزاد است و فقط هنگام انجام عملیات به ورود هدایت می‌شود.
  const protectedPaths = ["/settings", "/new-post", "/new-project"];
  const needsAuth = protectedPaths.some((p) =>
    req.nextUrl.pathname.startsWith(p)
  );

  if (needsAuth && !token) {
    const loginUrl = new URL("/login", req.url);
    loginUrl.searchParams.set("redirect", req.nextUrl.pathname);
    return NextResponse.redirect(loginUrl);
  }

  return NextResponse.next();
}
//
export const config = {
  matcher: ["/settings/:path*", "/new-post/:path*", "/new-project/:path*"],
};
 