// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'address_provider.dart';

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

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

@ProviderFor(addressRemoteDataSource)
const addressRemoteDataSourceProvider = AddressRemoteDataSourceProvider._();

/// Provides instance of AddressRemoteDataSource

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

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

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

  @override
  FutureOr<AddressRemoteDataSource> create(Ref ref) {
    return addressRemoteDataSource(ref);
  }
}

String _$addressRemoteDataSourceHash() =>
    r'e244b9f1270d1b81d65b82a9d5b34ead33bd7b79';

/// Provides instance of AddressRepository

@ProviderFor(addressRepository)
const addressRepositoryProvider = AddressRepositoryProvider._();

/// Provides instance of AddressRepository

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

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

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

  @override
  FutureOr<AddressRepository> create(Ref ref) {
    return addressRepository(ref);
  }
}

String _$addressRepositoryHash() => r'87d8fa124d6f32c4f073acd30ba09b1eee5b0227';

/// Manages list of addresses with online-only approach
///
/// This is the MAIN provider for the addresses feature.
/// Returns list of Address entities from the API.
///
/// Online-only: Always fetches from API, no offline caching.
/// Uses keepAlive to prevent unnecessary reloads.
/// Provides refresh() method for pull-to-refresh functionality.

@ProviderFor(Addresses)
const addressesProvider = AddressesProvider._();

/// Manages list of addresses with online-only approach
///
/// This is the MAIN provider for the addresses feature.
/// Returns list of Address entities from the API.
///
/// Online-only: Always fetches from API, no offline caching.
/// Uses keepAlive to prevent unnecessary reloads.
/// Provides refresh() method for pull-to-refresh functionality.
final class AddressesProvider
    extends $AsyncNotifierProvider<Addresses, List<Address>> {
  /// Manages list of addresses with online-only approach
  ///
  /// This is the MAIN provider for the addresses feature.
  /// Returns list of Address entities from the API.
  ///
  /// Online-only: Always fetches from API, no offline caching.
  /// Uses keepAlive to prevent unnecessary reloads.
  /// Provides refresh() method for pull-to-refresh functionality.
  const AddressesProvider._()
    : super(
        from: null,
        argument: null,
        retry: null,
        name: r'addressesProvider',
        isAutoDispose: false,
        dependencies: null,
        $allTransitiveDependencies: null,
      );

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

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

String _$addressesHash() => r'c8018cffc89b03e687052802d3d0cd16cd1d5047';

/// Manages list of addresses with online-only approach
///
/// This is the MAIN provider for the addresses feature.
/// Returns list of Address entities from the API.
///
/// Online-only: Always fetches from API, no offline caching.
/// Uses keepAlive to prevent unnecessary reloads.
/// Provides refresh() method for pull-to-refresh functionality.

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

/// Get the default address
///
/// Derived from the addresses list.
/// Returns the address marked as default, or null if none.

@ProviderFor(defaultAddress)
const defaultAddressProvider = DefaultAddressProvider._();

/// Get the default address
///
/// Derived from the addresses list.
/// Returns the address marked as default, or null if none.

final class DefaultAddressProvider
    extends $FunctionalProvider<Address?, Address?, Address?>
    with $Provider<Address?> {
  /// Get the default address
  ///
  /// Derived from the addresses list.
  /// Returns the address marked as default, or null if none.
  const DefaultAddressProvider._()
    : super(
        from: null,
        argument: null,
        retry: null,
        name: r'defaultAddressProvider',
        isAutoDispose: true,
        dependencies: null,
        $allTransitiveDependencies: null,
      );

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

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

  @override
  Address? create(Ref ref) {
    return defaultAddress(ref);
  }

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

String _$defaultAddressHash() => r'debdc71d6a480cf1ceb9536a4b6d9690aede1d72';

/// Get address count
///
/// Derived from the addresses list.
/// Returns the number of addresses.

@ProviderFor(addressCount)
const addressCountProvider = AddressCountProvider._();

/// Get address count
///
/// Derived from the addresses list.
/// Returns the number of addresses.

final class AddressCountProvider extends $FunctionalProvider<int, int, int>
    with $Provider<int> {
  /// Get address count
  ///
  /// Derived from the addresses list.
  /// Returns the number of addresses.
  const AddressCountProvider._()
    : super(
        from: null,
        argument: null,
        retry: null,
        name: r'addressCountProvider',
        isAutoDispose: true,
        dependencies: null,
        $allTransitiveDependencies: null,
      );

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

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

  @override
  int create(Ref ref) {
    return addressCount(ref);
  }

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

String _$addressCountHash() => r'e4480805fd484cd477fd0f232902afdfdd0ed342';
