// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'search_query_provider.dart';

// **************************************************************************
// RiverpodGenerator
// **************************************************************************

// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint, type=warning
/// Search Query Provider
///
/// Holds the current search query string for filtering products.
/// Default is empty string which shows all products.
///
/// Features:
/// - 1-second debounce delay
/// - Only triggers search with 2+ non-whitespace characters
/// - Auto-clears search when query is empty or too short
///
/// Usage:
/// ```dart
/// // Read the current value
/// final searchQuery = ref.watch(searchQueryProvider);
///
/// // Update the value (will debounce)
/// ref.read(searchQueryProvider.notifier).updateQuery('gạch men');
/// ```

@ProviderFor(SearchQuery)
const searchQueryProvider = SearchQueryProvider._();

/// Search Query Provider
///
/// Holds the current search query string for filtering products.
/// Default is empty string which shows all products.
///
/// Features:
/// - 1-second debounce delay
/// - Only triggers search with 2+ non-whitespace characters
/// - Auto-clears search when query is empty or too short
///
/// Usage:
/// ```dart
/// // Read the current value
/// final searchQuery = ref.watch(searchQueryProvider);
///
/// // Update the value (will debounce)
/// ref.read(searchQueryProvider.notifier).updateQuery('gạch men');
/// ```
final class SearchQueryProvider extends $NotifierProvider<SearchQuery, String> {
  /// Search Query Provider
  ///
  /// Holds the current search query string for filtering products.
  /// Default is empty string which shows all products.
  ///
  /// Features:
  /// - 1-second debounce delay
  /// - Only triggers search with 2+ non-whitespace characters
  /// - Auto-clears search when query is empty or too short
  ///
  /// Usage:
  /// ```dart
  /// // Read the current value
  /// final searchQuery = ref.watch(searchQueryProvider);
  ///
  /// // Update the value (will debounce)
  /// ref.read(searchQueryProvider.notifier).updateQuery('gạch men');
  /// ```
  const SearchQueryProvider._()
    : super(
        from: null,
        argument: null,
        retry: null,
        name: r'searchQueryProvider',
        isAutoDispose: true,
        dependencies: null,
        $allTransitiveDependencies: null,
      );

  @override
  String debugGetCreateSourceHash() => _$searchQueryHash();

  @$internal
  @override
  SearchQuery create() => SearchQuery();

  /// {@macro riverpod.override_with_value}
  Override overrideWithValue(String value) {
    return $ProviderOverride(
      origin: this,
      providerOverride: $SyncValueProvider<String>(value),
    );
  }
}

String _$searchQueryHash() => r'62ee3245dca6a43fb276bee72ba6e6d16238e69b';

/// Search Query Provider
///
/// Holds the current search query string for filtering products.
/// Default is empty string which shows all products.
///
/// Features:
/// - 1-second debounce delay
/// - Only triggers search with 2+ non-whitespace characters
/// - Auto-clears search when query is empty or too short
///
/// Usage:
/// ```dart
/// // Read the current value
/// final searchQuery = ref.watch(searchQueryProvider);
///
/// // Update the value (will debounce)
/// ref.read(searchQueryProvider.notifier).updateQuery('gạch men');
/// ```

abstract class _$SearchQuery extends $Notifier<String> {
  String build();
  @$mustCallSuper
  @override
  void runBuild() {
    final created = build();
    final ref = this.ref as $Ref<String, String>;
    final element =
        ref.element
            as $ClassProviderElement<
              AnyNotifier<String, String>,
              String,
              Object?,
              Object?
            >;
    element.handleValue(ref, created);
  }
}
