import { NextResponse } from "next/server" import type { NextRequest } from "next/server" export function middleware(request: NextRequest) { const userCookie = request.cookies.get("user") const { pathname } = request.nextUrl // المسارات التي تتطلب تسجيل دخول const protectedPaths = ["/dashboard", "/admin", "/plumber"] const isProtectedPath = protectedPaths.some((path) => pathname.startsWith(path)) // إذا كان المسار محمي ولا يوجد مستخدم مسجل if (isProtectedPath && !userCookie) { return NextResponse.redirect(new URL("/login", request.url)) } // إذا كان المستخدم مسجل دخول ويحاول الوصول لصفحات المصادقة if (userCookie && (pathname === "/login" || pathname === "/register")) { try { const userData = JSON.parse(userCookie.value) // توجيه المستخدم حسب دوره switch (userData.role) { case "admin": return NextResponse.redirect(new URL("/admin", request.url)) case "plumber": return NextResponse.redirect(new URL("/plumber", request.url)) default: return NextResponse.redirect(new URL("/dashboard", request.url)) } } catch { // إذا كان cookie غير صالح، احذفه const response = NextResponse.next() response.cookies.delete("user") return response } } // التحقق من صلاحيات الوصول للمسارات المختلفة if (userCookie && isProtectedPath) { try { const userData = JSON.parse(userCookie.value) // التحقق من صلاحيات الإدارة if (pathname.startsWith("/admin") && userData.role !== "admin") { return NextResponse.redirect(new URL("/dashboard", request.url)) } // التحقق من صلاحيات السباك if (pathname.startsWith("/plumber") && userData.role !== "plumber") { return NextResponse.redirect(new URL("/dashboard", request.url)) } } catch { return NextResponse.redirect(new URL("/login", request.url)) } } return NextResponse.next() } export const config = { matcher: ["/((?!api|_next/static|_next/image|favicon.ico|public).*)"], }