import { auth } from "@/lib/auth";
import { redirect } from "@/i18n/navigation";
import { setRequestLocale } from "next-intl/server";
import RolesClient from "@/components/roles/RolesClient";
import { hasEffectivePermission } from "@/lib/session-utils";

export default async function RolesPage({
  params,
}: {
  params: Promise<{ locale: string }>;
}) {
  const { locale } = await params;
  setRequestLocale(locale);

  const session = await auth();
  if (!session) {
    redirect({ href: "/login", locale });
    return null;
  }

  if (!hasEffectivePermission(session, "ROLES_VIEW")) {
    redirect({ href: "/dashboard", locale });
  }

  return (
    <RolesClient
      canCreate={hasEffectivePermission(session, "ROLES_CREATE")}
      canUpdate={hasEffectivePermission(session, "ROLES_UPDATE")}
      canDelete={hasEffectivePermission(session, "ROLES_DELETE")}
    />
  );
}
