import { BillingContextProvider } from "@/components/billing/billing-context";
import { CreditsBalances } from "@/components/billing/credits-balances";
import { CreditsTransactions } from "@/components/billing/credits-transactions";
import { PurchaseCredits } from "@/components/billing/purchase-credits";
import { assertAuthorizedToCreditsPages } from "@/components/pages/credits/rule";
import { cachedGetBillingConfig } from "@/lib/api/billing";

export default async function CreditsPage() {
  const { billing: showBilling } =
    await assertAuthorizedToCreditsPages("credits");
  const billingConfig = await cachedGetBillingConfig();

  return (
    <BillingContextProvider value={{ config: billingConfig }}>
      {showBilling && <PurchaseCredits />}
      <CreditsBalances />
      <CreditsTransactions />
    </BillingContextProvider>
  );
}
