// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark

part of 'all_product_bloc.dart';

// **************************************************************************
// FreezedGenerator
// **************************************************************************

T _$identity<T>(T value) => value;

final _privateConstructorUsedError = UnsupportedError(
    'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');

/// @nodoc
mixin _$AllProductEvent {
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() started,
    required TResult Function() getAllProducts,
    required TResult Function(int categoryId) getAllProductsByCategory,
    required TResult Function(Product product, XFile? image) updateProduct,
    required TResult Function(String query) searchProduct,
    required TResult Function() fetchAll,
    required TResult Function(Product product, XFile image) addProduct,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? started,
    TResult? Function()? getAllProducts,
    TResult? Function(int categoryId)? getAllProductsByCategory,
    TResult? Function(Product product, XFile? image)? updateProduct,
    TResult? Function(String query)? searchProduct,
    TResult? Function()? fetchAll,
    TResult? Function(Product product, XFile image)? addProduct,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? started,
    TResult Function()? getAllProducts,
    TResult Function(int categoryId)? getAllProductsByCategory,
    TResult Function(Product product, XFile? image)? updateProduct,
    TResult Function(String query)? searchProduct,
    TResult Function()? fetchAll,
    TResult Function(Product product, XFile image)? addProduct,
    required TResult orElse(),
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Started value) started,
    required TResult Function(_GetAllProducts value) getAllProducts,
    required TResult Function(_GetAllProductsByCategory value)
        getAllProductsByCategory,
    required TResult Function(_UpdateProduct value) updateProduct,
    required TResult Function(_SearchProduct value) searchProduct,
    required TResult Function(_FetchAll value) fetchAll,
    required TResult Function(_AddProduct value) addProduct,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Started value)? started,
    TResult? Function(_GetAllProducts value)? getAllProducts,
    TResult? Function(_GetAllProductsByCategory value)?
        getAllProductsByCategory,
    TResult? Function(_UpdateProduct value)? updateProduct,
    TResult? Function(_SearchProduct value)? searchProduct,
    TResult? Function(_FetchAll value)? fetchAll,
    TResult? Function(_AddProduct value)? addProduct,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Started value)? started,
    TResult Function(_GetAllProducts value)? getAllProducts,
    TResult Function(_GetAllProductsByCategory value)? getAllProductsByCategory,
    TResult Function(_UpdateProduct value)? updateProduct,
    TResult Function(_SearchProduct value)? searchProduct,
    TResult Function(_FetchAll value)? fetchAll,
    TResult Function(_AddProduct value)? addProduct,
    required TResult orElse(),
  }) =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $AllProductEventCopyWith<$Res> {
  factory $AllProductEventCopyWith(
          AllProductEvent value, $Res Function(AllProductEvent) then) =
      _$AllProductEventCopyWithImpl<$Res, AllProductEvent>;
}

/// @nodoc
class _$AllProductEventCopyWithImpl<$Res, $Val extends AllProductEvent>
    implements $AllProductEventCopyWith<$Res> {
  _$AllProductEventCopyWithImpl(this._value, this._then);

  // ignore: unused_field
  final $Val _value;
  // ignore: unused_field
  final $Res Function($Val) _then;
}

/// @nodoc
abstract class _$$StartedImplCopyWith<$Res> {
  factory _$$StartedImplCopyWith(
          _$StartedImpl value, $Res Function(_$StartedImpl) then) =
      __$$StartedImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$StartedImplCopyWithImpl<$Res>
    extends _$AllProductEventCopyWithImpl<$Res, _$StartedImpl>
    implements _$$StartedImplCopyWith<$Res> {
  __$$StartedImplCopyWithImpl(
      _$StartedImpl _value, $Res Function(_$StartedImpl) _then)
      : super(_value, _then);
}

/// @nodoc

class _$StartedImpl implements _Started {
  const _$StartedImpl();

  @override
  String toString() {
    return 'AllProductEvent.started()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$StartedImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() started,
    required TResult Function() getAllProducts,
    required TResult Function(int categoryId) getAllProductsByCategory,
    required TResult Function(Product product, XFile? image) updateProduct,
    required TResult Function(String query) searchProduct,
    required TResult Function() fetchAll,
    required TResult Function(Product product, XFile image) addProduct,
  }) {
    return started();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? started,
    TResult? Function()? getAllProducts,
    TResult? Function(int categoryId)? getAllProductsByCategory,
    TResult? Function(Product product, XFile? image)? updateProduct,
    TResult? Function(String query)? searchProduct,
    TResult? Function()? fetchAll,
    TResult? Function(Product product, XFile image)? addProduct,
  }) {
    return started?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? started,
    TResult Function()? getAllProducts,
    TResult Function(int categoryId)? getAllProductsByCategory,
    TResult Function(Product product, XFile? image)? updateProduct,
    TResult Function(String query)? searchProduct,
    TResult Function()? fetchAll,
    TResult Function(Product product, XFile image)? addProduct,
    required TResult orElse(),
  }) {
    if (started != null) {
      return started();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Started value) started,
    required TResult Function(_GetAllProducts value) getAllProducts,
    required TResult Function(_GetAllProductsByCategory value)
        getAllProductsByCategory,
    required TResult Function(_UpdateProduct value) updateProduct,
    required TResult Function(_SearchProduct value) searchProduct,
    required TResult Function(_FetchAll value) fetchAll,
    required TResult Function(_AddProduct value) addProduct,
  }) {
    return started(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Started value)? started,
    TResult? Function(_GetAllProducts value)? getAllProducts,
    TResult? Function(_GetAllProductsByCategory value)?
        getAllProductsByCategory,
    TResult? Function(_UpdateProduct value)? updateProduct,
    TResult? Function(_SearchProduct value)? searchProduct,
    TResult? Function(_FetchAll value)? fetchAll,
    TResult? Function(_AddProduct value)? addProduct,
  }) {
    return started?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Started value)? started,
    TResult Function(_GetAllProducts value)? getAllProducts,
    TResult Function(_GetAllProductsByCategory value)? getAllProductsByCategory,
    TResult Function(_UpdateProduct value)? updateProduct,
    TResult Function(_SearchProduct value)? searchProduct,
    TResult Function(_FetchAll value)? fetchAll,
    TResult Function(_AddProduct value)? addProduct,
    required TResult orElse(),
  }) {
    if (started != null) {
      return started(this);
    }
    return orElse();
  }
}

