import { ProductFragment } from '@/graphql/products'; // Storefront search over products. `productFilters` accepts the raw `input` // values returned in `productFilters[].values[].input`, so facets round-trip // without the client needing to know each filter's shape. export const SEARCH_PRODUCTS_QUERY = ` ${ProductFragment} query SearchProducts( $query: String! $first: Int! $after: String $sortKey: SearchSortKeys $reverse: Boolean $productFilters: [ProductFilter!] ) { search( query: $query first: $first after: $after types: PRODUCT sortKey: $sortKey reverse: $reverse productFilters: $productFilters ) { totalCount pageInfo { hasNextPage endCursor } productFilters { id label type values { id label count input } } edges { node { ... on Product { ...ProductFragment } } } } } `; // Lightweight variant for the autocomplete dropdown — just enough to render a // row, so the dialog stays responsive while typing. export const SEARCH_SUGGESTIONS_QUERY = ` query SearchSuggestions($query: String!, $first: Int!) { search(query: $query, first: $first, types: PRODUCT) { totalCount edges { node { ... on Product { id title handle featuredImage { url altText } priceRange { minVariantPrice { amount currencyCode } } } } } } } `;