import { CashBalanceLogListPage } from "@/components/xml-apis/cash-balance-log/cash-balance-log-list-page"
import { fetchBackendCashBalanceLog } from "./_lib/cash-balance-log-server-api"

type CashBalanceLogPageProps = {
  searchParams: Promise<{
    page?: string
    page_size?: string
  }>
}

export default async function CashBalanceLogListRoute({
  searchParams,
}: CashBalanceLogPageProps) {
  const params = await searchParams
  const page = Number(params.page ?? "1")
  const pageSize = Number(params.page_size ?? "10")
  const {
    items,
    totalCount,
    page: currentPage,
    pageSize: currentPageSize,
    pageCount,
    errorMessage,
  } = await fetchBackendCashBalanceLog({
    page: Number.isFinite(page) && page > 0 ? page : 1,
    pageSize: Number.isFinite(pageSize) && pageSize > 0 ? pageSize : 10,
  })

  return (
    <CashBalanceLogListPage
      initialData={items}
      initialTotalCount={totalCount}
      initialPage={currentPage}
      initialPageSize={currentPageSize}
      initialPageCount={pageCount}
      initialErrorMessage={errorMessage}
    />
  )
}