abstract class _Started implements AllProductEvent {
  const factory _Started() = _$StartedImpl;
}

/// @nodoc
abstract class _$$GetAllProductsImplCopyWith<$Res> {
  factory _$$GetAllProductsImplCopyWith(_$GetAllProductsImpl value,
          $Res Function(_$GetAllProductsImpl) then) =
      __$$GetAllProductsImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$GetAllProductsImplCopyWithImpl<$Res>
    extends _$AllProductEventCopyWithImpl<$Res, _$GetAllProductsImpl>
    implements _$$GetAllProductsImplCopyWith<$Res> {
  __$$GetAllProductsImplCopyWithImpl(
      _$GetAllProductsImpl _value, $Res Function(_$GetAllProductsImpl) _then)
      : super(_value, _then);
}

/// @nodoc

class _$GetAllProductsImpl implements _GetAllProducts {
  const _$GetAllProductsImpl();

  @override
  String toString() {
    return 'AllProductEvent.getAllProducts()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$GetAllProductsImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() started,
    required TResult Function() getAllProducts,
    required TResult Function(int categoryId) getAllProductsByCategory,
    required TResult Function(Product product, XFile? image) updateProduct,
    required TResult Function(String query) searchProduct,
    required TResult Function() fetchAll,
    required TResult Function(Product product, XFile image) addProduct,
  }) {
    return getAllProducts();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? started,
    TResult? Function()? getAllProducts,
    TResult? Function(int categoryId)? getAllProductsByCategory,
    TResult? Function(Product product, XFile? image)? updateProduct,
    TResult? Function(String query)? searchProduct,
    TResult? Function()? fetchAll,
    TResult? Function(Product product, XFile image)? addProduct,
  }) {
    return getAllProducts?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? started,
    TResult Function()? getAllProducts,
    TResult Function(int categoryId)? getAllProductsByCategory,
    TResult Function(Product product, XFile? image)? updateProduct,
    TResult Function(String query)? searchProduct,
    TResult Function()? fetchAll,
    TResult Function(Product product, XFile image)? addProduct,
    required TResult orElse(),
  }) {
    if (getAllProducts != null) {
      return getAllProducts();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Started value) started,
    required TResult Function(_GetAllProducts value) getAllProducts,
    required TResult Function(_GetAllProductsByCategory value)
        getAllProductsByCategory,
    required TResult Function(_UpdateProduct value) updateProduct,
    required TResult Function(_SearchProduct value) searchProduct,
    required TResult Function(_FetchAll value) fetchAll,
    required TResult Function(_AddProduct value) addProduct,
  }) {
    return getAllProducts(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Started value)? started,
    TResult? Function(_GetAllProducts value)? getAllProducts,
    TResult? Function(_GetAllProductsByCategory value)?
        getAllProductsByCategory,
    TResult? Function(_UpdateProduct value)? updateProduct,
    TResult? Function(_SearchProduct value)? searchProduct,
    TResult? Function(_FetchAll value)? fetchAll,
    TResult? Function(_AddProduct value)? addProduct,
  }) {
    return getAllProducts?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Started value)? started,
    TResult Function(_GetAllProducts value)? getAllProducts,
    TResult Function(_GetAllProductsByCategory value)? getAllProductsByCategory,
    TResult Function(_UpdateProduct value)? updateProduct,
    TResult Function(_SearchProduct value)? searchProduct,
    TResult Function(_FetchAll value)? fetchAll,
    TResult Function(_AddProduct value)? addProduct,
    required TResult orElse(),
  }) {
    if (getAllProducts != null) {
      return getAllProducts(this);
    }
    return orElse();
  }
}

abstract class _GetAllProducts implements AllProductEvent {
  const factory _GetAllProducts() = _$GetAllProductsImpl;
}

/// @nodoc
abstract class _$$GetAllProductsByCategoryImplCopyWith<$Res> {
  factory _$$GetAllProductsByCategoryImplCopyWith(
          _$GetAllProductsByCategoryImpl value,
          $Res Function(_$GetAllProductsByCategoryImpl) then) =
      __$$GetAllProductsByCategoryImplCopyWithImpl<$Res>;
  @useResult
  $Res call({int categoryId});
}

/// @nodoc
class __$$GetAllProductsByCategoryImplCopyWithImpl<$Res>
    extends _$AllProductEventCopyWithImpl<$Res, _$GetAllProductsByCategoryImpl>
    implements _$$GetAllProductsByCategoryImplCopyWith<$Res> {
  __$$GetAllProductsByCategoryImplCopyWithImpl(
      _$GetAllProductsByCategoryImpl _value,
      $Res Function(_$GetAllProductsByCategoryImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? categoryId = null,
  }) {
    return _then(_$GetAllProductsByCategoryImpl(
      null == categoryId
          ? _value.categoryId
          : categoryId // ignore: cast_nullable_to_non_nullable
              as int,
    ));
  }
}

