// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'location_provider.dart';

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

// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint, type=warning
/// Provides instance of LocationRemoteDataSource

@ProviderFor(locationRemoteDataSource)
const locationRemoteDataSourceProvider = LocationRemoteDataSourceProvider._();

/// Provides instance of LocationRemoteDataSource

final class LocationRemoteDataSourceProvider
    extends
        $FunctionalProvider<
          AsyncValue<LocationRemoteDataSource>,
          LocationRemoteDataSource,
          FutureOr<LocationRemoteDataSource>
        >
    with
        $FutureModifier<LocationRemoteDataSource>,
        $FutureProvider<LocationRemoteDataSource> {
  /// Provides instance of LocationRemoteDataSource
  const LocationRemoteDataSourceProvider._()
    : super(
        from: null,
        argument: null,
        retry: null,
        name: r'locationRemoteDataSourceProvider',
        isAutoDispose: true,
        dependencies: null,
        $allTransitiveDependencies: null,
      );

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

  @$internal
  @override
  $FutureProviderElement<LocationRemoteDataSource> $createElement(
    $ProviderPointer pointer,
  ) => $FutureProviderElement(pointer);

  @override
  FutureOr<LocationRemoteDataSource> create(Ref ref) {
    return locationRemoteDataSource(ref);
  }
}

String _$locationRemoteDataSourceHash() =>
    r'f66b9d96a2c01c00c90a2c8c0414b027d8079e0f';

/// Provides instance of LocationLocalDataSource

@ProviderFor(locationLocalDataSource)
const locationLocalDataSourceProvider = LocationLocalDataSourceProvider._();

/// Provides instance of LocationLocalDataSource

final class LocationLocalDataSourceProvider
    extends
        $FunctionalProvider<
          LocationLocalDataSource,
          LocationLocalDataSource,
          LocationLocalDataSource
        >
    with $Provider<LocationLocalDataSource> {
  /// Provides instance of LocationLocalDataSource
  const LocationLocalDataSourceProvider._()
    : super(
        from: null,
        argument: null,
        retry: null,
        name: r'locationLocalDataSourceProvider',
        isAutoDispose: true,
        dependencies: null,
        $allTransitiveDependencies: null,
      );

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

  @$internal
  @override
  $ProviderElement<LocationLocalDataSource> $createElement(
    $ProviderPointer pointer,
  ) => $ProviderElement(pointer);

  @override
  LocationLocalDataSource create(Ref ref) {
    return locationLocalDataSource(ref);
  }

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

String _$locationLocalDataSourceHash() =>
    r'160b82535ae14c4644b4285243a03335d472f584';

/// Provides instance of LocationRepository

@ProviderFor(locationRepository)
const locationRepositoryProvider = LocationRepositoryProvider._();

/// Provides instance of LocationRepository

final class LocationRepositoryProvider
    extends
        $FunctionalProvider<
          AsyncValue<LocationRepository>,
          LocationRepository,
          FutureOr<LocationRepository>
        >
    with
        $FutureModifier<LocationRepository>,
        $FutureProvider<LocationRepository> {
  /// Provides instance of LocationRepository
  const LocationRepositoryProvider._()
    : super(
        from: null,
        argument: null,
        retry: null,
        name: r'locationRepositoryProvider',
        isAutoDispose: true,
        dependencies: null,
        $allTransitiveDependencies: null,
      );

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

  @$internal
  @override
  $FutureProviderElement<LocationRepository> $createElement(
    $ProviderPointer pointer,
  ) => $FutureProviderElement(pointer);

  @override
  FutureOr<LocationRepository> create(Ref ref) {
    return locationRepository(ref);
  }
}

String _$locationRepositoryHash() =>
    r'7ead096fe90803ecc8ef7c27186a59044c306668';

/// Manages list of cities with offline-first approach
///
/// This is the MAIN provider for cities.
/// Returns list of City entities (cached → API).

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

/// Manages list of cities with offline-first approach
///
/// This is the MAIN provider for cities.
/// Returns list of City entities (cached → API).
final class CitiesProvider extends $AsyncNotifierProvider<Cities, List<City>> {
  /// Manages list of cities with offline-first approach
  ///
  /// This is the MAIN provider for cities.
  /// Returns list of City entities (cached → API).
  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'54a7db2bdf4874286493e8631d38cfac7707627e';

/// Manages list of cities with offline-first approach
///
/// This is the MAIN provider for cities.
/// Returns list of City entities (cached → API).

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);
  }
}

/// Manages list of wards for a specific city with offline-first approach
///
/// Uses .family modifier to create a provider per city code.
/// Returns list of Ward entities (cached → API).

@ProviderFor(wards)
const wardsProvider = WardsFamily._();

/// Manages list of wards for a specific city with offline-first approach
///
/// Uses .family modifier to create a provider per city code.
/// Returns list of Ward entities (cached → API).

