import { auth } from "@/lib/auth";
import { redirect } from "@/i18n/navigation";
import { setRequestLocale } from "next-intl/server";
import { hasEffectivePermission, canImpersonateBusiness } from "@/lib/session-utils";
import BusinessesClient from "@/components/businesses/BusinessesClient";

export default async function BusinessesPage({
  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, "BUSINESSES_VIEW")) {
    redirect({ href: "/dashboard", locale });
    return null;
  }

  const canCreate = hasEffectivePermission(session, "BUSINESSES_CREATE");
  const canUpdate = hasEffectivePermission(session, "BUSINESSES_UPDATE");
  const canDelete = hasEffectivePermission(session, "BUSINESSES_DELETE");
  const canImpersonate = canImpersonateBusiness(session);

  return (
    <BusinessesClient
      canCreate={canCreate}
      canUpdate={canUpdate}
      canDelete={canDelete}
      canImpersonate={canImpersonate}
    />
  );
}