/// @nodoc

class _$GetAllProductsByCategoryImpl implements _GetAllProductsByCategory {
  const _$GetAllProductsByCategoryImpl(this.categoryId);

  @override
  final int categoryId;

  @override
  String toString() {
    return 'AllProductEvent.getAllProductsByCategory(categoryId: $categoryId)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$GetAllProductsByCategoryImpl &&
            (identical(other.categoryId, categoryId) ||
                other.categoryId == categoryId));
  }

  @override
  int get hashCode => Object.hash(runtimeType, categoryId);

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$GetAllProductsByCategoryImplCopyWith<_$GetAllProductsByCategoryImpl>
      get copyWith => __$$GetAllProductsByCategoryImplCopyWithImpl<
          _$GetAllProductsByCategoryImpl>(this, _$identity);

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() started,
    required TResult Function() getAllProducts,
    required TResult Function(int categoryId) getAllProductsByCategory,
    required TResult Function(Product product, XFile? image) updateProduct,
    required TResult Function(String query) searchProduct,
    required TResult Function() fetchAll,
    required TResult Function(Product product, XFile image) addProduct,
  }) {
    return getAllProductsByCategory(categoryId);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? started,
    TResult? Function()? getAllProducts,
    TResult? Function(int categoryId)? getAllProductsByCategory,
    TResult? Function(Product product, XFile? image)? updateProduct,
    TResult? Function(String query)? searchProduct,
    TResult? Function()? fetchAll,
    TResult? Function(Product product, XFile image)? addProduct,
  }) {
    return getAllProductsByCategory?.call(categoryId);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? started,
    TResult Function()? getAllProducts,
    TResult Function(int categoryId)? getAllProductsByCategory,
    TResult Function(Product product, XFile? image)? updateProduct,
    TResult Function(String query)? searchProduct,
    TResult Function()? fetchAll,
    TResult Function(Product product, XFile image)? addProduct,
    required TResult orElse(),
  }) {
    if (getAllProductsByCategory != null) {
      return getAllProductsByCategory(categoryId);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Started value) started,
    required TResult Function(_GetAllProducts value) getAllProducts,
    required TResult Function(_GetAllProductsByCategory value)
        getAllProductsByCategory,
    required TResult Function(_UpdateProduct value) updateProduct,
    required TResult Function(_SearchProduct value) searchProduct,
    required TResult Function(_FetchAll value) fetchAll,
    required TResult Function(_AddProduct value) addProduct,
  }) {
    return getAllProductsByCategory(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Started value)? started,
    TResult? Function(_GetAllProducts value)? getAllProducts,
    TResult? Function(_GetAllProductsByCategory value)?
        getAllProductsByCategory,
    TResult? Function(_UpdateProduct value)? updateProduct,
    TResult? Function(_SearchProduct value)? searchProduct,
    TResult? Function(_FetchAll value)? fetchAll,
    TResult? Function(_AddProduct value)? addProduct,
  }) {
    return getAllProductsByCategory?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Started value)? started,
    TResult Function(_GetAllProducts value)? getAllProducts,
    TResult Function(_GetAllProductsByCategory value)? getAllProductsByCategory,
    TResult Function(_UpdateProduct value)? updateProduct,
    TResult Function(_SearchProduct value)? searchProduct,
    TResult Function(_FetchAll value)? fetchAll,
    TResult Function(_AddProduct value)? addProduct,
    required TResult orElse(),
  }) {
    if (getAllProductsByCategory != null) {
      return getAllProductsByCategory(this);
    }
    return orElse();
  }
}

abstract class _GetAllProductsByCategory implements AllProductEvent {
  const factory _GetAllProductsByCategory(final int categoryId) =
      _$GetAllProductsByCategoryImpl;

  int get categoryId;
  @JsonKey(ignore: true)
  _$$GetAllProductsByCategoryImplCopyWith<_$GetAllProductsByCategoryImpl>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$UpdateProductImplCopyWith<$Res> {
  factory _$$UpdateProductImplCopyWith(
          _$UpdateProductImpl value, $Res Function(_$UpdateProductImpl) then) =
      __$$UpdateProductImplCopyWithImpl<$Res>;
  @useResult
  $Res call({Product product, XFile? image});
}

/// @nodoc
class __$$UpdateProductImplCopyWithImpl<$Res>
    extends _$AllProductEventCopyWithImpl<$Res, _$UpdateProductImpl>
    implements _$$UpdateProductImplCopyWith<$Res> {
  __$$UpdateProductImplCopyWithImpl(
      _$UpdateProductImpl _value, $Res Function(_$UpdateProductImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? product = null,
    Object? image = freezed,
  }) {
    return _then(_$UpdateProductImpl(
      null == product
          ? _value.product
          : product // ignore: cast_nullable_to_non_nullable
              as Product,
      freezed == image
          ? _value.image
          : image // ignore: cast_nullable_to_non_nullable
              as XFile?,
    ));
  }
}

/// @nodoc

class _$UpdateProductImpl implements _UpdateProduct {
  const _$UpdateProductImpl(this.product, this.image);

  @override
  final Product product;
  @override
  final XFile? image;

