import { parseAssetDefinitionSearchParams } from "./_components/constants";
import { AssetDefinitionPageClient } from "./_components/asset-definition-page-client";
import { fetchBackendAssetDefinitions } from "./_lib/asset-definition-server-api";

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

export default async function AssetDefinitionPage({ searchParams }: PageProps) {
  const query = parseAssetDefinitionSearchParams(await searchParams);
  const { rows, totalCount, page, pageSize, pageCount, errorMessage } =
    await fetchBackendAssetDefinitions(query);

  return (
    <AssetDefinitionPageClient
      rows={rows}
      filters={{
        masterName: query.masterName,
        status: query.status,
      }}
      totalCount={totalCount}
      page={page}
      pageSize={pageSize}
      pageCount={pageCount}
      errorMessage={errorMessage}
    />
  );
}
