// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'cities_provider.dart';

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

// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint, type=warning
/// Cities Provider
///
/// Fetches list of cities from API for registration form.
/// Requires active session (CSRF token and SID).
/// keepAlive: true ensures the cities list persists and doesn't auto-dispose.

@ProviderFor(Cities)
const citiesProvider = CitiesProvider._();

/// Cities Provider
///
/// Fetches list of cities from API for registration form.
/// Requires active session (CSRF token and SID).
/// keepAlive: true ensures the cities list persists and doesn't auto-dispose.
final class CitiesProvider extends $AsyncNotifierProvider<Cities, List<City>> {
  /// Cities Provider
  ///
  /// Fetches list of cities from API for registration form.
  /// Requires active session (CSRF token and SID).
  /// keepAlive: true ensures the cities list persists and doesn't auto-dispose.
  const CitiesProvider._()
    : super(
        from: null,
        argument: null,
        retry: null,
        name: r'citiesProvider',
        isAutoDispose: false,
        dependencies: null,
        $allTransitiveDependencies: null,
      );

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

  @$internal
  @override
  Cities create() => Cities();
}

String _$citiesHash() => r'0de4a7d44e576d74ecd875ddad46d6cb52a38bf8';

/// Cities Provider
///
/// Fetches list of cities from API for registration form.
/// Requires active session (CSRF token and SID).
/// keepAlive: true ensures the cities list persists and doesn't auto-dispose.

abstract class _$Cities extends $AsyncNotifier<List<City>> {
  FutureOr<List<City>> build();
  @$mustCallSuper
  @override
  void runBuild() {
    final created = build();
    final ref = this.ref as $Ref<AsyncValue<List<City>>, List<City>>;
    final element =
        ref.element
            as $ClassProviderElement<
              AnyNotifier<AsyncValue<List<City>>, List<City>>,
              AsyncValue<List<City>>,
              Object?,
              Object?
            >;
    element.handleValue(ref, created);
  }
}

/// Provider to get a specific city by code

@ProviderFor(cityByCode)
const cityByCodeProvider = CityByCodeFamily._();

/// Provider to get a specific city by code

final class CityByCodeProvider extends $FunctionalProvider<City?, City?, City?>
    with $Provider<City?> {
  /// Provider to get a specific city by code
  const CityByCodeProvider._({
    required CityByCodeFamily super.from,
    required String super.argument,
  }) : super(
         retry: null,
         name: r'cityByCodeProvider',
         isAutoDispose: true,
         dependencies: null,
         $allTransitiveDependencies: null,
       );

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

  @override
  String toString() {
    return r'cityByCodeProvider'
        ''
        '($argument)';
  }

  @$internal
  @override
  $ProviderElement<City?> $createElement($ProviderPointer pointer) =>
      $ProviderElement(pointer);

  @override
  City? create(Ref ref) {
    final argument = this.argument as String;
    return cityByCode(ref, argument);
  }

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

  @override
  bool operator ==(Object other) {
    return other is CityByCodeProvider && other.argument == argument;
  }

  @override
  int get hashCode {
    return argument.hashCode;
  }
}

String _$cityByCodeHash() => r'4e4a9a72526b0a366b8697244f2e7e2aedf7cabe';

/// Provider to get a specific city by code

final class CityByCodeFamily extends $Family
    with $FunctionalFamilyOverride<City?, String> {
  const CityByCodeFamily._()
    : super(
        retry: null,
        name: r'cityByCodeProvider',
        dependencies: null,
        $allTransitiveDependencies: null,
        isAutoDispose: true,
      );

  /// Provider to get a specific city by code

  CityByCodeProvider call(String code) =>
      CityByCodeProvider._(argument: code, from: this);

  @override
  String toString() => r'cityByCodeProvider';
}