  @override
  String toString() {
    return 'AllProductEvent.updateProduct(product: $product, image: $image)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$UpdateProductImpl &&
            (identical(other.product, product) || other.product == product) &&
            (identical(other.image, image) || other.image == image));
  }

  @override
  int get hashCode => Object.hash(runtimeType, product, image);

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$UpdateProductImplCopyWith<_$UpdateProductImpl> get copyWith =>
      __$$UpdateProductImplCopyWithImpl<_$UpdateProductImpl>(this, _$identity);

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() started,
    required TResult Function() getAllProducts,
    required TResult Function(int categoryId) getAllProductsByCategory,
    required TResult Function(Product product, XFile? image) updateProduct,
    required TResult Function(String query) searchProduct,
    required TResult Function() fetchAll,
    required TResult Function(Product product, XFile image) addProduct,
  }) {
    return updateProduct(product, image);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? started,
    TResult? Function()? getAllProducts,
    TResult? Function(int categoryId)? getAllProductsByCategory,
    TResult? Function(Product product, XFile? image)? updateProduct,
    TResult? Function(String query)? searchProduct,
    TResult? Function()? fetchAll,
    TResult? Function(Product product, XFile image)? addProduct,
  }) {
    return updateProduct?.call(product, image);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? started,
    TResult Function()? getAllProducts,
    TResult Function(int categoryId)? getAllProductsByCategory,
    TResult Function(Product product, XFile? image)? updateProduct,
    TResult Function(String query)? searchProduct,
    TResult Function()? fetchAll,
    TResult Function(Product product, XFile image)? addProduct,
    required TResult orElse(),
  }) {
    if (updateProduct != null) {
      return updateProduct(product, image);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Started value) started,
    required TResult Function(_GetAllProducts value) getAllProducts,
    required TResult Function(_GetAllProductsByCategory value)
        getAllProductsByCategory,
    required TResult Function(_UpdateProduct value) updateProduct,
    required TResult Function(_SearchProduct value) searchProduct,
    required TResult Function(_FetchAll value) fetchAll,
    required TResult Function(_AddProduct value) addProduct,
  }) {
    return updateProduct(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Started value)? started,
    TResult? Function(_GetAllProducts value)? getAllProducts,
    TResult? Function(_GetAllProductsByCategory value)?
        getAllProductsByCategory,
    TResult? Function(_UpdateProduct value)? updateProduct,
    TResult? Function(_SearchProduct value)? searchProduct,
    TResult? Function(_FetchAll value)? fetchAll,
    TResult? Function(_AddProduct value)? addProduct,
  }) {
    return updateProduct?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Started value)? started,
    TResult Function(_GetAllProducts value)? getAllProducts,
    TResult Function(_GetAllProductsByCategory value)? getAllProductsByCategory,
    TResult Function(_UpdateProduct value)? updateProduct,
    TResult Function(_SearchProduct value)? searchProduct,
    TResult Function(_FetchAll value)? fetchAll,
    TResult Function(_AddProduct value)? addProduct,
    required TResult orElse(),
  }) {
    if (updateProduct != null) {
      return updateProduct(this);
    }
    return orElse();
  }
}

abstract class _UpdateProduct implements AllProductEvent {
  const factory _UpdateProduct(final Product product, final XFile? image) =
      _$UpdateProductImpl;

  Product get product;
  XFile? get image;
  @JsonKey(ignore: true)
  _$$UpdateProductImplCopyWith<_$UpdateProductImpl> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$SearchProductImplCopyWith<$Res> {
  factory _$$SearchProductImplCopyWith(
          _$SearchProductImpl value, $Res Function(_$SearchProductImpl) then) =
      __$$SearchProductImplCopyWithImpl<$Res>;
  @useResult
  $Res call({String query});
}

/// @nodoc
class __$$SearchProductImplCopyWithImpl<$Res>
    extends _$AllProductEventCopyWithImpl<$Res, _$SearchProductImpl>
    implements _$$SearchProductImplCopyWith<$Res> {
  __$$SearchProductImplCopyWithImpl(
      _$SearchProductImpl _value, $Res Function(_$SearchProductImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? query = null,
  }) {
    return _then(_$SearchProductImpl(
      null == query
          ? _value.query
          : query // ignore: cast_nullable_to_non_nullable
              as String,
    ));
  }
}

/// @nodoc

class _$SearchProductImpl implements _SearchProduct {
  const _$SearchProductImpl(this.query);

  @override
  final String query;

  @override
  String toString() {
    return 'AllProductEvent.searchProduct(query: $query)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$SearchProductImpl &&
            (identical(other.query, query) || other.query == query));
  }