final class WardsProvider
    extends
        $FunctionalProvider<
          AsyncValue<List<Ward>>,
          List<Ward>,
          FutureOr<List<Ward>>
        >
    with $FutureModifier<List<Ward>>, $FutureProvider<List<Ward>> {
  /// Manages list of wards for a specific city with offline-first approach
  ///
  /// Uses .family modifier to create a provider per city code.
  /// Returns list of Ward entities (cached → API).
  const WardsProvider._({
    required WardsFamily super.from,
    required String super.argument,
  }) : super(
         retry: null,
         name: r'wardsProvider',
         isAutoDispose: true,
         dependencies: null,
         $allTransitiveDependencies: null,
       );

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

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

  @$internal
  @override
  $FutureProviderElement<List<Ward>> $createElement($ProviderPointer pointer) =>
      $FutureProviderElement(pointer);

  @override
  FutureOr<List<Ward>> create(Ref ref) {
    final argument = this.argument as String;
    return wards(ref, argument);
  }

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

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

String _$wardsHash() => r'a680d66a629d6c1beadb3128c29fefca5607f39a';

/// Manages list of wards for a specific city with offline-first approach
///
/// Uses .family modifier to create a provider per city code.
/// Returns list of Ward entities (cached → API).

final class WardsFamily extends $Family
    with $FunctionalFamilyOverride<FutureOr<List<Ward>>, String> {
  const WardsFamily._()
    : super(
        retry: null,
        name: r'wardsProvider',
        dependencies: null,
        $allTransitiveDependencies: null,
        isAutoDispose: true,
      );

  /// Manages list of wards for a specific city with offline-first approach
  ///
  /// Uses .family modifier to create a provider per city code.
  /// Returns list of Ward entities (cached → API).

  WardsProvider call(String cityCode) =>
      WardsProvider._(argument: cityCode, from: this);

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

/// Get city by code

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

/// Get city by code

final class CityByCodeProvider extends $FunctionalProvider<City?, City?, City?>
    with $Provider<City?> {
  /// Get 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'dd5e7296f16d6c78beadc28eb97adf5ba06549a5';

/// Get 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,
      );

  /// Get city by code

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

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

/// Get cities as map (code → City) for easy lookup

@ProviderFor(citiesMap)
const citiesMapProvider = CitiesMapProvider._();

/// Get cities as map (code → City) for easy lookup

final class CitiesMapProvider
    extends
        $FunctionalProvider<
          Map<String, City>,
          Map<String, City>,
          Map<String, City>
        >
    with $Provider<Map<String, City>> {
  /// Get cities as map (code → City) for easy lookup
  const CitiesMapProvider._()
    : super(
        from: null,
        argument: null,
        retry: null,
        name: r'citiesMapProvider',
        isAutoDispose: true,
        dependencies: null,
        $allTransitiveDependencies: null,
      );

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

  @$internal
  @override
  $ProviderElement<Map<String, City>> $createElement(
    $ProviderPointer pointer,
  ) => $ProviderElement(pointer);

  @override
  Map<String, City> create(Ref ref) {
    return citiesMap(ref);
  }

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

String _$citiesMapHash() => r'80d684d68276eac20208d977be382004971738fa';

/// Get wards as map (code → Ward) for a city

@ProviderFor(wardsMap)
const wardsMapProvider = WardsMapFamily._();

/// Get wards as map (code → Ward) for a city

final class WardsMapProvider
    extends
        $FunctionalProvider<
          Map<String, Ward>,
          Map<String, Ward>,
          Map<String, Ward>
        >
    with $Provider<Map<String, Ward>> {
  /// Get wards as map (code → Ward) for a city
  const WardsMapProvider._({
    required WardsMapFamily super.from,
    required String super.argument,
  }) : super(
         retry: null,
         name: r'wardsMapProvider',
         isAutoDispose: true,
         dependencies: null,
         $allTransitiveDependencies: null,
       );

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

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

  @$internal
  @override
  $ProviderElement<Map<String, Ward>> $createElement(
    $ProviderPointer pointer,
  ) => $ProviderElement(pointer);

  @override
  Map<String, Ward> create(Ref ref) {
    final argument = this.argument as String;
    return wardsMap(ref, argument);
  }

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

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

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

String _$wardsMapHash() => r'977cb8eb6974a46a8dbc6a68bea004dc64dcfbb9';

/// Get wards as map (code → Ward) for a city

final class WardsMapFamily extends $Family
    with $FunctionalFamilyOverride<Map<String, Ward>, String> {
  const WardsMapFamily._()
    : super(
        retry: null,
        name: r'wardsMapProvider',
        dependencies: null,
        $allTransitiveDependencies: null,
        isAutoDispose: true,
      );

  /// Get wards as map (code → Ward) for a city

  WardsMapProvider call(String cityCode) =>
      WardsMapProvider._(argument: cityCode, from: this);

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