import { CustomerPageShell } from "@/app/customer/_components/customer-page-shell";
import { sessionAllowsRouteKeys } from "@/app/customer/_lib/customer-route-guard";
import { ErrorBanner } from "@/components/shared/error-banner";
import { getCustomerSessionContext } from "@/lib/frontend-auth/server";

import { DeliveredHoldingsHistoryView } from "./_components/delivered-holdings-history-view";
import { DELIVERED_HOLDINGS_HISTORY_PERMISSION } from "./_lib/delivered-holdings-history-route";

type PageProps = { params: Promise<{ tenant: string }> };

export default async function DeliveredHoldingsHistoryPage({ params }: PageProps) {
  const { tenant } = await params;
  const session = await getCustomerSessionContext(tenant);
  const permissionDenied =
    session.user != null &&
    !sessionAllowsRouteKeys(session.permissions.routes, [DELIVERED_HOLDINGS_HISTORY_PERMISSION]);

  return (
    <CustomerPageShell>
      {permissionDenied ? (
        <ErrorBanner message="Permission denied for Delivered Holdings History." />
      ) : (
        <DeliveredHoldingsHistoryView />
      )}
    </CustomerPageShell>
  );
}
