import {
  getDashboardChargeStatusDistribution,
  getDashboardConnectorStatusSummary,
  getDashboardRecentSessions,
  getDashboardSessionSummaries,
  getDashboardUserSummaries,
} from "@/features/dashboard/api";
import { DashboardView } from "@/features/dashboard/dashboard-view";
import { requireFeatureAccess } from "@/lib/auth/feature-access";

export const metadata = { title: "Dashboard" };

export default async function DashboardPage() {
  await requireFeatureAccess("dashboard", "/locations");
  const [
    sessionSummaries,
    userSummaries,
    connectorStatusSummary,
    chargeStatusDistribution,
    recentSessions,
  ] = await Promise.all([
    getDashboardSessionSummaries(),
    getDashboardUserSummaries(),
    getDashboardConnectorStatusSummary(),
    getDashboardChargeStatusDistribution(),
    getDashboardRecentSessions(),
  ]);

  return (
    <DashboardView
      sessionSummaries={sessionSummaries}
      userSummaries={userSummaries}
      connectorStatusSummary={connectorStatusSummary}
      chargeStatusDistribution={chargeStatusDistribution}
      recentSessions={recentSessions}
    />
  );
}