  @override
  int get hashCode => Object.hash(runtimeType, query);

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$SearchProductImplCopyWith<_$SearchProductImpl> get copyWith =>
      __$$SearchProductImplCopyWithImpl<_$SearchProductImpl>(this, _$identity);

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() started,
    required TResult Function() getAllProducts,
    required TResult Function(int categoryId) getAllProductsByCategory,
    required TResult Function(Product product, XFile? image) updateProduct,
    required TResult Function(String query) searchProduct,
    required TResult Function() fetchAll,
    required TResult Function(Product product, XFile image) addProduct,
  }) {
    return searchProduct(query);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? started,
    TResult? Function()? getAllProducts,
    TResult? Function(int categoryId)? getAllProductsByCategory,
    TResult? Function(Product product, XFile? image)? updateProduct,
    TResult? Function(String query)? searchProduct,
    TResult? Function()? fetchAll,
    TResult? Function(Product product, XFile image)? addProduct,
  }) {
    return searchProduct?.call(query);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? started,
    TResult Function()? getAllProducts,
    TResult Function(int categoryId)? getAllProductsByCategory,
    TResult Function(Product product, XFile? image)? updateProduct,
    TResult Function(String query)? searchProduct,
    TResult Function()? fetchAll,
    TResult Function(Product product, XFile image)? addProduct,
    required TResult orElse(),
  }) {
    if (searchProduct != null) {
      return searchProduct(query);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Started value) started,
    required TResult Function(_GetAllProducts value) getAllProducts,
    required TResult Function(_GetAllProductsByCategory value)
        getAllProductsByCategory,
    required TResult Function(_UpdateProduct value) updateProduct,
    required TResult Function(_SearchProduct value) searchProduct,
    required TResult Function(_FetchAll value) fetchAll,
    required TResult Function(_AddProduct value) addProduct,
  }) {
    return searchProduct(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Started value)? started,
    TResult? Function(_GetAllProducts value)? getAllProducts,
    TResult? Function(_GetAllProductsByCategory value)?
        getAllProductsByCategory,
    TResult? Function(_UpdateProduct value)? updateProduct,
    TResult? Function(_SearchProduct value)? searchProduct,
    TResult? Function(_FetchAll value)? fetchAll,
    TResult? Function(_AddProduct value)? addProduct,
  }) {
    return searchProduct?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Started value)? started,
    TResult Function(_GetAllProducts value)? getAllProducts,
    TResult Function(_GetAllProductsByCategory value)? getAllProductsByCategory,
    TResult Function(_UpdateProduct value)? updateProduct,
    TResult Function(_SearchProduct value)? searchProduct,
    TResult Function(_FetchAll value)? fetchAll,
    TResult Function(_AddProduct value)? addProduct,
    required TResult orElse(),
  }) {
    if (searchProduct != null) {
      return searchProduct(this);
    }
    return orElse();
  }
}

abstract class _SearchProduct implements AllProductEvent {
  const factory _SearchProduct(final String query) = _$SearchProductImpl;

  String get query;
  @JsonKey(ignore: true)
  _$$SearchProductImplCopyWith<_$SearchProductImpl> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$FetchAllImplCopyWith<$Res> {
  factory _$$FetchAllImplCopyWith(
          _$FetchAllImpl value, $Res Function(_$FetchAllImpl) then) =
      __$$FetchAllImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$FetchAllImplCopyWithImpl<$Res>
    extends _$AllProductEventCopyWithImpl<$Res, _$FetchAllImpl>
    implements _$$FetchAllImplCopyWith<$Res> {
  __$$FetchAllImplCopyWithImpl(
      _$FetchAllImpl _value, $Res Function(_$FetchAllImpl) _then)
      : super(_value, _then);
}

/// @nodoc

class _$FetchAllImpl implements _FetchAll {
  const _$FetchAllImpl();

  @override
  String toString() {
    return 'AllProductEvent.fetchAll()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$FetchAllImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() started,
    required TResult Function() getAllProducts,
    required TResult Function(int categoryId) getAllProductsByCategory,
    required TResult Function(Product product, XFile? image) updateProduct,
    required TResult Function(String query) searchProduct,
    required TResult Function() fetchAll,
    required TResult Function(Product product, XFile image) addProduct,
  }) {
    return fetchAll();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? started,
    TResult? Function()? getAllProducts,
    TResult? Function(int categoryId)? getAllProductsByCategory,
    TResult? Function(Product product, XFile? image)? updateProduct,
    TResult? Function(String query)? searchProduct,
    TResult? Function()? fetchAll,
    TResult? Function(Product product, XFile image)? addProduct,
  }) {
    return fetchAll?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? started,
    TResult Function()? getAllProducts,
    TResult Function(int categoryId)? getAllProductsByCategory,
    TResult Function(Product product, XFile? image)? updateProduct,
    TResult Function(String query)? searchProduct,
    TResult Function()? fetchAll,
    TResult Function(Product product, XFile image)? addProduct,
    required TResult orElse(),
  }) {
    if (fetchAll != null) {
      return fetchAll();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Started value) started,
    required TResult Function(_GetAllProducts value) getAllProducts,
    required TResult Function(_GetAllProductsByCategory value)
        getAllProductsByCategory,
    required TResult Function(_UpdateProduct value) updateProduct,
    required TResult Function(_SearchProduct value) searchProduct,
    required TResult Function(_FetchAll value) fetchAll,
    required TResult Function(_AddProduct value) addProduct,
  }) {
    return fetchAll(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Started value)? started,
    TResult? Function(_GetAllProducts value)? getAllProducts,
    TResult? Function(_GetAllProductsByCategory value)?
        getAllProductsByCategory,
    TResult? Function(_UpdateProduct value)? updateProduct,
    TResult? Function(_SearchProduct value)? searchProduct,
    TResult? Function(_FetchAll value)? fetchAll,
    TResult? Function(_AddProduct value)? addProduct,
  }) {
    return fetchAll?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Started value)? started,
    TResult Function(_GetAllProducts value)? getAllProducts,
    TResult Function(_GetAllProductsByCategory value)? getAllProductsByCategory,
    TResult Function(_UpdateProduct value)? updateProduct,
    TResult Function(_SearchProduct value)? searchProduct,
    TResult Function(_FetchAll value)? fetchAll,
    TResult Function(_AddProduct value)? addProduct,
    required TResult orElse(),
  }) {
    if (fetchAll != null) {
      return fetchAll(this);
    }
    return orElse();
  }
}

