import { clampPageNumber, clampPageSize } from "@/config/pagination"
import { PosReconV2ListPage } from "@/components/xml-apis/pos-recon-v2/pos-recon-v2-list-page"
import { fetchPosReconV2Index } from "./_lib/pos-recon-v2-server-api"

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

export default async function PosReconV2Page({ searchParams }: PageProps) {
  const params = await searchParams
  const page = clampPageNumber(params.page)
  const pageSize = clampPageSize(params.page_size, 20)
  const corporateId = Number(params.corporate_id || 0) || 0
  const bankApiId = Number(params.bank_api_id || 0) || 0
  const result = await fetchPosReconV2Index({ page, pageSize, corporateId, bankApiId })

  return (
    <PosReconV2ListPage
      initialData={result.items}
      initialTotalCount={result.totalCount}
      initialPage={result.page}
      initialPageSize={result.pageSize}
      initialPageCount={result.pageCount}
      initialCorporateId={result.corporateId || corporateId}
      initialBankApiId={result.selectedBankApiId || bankApiId}
      corporateDbOptions={result.corporateDbOptions}
      bankApiOptions={result.bankApiOptions}
      initialUploads={result.uploads}
      initialErrorMessage={result.errorMessage}
    />
  )
}
