"use client";

import { keepPreviousData, useQuery } from "@tanstack/react-query";

import { listAdminPackagesApi } from "@/lib/api/catalog.api";
import { queryKeys } from "@/lib/constants/query-keys";
import type { AdminPackageListParams } from "@/types/catalog";

/**
 * Paginated wash package list for the admin catalog screen (server-mode
 * DataTable).
 *
 * `keepPreviousData` keeps the current page rendered while the next one loads,
 * so paging/searching doesn't flash the table back to skeletons.
 */
export function useAdminPackages(params: AdminPackageListParams) {
  return useQuery({
    queryKey: queryKeys.catalog.adminList(params),
    queryFn: () => listAdminPackagesApi(params),
    placeholderData: keepPreviousData,
  });
}
