import { clampPageNumber, clampPageSize } from "@/config/pagination"
import { BankFetchFailuresPage } from "@/components/xml-apis/bank-fetch-failures/bank-fetch-failures-page"
import { fetchBankFetchFailuresIndex } from "./_lib/bank-fetch-failures-server-api"

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

export default async function BankFetchFailuresRoute({ searchParams }: PageProps) {
  const params = await searchParams
  const page = clampPageNumber(params.page)
  const pageSize = clampPageSize(params.page_size, 20)
  const result = await fetchBankFetchFailuresIndex({ page, pageSize, openOnly: true })

  return (
    <BankFetchFailuresPage
      initialRows={result.items}
      initialTotalCount={result.totalCount}
      initialPage={result.page}
      initialPageSize={result.pageSize}
      initialPageCount={result.pageCount}
      bankApiOptions={result.bankApiOptions}
      initialOpenCount={result.openCount}
      initialErrorMessage={result.errorMessage}
    />
  )
}
