import { useQuery } from "@tanstack/react-query";
import { api } from "@/lib/api";
import type { ItemSearchParams } from "@/lib/item-search-params";
import type { ItemSearchQueryInput } from "@alqove/api-client";

function toQueryInput(params: ItemSearchParams): ItemSearchQueryInput {
  return {
    q: params.q ?? undefined,
    category_slug: params.categorySlug ?? undefined,
    brand: params.brand,
    size: params.size,
    condition: params.condition,
    colors: params.colors,
    store_id: params.storeId,
    min_price: params.minPrice ?? undefined,
    max_price: params.maxPrice ?? undefined,
    sort: params.sort,
    page: params.page,
    per_page: params.perPage,
  };
}

export function useItemSearch(params: ItemSearchParams) {
  return useQuery({
    queryKey: ["items", "search", params],
    queryFn: () => api.items.browse(toQueryInput(params)),
  });
}