abstract class _FetchAll implements AllProductEvent {
  const factory _FetchAll() = _$FetchAllImpl;
}

/// @nodoc
abstract class _$$AddProductImplCopyWith<$Res> {
  factory _$$AddProductImplCopyWith(
          _$AddProductImpl value, $Res Function(_$AddProductImpl) then) =
      __$$AddProductImplCopyWithImpl<$Res>;
  @useResult
  $Res call({Product product, XFile image});
}

/// @nodoc
class __$$AddProductImplCopyWithImpl<$Res>
    extends _$AllProductEventCopyWithImpl<$Res, _$AddProductImpl>
    implements _$$AddProductImplCopyWith<$Res> {
  __$$AddProductImplCopyWithImpl(
      _$AddProductImpl _value, $Res Function(_$AddProductImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? product = null,
    Object? image = null,
  }) {
    return _then(_$AddProductImpl(
      null == product
          ? _value.product
          : product // ignore: cast_nullable_to_non_nullable
              as Product,
      null == image
          ? _value.image
          : image // ignore: cast_nullable_to_non_nullable
              as XFile,
    ));
  }
}

/// @nodoc

class _$AddProductImpl implements _AddProduct {
  const _$AddProductImpl(this.product, this.image);

  @override
  final Product product;
  @override
  final XFile image;

  @override
  String toString() {
    return 'AllProductEvent.addProduct(product: $product, image: $image)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$AddProductImpl &&
            (identical(other.product, product) || other.product == product) &&
            (identical(other.image, image) || other.image == image));
  }

  @override
  int get hashCode => Object.hash(runtimeType, product, image);

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$AddProductImplCopyWith<_$AddProductImpl> get copyWith =>
      __$$AddProductImplCopyWithImpl<_$AddProductImpl>(this, _$identity);

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() started,
    required TResult Function() getAllProducts,
    required TResult Function(int categoryId) getAllProductsByCategory,
    required TResult Function(Product product, XFile? image) updateProduct,
    required TResult Function(String query) searchProduct,
    required TResult Function() fetchAll,
    required TResult Function(Product product, XFile image) addProduct,
  }) {
    return addProduct(product, image);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? started,
    TResult? Function()? getAllProducts,
    TResult? Function(int categoryId)? getAllProductsByCategory,
    TResult? Function(Product product, XFile? image)? updateProduct,
    TResult? Function(String query)? searchProduct,
    TResult? Function()? fetchAll,
    TResult? Function(Product product, XFile image)? addProduct,
  }) {
    return addProduct?.call(product, image);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? started,
    TResult Function()? getAllProducts,
    TResult Function(int categoryId)? getAllProductsByCategory,
    TResult Function(Product product, XFile? image)? updateProduct,
    TResult Function(String query)? searchProduct,
    TResult Function()? fetchAll,
    TResult Function(Product product, XFile image)? addProduct,
    required TResult orElse(),
  }) {
    if (addProduct != null) {
      return addProduct(product, image);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Started value) started,
    required TResult Function(_GetAllProducts value) getAllProducts,
    required TResult Function(_GetAllProductsByCategory value)
        getAllProductsByCategory,
    required TResult Function(_UpdateProduct value) updateProduct,
    required TResult Function(_SearchProduct value) searchProduct,
    required TResult Function(_FetchAll value) fetchAll,
    required TResult Function(_AddProduct value) addProduct,
  }) {
    return addProduct(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Started value)? started,
    TResult? Function(_GetAllProducts value)? getAllProducts,
    TResult? Function(_GetAllProductsByCategory value)?
        getAllProductsByCategory,
    TResult? Function(_UpdateProduct value)? updateProduct,
    TResult? Function(_SearchProduct value)? searchProduct,
    TResult? Function(_FetchAll value)? fetchAll,
    TResult? Function(_AddProduct value)? addProduct,
  }) {
    return addProduct?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Started value)? started,
    TResult Function(_GetAllProducts value)? getAllProducts,
    TResult Function(_GetAllProductsByCategory value)? getAllProductsByCategory,
    TResult Function(_UpdateProduct value)? updateProduct,
    TResult Function(_SearchProduct value)? searchProduct,
    TResult Function(_FetchAll value)? fetchAll,
    TResult Function(_AddProduct value)? addProduct,
    required TResult orElse(),
  }) {
    if (addProduct != null) {
      return addProduct(this);
    }
    return orElse();
  }
}

abstract class _AddProduct implements AllProductEvent {
  const factory _AddProduct(final Product product, final XFile image) =
      _$AddProductImpl;

  Product get product;
  XFile get image;
  @JsonKey(ignore: true)
  _$$AddProductImplCopyWith<_$AddProductImpl> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
mixin _$AllProductState {
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() initial,
    required TResult Function() loading,
    required TResult Function(List<Product> products) loaded,
    required TResult Function(String message) error,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? initial,
    TResult? Function()? loading,
    TResult? Function(List<Product> products)? loaded,
    TResult? Function(String message)? error,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? initial,
    TResult Function()? loading,
    TResult Function(List<Product> products)? loaded,
    TResult Function(String message)? error,
    required TResult orElse(),
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Initial value) initial,
    required TResult Function(_Loading value) loading,
    required TResult Function(_Loaded value) loaded,
    required TResult Function(_Error value) error,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Initial value)? initial,
    TResult? Function(_Loading value)? loading,
    TResult? Function(_Loaded value)? loaded,
    TResult? Function(_Error value)? error,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Initial value)? initial,
    TResult Function(_Loading value)? loading,
    TResult Function(_Loaded value)? loaded,
    TResult Function(_Error value)? error,
    required TResult orElse(),
  }) =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $AllProductStateCopyWith<$Res> {
  factory $AllProductStateCopyWith(
          AllProductState value, $Res Function(AllProductState) then) =
      _$AllProductStateCopyWithImpl<$Res, AllProductState>;
}

