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

const DOCTOR_HOME = "/dashboard";
const RECEPTIONIST_HOME = "/receptionist-dashboard";

export function middleware(request: NextRequest) {
  const { pathname } = request.nextUrl;

  const token = request.cookies.get("token")?.value;
  const userType = request.cookies.get("user_type")?.value;

  const isDoctorRoute = pathname.startsWith("/dashboard");
  const isReceptionistRoute = pathname.startsWith("/receptionist-dashboard");

  if ((isDoctorRoute || isReceptionistRoute) && !token) {
    return NextResponse.redirect(new URL("/login", request.url));
  }

  if (isReceptionistRoute && userType === "1") {
    return NextResponse.redirect(new URL(DOCTOR_HOME, request.url));
  }

  if (isDoctorRoute && userType === "2") {
    return NextResponse.redirect(new URL(RECEPTIONIST_HOME, request.url));
  }

  return NextResponse.next();
}

export const config = {
  matcher: ["/dashboard/:path*", "/receptionist-dashboard/:path*"],
};