import { parseUnderlyingAliasSearchParams } from "./_components/constants";
import { UnderlyingAliasPageClient } from "./_components/underlying-alias-page-client";
import { fetchBackendUnderlyingAliases } from "./_lib/underlying-alias-server-api";

type PageProps = {
  searchParams: Promise<{
    aliasCode?: string;
    aliasIsin?: string;
    aliasSource?: string;
    page?: string;
    page_size?: string;
  }>;
};

export default async function UnderlyingAliasPage({ searchParams }: PageProps) {
  const query = parseUnderlyingAliasSearchParams(await searchParams);
  const { rows, totalCount, page, pageSize, pageCount, errorMessage } =
    await fetchBackendUnderlyingAliases(query);

  return (
    <UnderlyingAliasPageClient
      rows={rows}
      filters={{
        aliasCode: query.aliasCode,
        aliasIsin: query.aliasIsin,
        aliasSource: query.aliasSource,
      }}
      totalCount={totalCount}
      page={page}
      pageSize={pageSize}
      pageCount={pageCount}
      errorMessage={errorMessage}
    />
  );
}