/// @nodoc
class _$AllProductStateCopyWithImpl<$Res, $Val extends AllProductState>
    implements $AllProductStateCopyWith<$Res> {
  _$AllProductStateCopyWithImpl(this._value, this._then);

  // ignore: unused_field
  final $Val _value;
  // ignore: unused_field
  final $Res Function($Val) _then;
}

/// @nodoc
abstract class _$$InitialImplCopyWith<$Res> {
  factory _$$InitialImplCopyWith(
          _$InitialImpl value, $Res Function(_$InitialImpl) then) =
      __$$InitialImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$InitialImplCopyWithImpl<$Res>
    extends _$AllProductStateCopyWithImpl<$Res, _$InitialImpl>
    implements _$$InitialImplCopyWith<$Res> {
  __$$InitialImplCopyWithImpl(
      _$InitialImpl _value, $Res Function(_$InitialImpl) _then)
      : super(_value, _then);
}

/// @nodoc

class _$InitialImpl implements _Initial {
  const _$InitialImpl();

  @override
  String toString() {
    return 'AllProductState.initial()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$InitialImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() initial,
    required TResult Function() loading,
    required TResult Function(List<Product> products) loaded,
    required TResult Function(String message) error,
  }) {
    return initial();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? initial,
    TResult? Function()? loading,
    TResult? Function(List<Product> products)? loaded,
    TResult? Function(String message)? error,
  }) {
    return initial?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? initial,
    TResult Function()? loading,
    TResult Function(List<Product> products)? loaded,
    TResult Function(String message)? error,
    required TResult orElse(),
  }) {
    if (initial != null) {
      return initial();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Initial value) initial,
    required TResult Function(_Loading value) loading,
    required TResult Function(_Loaded value) loaded,
    required TResult Function(_Error value) error,
  }) {
    return initial(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Initial value)? initial,
    TResult? Function(_Loading value)? loading,
    TResult? Function(_Loaded value)? loaded,
    TResult? Function(_Error value)? error,
  }) {
    return initial?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Initial value)? initial,
    TResult Function(_Loading value)? loading,
    TResult Function(_Loaded value)? loaded,
    TResult Function(_Error value)? error,
    required TResult orElse(),
  }) {
    if (initial != null) {
      return initial(this);
    }
    return orElse();
  }
}

abstract class _Initial implements AllProductState {
  const factory _Initial() = _$InitialImpl;
}

/// @nodoc
abstract class _$$LoadingImplCopyWith<$Res> {
  factory _$$LoadingImplCopyWith(
          _$LoadingImpl value, $Res Function(_$LoadingImpl) then) =
      __$$LoadingImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$LoadingImplCopyWithImpl<$Res>
    extends _$AllProductStateCopyWithImpl<$Res, _$LoadingImpl>
    implements _$$LoadingImplCopyWith<$Res> {
  __$$LoadingImplCopyWithImpl(
      _$LoadingImpl _value, $Res Function(_$LoadingImpl) _then)
      : super(_value, _then);
}

/// @nodoc

class _$LoadingImpl implements _Loading {
  const _$LoadingImpl();

  @override
  String toString() {
    return 'AllProductState.loading()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$LoadingImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() initial,
    required TResult Function() loading,
    required TResult Function(List<Product> products) loaded,
    required TResult Function(String message) error,
  }) {
    return loading();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? initial,
    TResult? Function()? loading,
    TResult? Function(List<Product> products)? loaded,
    TResult? Function(String message)? error,
  }) {
    return loading?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? initial,
    TResult Function()? loading,
    TResult Function(List<Product> products)? loaded,
    TResult Function(String message)? error,
    required TResult orElse(),
  }) {
    if (loading != null) {
      return loading();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Initial value) initial,
    required TResult Function(_Loading value) loading,
    required TResult Function(_Loaded value) loaded,
    required TResult Function(_Error value) error,
  }) {
    return loading(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Initial value)? initial,
    TResult? Function(_Loading value)? loading,
    TResult? Function(_Loaded value)? loaded,
    TResult? Function(_Error value)? error,
  }) {
    return loading?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Initial value)? initial,
    TResult Function(_Loading value)? loading,
    TResult Function(_Loaded value)? loaded,
    TResult Function(_Error value)? error,
    required TResult orElse(),
  }) {
    if (loading != null) {
      return loading(this);
    }
    return orElse();
  }
}

abstract class _Loading implements AllProductState {
  const factory _Loading() = _$LoadingImpl;
}

/// @nodoc
abstract class _$$LoadedImplCopyWith<$Res> {
  factory _$$LoadedImplCopyWith(
          _$LoadedImpl value, $Res Function(_$LoadedImpl) then) =
      __$$LoadedImplCopyWithImpl<$Res>;
  @useResult
  $Res call({List<Product> products});
}

/// @nodoc
class __$$LoadedImplCopyWithImpl<$Res>
    extends _$AllProductStateCopyWithImpl<$Res, _$LoadedImpl>
    implements _$$LoadedImplCopyWith<$Res> {
  __$$LoadedImplCopyWithImpl(
      _$LoadedImpl _value, $Res Function(_$LoadedImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? products = null,
  }) {
    return _then(_$LoadedImpl(
      null == products
          ? _value._products
          : products // ignore: cast_nullable_to_non_nullable
              as List<Product>,
    ));
  }
}

/// @nodoc

class _$LoadedImpl implements _Loaded {
  const _$LoadedImpl(final List<Product> products) : _products = products;

  final List<Product> _products;
  @override
  List<Product> get products {
    if (_products is EqualUnmodifiableListView) return _products;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_products);
  }

  @override
  String toString() {
    return 'AllProductState.loaded(products: $products)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$LoadedImpl &&
            const DeepCollectionEquality().equals(other._products, _products));
  }

  @override
  int get hashCode =>
      Object.hash(runtimeType, const DeepCollectionEquality().hash(_products));

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$LoadedImplCopyWith<_$LoadedImpl> get copyWith =>
      __$$LoadedImplCopyWithImpl<_$LoadedImpl>(this, _$identity);

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() initial,
    required TResult Function() loading,
    required TResult Function(List<Product> products) loaded,
    required TResult Function(String message) error,
  }) {
    return loaded(products);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? initial,
    TResult? Function()? loading,
    TResult? Function(List<Product> products)? loaded,
    TResult? Function(String message)? error,
  }) {
    return loaded?.call(products);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? initial,
    TResult Function()? loading,
    TResult Function(List<Product> products)? loaded,
    TResult Function(String message)? error,
    required TResult orElse(),
  }) {
    if (loaded != null) {
      return loaded(products);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Initial value) initial,
    required TResult Function(_Loading value) loading,
    required TResult Function(_Loaded value) loaded,
    required TResult Function(_Error value) error,
  }) {
    return loaded(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Initial value)? initial,
    TResult? Function(_Loading value)? loading,
    TResult? Function(_Loaded value)? loaded,
    TResult? Function(_Error value)? error,
  }) {
    return loaded?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Initial value)? initial,
    TResult Function(_Loading value)? loading,
    TResult Function(_Loaded value)? loaded,
    TResult Function(_Error value)? error,
    required TResult orElse(),
  }) {
    if (loaded != null) {
      return loaded(this);
    }
    return orElse();
  }
}

abstract class _Loaded implements AllProductState {
  const factory _Loaded(final List<Product> products) = _$LoadedImpl;

  List<Product> get products;
  @JsonKey(ignore: true)
  _$$LoadedImplCopyWith<_$LoadedImpl> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$ErrorImplCopyWith<$Res> {
  factory _$$ErrorImplCopyWith(
          _$ErrorImpl value, $Res Function(_$ErrorImpl) then) =
      __$$ErrorImplCopyWithImpl<$Res>;
  @useResult
  $Res call({String message});
}

/// @nodoc
class __$$ErrorImplCopyWithImpl<$Res>
    extends _$AllProductStateCopyWithImpl<$Res, _$ErrorImpl>
    implements _$$ErrorImplCopyWith<$Res> {
  __$$ErrorImplCopyWithImpl(
      _$ErrorImpl _value, $Res Function(_$ErrorImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? message = null,
  }) {
    return _then(_$ErrorImpl(
      null == message
          ? _value.message
          : message // ignore: cast_nullable_to_non_nullable
              as String,
    ));
  }
}

/// @nodoc

class _$ErrorImpl implements _Error {
  const _$ErrorImpl(this.message);

  @override
  final String message;

  @override
  String toString() {
    return 'AllProductState.error(message: $message)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ErrorImpl &&
            (identical(other.message, message) || other.message == message));
  }

  @override
  int get hashCode => Object.hash(runtimeType, message);

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$ErrorImplCopyWith<_$ErrorImpl> get copyWith =>
      __$$ErrorImplCopyWithImpl<_$ErrorImpl>(this, _$identity);

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() initial,
    required TResult Function() loading,
    required TResult Function(List<Product> products) loaded,
    required TResult Function(String message) error,
  }) {
    return error(message);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? initial,
    TResult? Function()? loading,
    TResult? Function(List<Product> products)? loaded,
    TResult? Function(String message)? error,
  }) {
    return error?.call(message);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? initial,
    TResult Function()? loading,
    TResult Function(List<Product> products)? loaded,
    TResult Function(String message)? error,
    required TResult orElse(),
  }) {
    if (error != null) {
      return error(message);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Initial value) initial,
    required TResult Function(_Loading value) loading,
    required TResult Function(_Loaded value) loaded,
    required TResult Function(_Error value) error,
  }) {
    return error(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Initial value)? initial,
    TResult? Function(_Loading value)? loading,
    TResult? Function(_Loaded value)? loaded,
    TResult? Function(_Error value)? error,
  }) {
    return error?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Initial value)? initial,
    TResult Function(_Loading value)? loading,
    TResult Function(_Loaded value)? loaded,
    TResult Function(_Error value)? error,
    required TResult orElse(),
  }) {
    if (error != null) {
      return error(this);
    }
    return orElse();
  }
}

abstract class _Error implements AllProductState {
  const factory _Error(final String message) = _$ErrorImpl;

  String get message;
  @JsonKey(ignore: true)
  _$$ErrorImplCopyWith<_$ErrorImpl> get copyWith =>
      throw _privateConstructorUsedError;
}
