// 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 '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#custom-getters-and-methods');

/// @nodoc
mixin _$ProductEvent {
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchMostSaleProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchAllProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchNewProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchLikeProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchDiscountProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchMostSaleShopProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchNewShopProduct,
    required TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)
        fetchProducts,
    required TResult Function() updateState,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult? Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult? Function()? updateState,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult Function()? updateState,
    required TResult orElse(),
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(FetchMostSaleProduct value) fetchMostSaleProduct,
    required TResult Function(FetchAllProduct value) fetchAllProduct,
    required TResult Function(FetchNewProduct value) fetchNewProduct,
    required TResult Function(FetchLikeProduct value) fetchLikeProduct,
    required TResult Function(FetchDiscountProduct value) fetchDiscountProduct,
    required TResult Function(FetchMostSaleShopProduct value)
        fetchMostSaleShopProduct,
    required TResult Function(FetchNewShopProduct value) fetchNewShopProduct,
    required TResult Function(FetchProducts value) fetchProducts,
    required TResult Function(UpdateState value) updateState,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult? Function(FetchAllProduct value)? fetchAllProduct,
    TResult? Function(FetchNewProduct value)? fetchNewProduct,
    TResult? Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult? Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult? Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult? Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult? Function(FetchProducts value)? fetchProducts,
    TResult? Function(UpdateState value)? updateState,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult Function(FetchAllProduct value)? fetchAllProduct,
    TResult Function(FetchNewProduct value)? fetchNewProduct,
    TResult Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult Function(FetchProducts value)? fetchProducts,
    TResult Function(UpdateState value)? updateState,
    required TResult orElse(),
  }) =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $ProductEventCopyWith<$Res> {
  factory $ProductEventCopyWith(
          ProductEvent value, $Res Function(ProductEvent) then) =
      _$ProductEventCopyWithImpl<$Res, ProductEvent>;
}

/// @nodoc
class _$ProductEventCopyWithImpl<$Res, $Val extends ProductEvent>
    implements $ProductEventCopyWith<$Res> {
  _$ProductEventCopyWithImpl(this._value, this._then);

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

/// @nodoc
abstract class _$$FetchMostSaleProductCopyWith<$Res> {
  factory _$$FetchMostSaleProductCopyWith(_$FetchMostSaleProduct value,
          $Res Function(_$FetchMostSaleProduct) then) =
      __$$FetchMostSaleProductCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context, bool? isRefresh, RefreshController? controller});
}

/// @nodoc
class __$$FetchMostSaleProductCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchMostSaleProduct>
    implements _$$FetchMostSaleProductCopyWith<$Res> {
  __$$FetchMostSaleProductCopyWithImpl(_$FetchMostSaleProduct _value,
      $Res Function(_$FetchMostSaleProduct) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchMostSaleProduct(
      context: null == context
          ? _value.context
          : context // ignore: cast_nullable_to_non_nullable
              as BuildContext,
      isRefresh: freezed == isRefresh
          ? _value.isRefresh
          : isRefresh // ignore: cast_nullable_to_non_nullable
              as bool?,
      controller: freezed == controller
          ? _value.controller
          : controller // ignore: cast_nullable_to_non_nullable
              as RefreshController?,
    ));
  }
}

/// @nodoc

class _$FetchMostSaleProduct implements FetchMostSaleProduct {
  const _$FetchMostSaleProduct(
      {required this.context, this.isRefresh, this.controller});

  @override
  final BuildContext context;
  @override
  final bool? isRefresh;
  @override
  final RefreshController? controller;

  @override
  String toString() {
    return 'ProductEvent.fetchMostSaleProduct(context: $context, isRefresh: $isRefresh, controller: $controller)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchMostSaleProduct &&
            (identical(other.context, context) || other.context == context) &&
            (identical(other.isRefresh, isRefresh) ||
                other.isRefresh == isRefresh) &&
            (identical(other.controller, controller) ||
                other.controller == controller));
  }

  @override
  int get hashCode => Object.hash(runtimeType, context, isRefresh, controller);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchMostSaleProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchAllProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchNewProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchLikeProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchDiscountProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchMostSaleShopProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchNewShopProduct,
    required TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)
        fetchProducts,
    required TResult Function() updateState,
  }) {
    return fetchMostSaleProduct(context, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult? Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult? Function()? updateState,
  }) {
    return fetchMostSaleProduct?.call(context, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult Function()? updateState,
    required TResult orElse(),
  }) {
    if (fetchMostSaleProduct != null) {
      return fetchMostSaleProduct(context, isRefresh, controller);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(FetchMostSaleProduct value) fetchMostSaleProduct,
    required TResult Function(FetchAllProduct value) fetchAllProduct,
    required TResult Function(FetchNewProduct value) fetchNewProduct,
    required TResult Function(FetchLikeProduct value) fetchLikeProduct,
    required TResult Function(FetchDiscountProduct value) fetchDiscountProduct,
    required TResult Function(FetchMostSaleShopProduct value)
        fetchMostSaleShopProduct,
    required TResult Function(FetchNewShopProduct value) fetchNewShopProduct,
    required TResult Function(FetchProducts value) fetchProducts,
    required TResult Function(UpdateState value) updateState,
  }) {
    return fetchMostSaleProduct(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult? Function(FetchAllProduct value)? fetchAllProduct,
    TResult? Function(FetchNewProduct value)? fetchNewProduct,
    TResult? Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult? Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult? Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult? Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult? Function(FetchProducts value)? fetchProducts,
    TResult? Function(UpdateState value)? updateState,
  }) {
    return fetchMostSaleProduct?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult Function(FetchAllProduct value)? fetchAllProduct,
    TResult Function(FetchNewProduct value)? fetchNewProduct,
    TResult Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult Function(FetchProducts value)? fetchProducts,
    TResult Function(UpdateState value)? updateState,
    required TResult orElse(),
  }) {
    if (fetchMostSaleProduct != null) {
      return fetchMostSaleProduct(this);
    }
    return orElse();
  }
}

abstract class FetchMostSaleProduct implements ProductEvent {
  const factory FetchMostSaleProduct(
      {required final BuildContext context,
      final bool? isRefresh,
      final RefreshController? controller}) = _$FetchMostSaleProduct;

  BuildContext get context;
  bool? get isRefresh;
  RefreshController? get controller;
  @JsonKey(ignore: true)
  _$$FetchMostSaleProductCopyWith<_$FetchMostSaleProduct> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$FetchAllProductCopyWith<$Res> {
  factory _$$FetchAllProductCopyWith(
          _$FetchAllProduct value, $Res Function(_$FetchAllProduct) then) =
      __$$FetchAllProductCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context, bool? isRefresh, RefreshController? controller});
}

/// @nodoc
class __$$FetchAllProductCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchAllProduct>
    implements _$$FetchAllProductCopyWith<$Res> {
  __$$FetchAllProductCopyWithImpl(
      _$FetchAllProduct _value, $Res Function(_$FetchAllProduct) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchAllProduct(
      context: null == context
          ? _value.context
          : context // ignore: cast_nullable_to_non_nullable
              as BuildContext,
      isRefresh: freezed == isRefresh
          ? _value.isRefresh
          : isRefresh // ignore: cast_nullable_to_non_nullable
              as bool?,
      controller: freezed == controller
          ? _value.controller
          : controller // ignore: cast_nullable_to_non_nullable
              as RefreshController?,
    ));
  }
}

/// @nodoc

class _$FetchAllProduct implements FetchAllProduct {
  const _$FetchAllProduct(
      {required this.context, this.isRefresh, this.controller});

  @override
  final BuildContext context;
  @override
  final bool? isRefresh;
  @override
  final RefreshController? controller;

  @override
  String toString() {
    return 'ProductEvent.fetchAllProduct(context: $context, isRefresh: $isRefresh, controller: $controller)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchAllProduct &&
            (identical(other.context, context) || other.context == context) &&
            (identical(other.isRefresh, isRefresh) ||
                other.isRefresh == isRefresh) &&
            (identical(other.controller, controller) ||
                other.controller == controller));
  }

  @override
  int get hashCode => Object.hash(runtimeType, context, isRefresh, controller);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchMostSaleProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchAllProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchNewProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchLikeProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchDiscountProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchMostSaleShopProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchNewShopProduct,
    required TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)
        fetchProducts,
    required TResult Function() updateState,
  }) {
    return fetchAllProduct(context, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult? Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult? Function()? updateState,
  }) {
    return fetchAllProduct?.call(context, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult Function()? updateState,
    required TResult orElse(),
  }) {
    if (fetchAllProduct != null) {
      return fetchAllProduct(context, isRefresh, controller);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(FetchMostSaleProduct value) fetchMostSaleProduct,
    required TResult Function(FetchAllProduct value) fetchAllProduct,
    required TResult Function(FetchNewProduct value) fetchNewProduct,
    required TResult Function(FetchLikeProduct value) fetchLikeProduct,
    required TResult Function(FetchDiscountProduct value) fetchDiscountProduct,
    required TResult Function(FetchMostSaleShopProduct value)
        fetchMostSaleShopProduct,
    required TResult Function(FetchNewShopProduct value) fetchNewShopProduct,
    required TResult Function(FetchProducts value) fetchProducts,
    required TResult Function(UpdateState value) updateState,
  }) {
    return fetchAllProduct(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult? Function(FetchAllProduct value)? fetchAllProduct,
    TResult? Function(FetchNewProduct value)? fetchNewProduct,
    TResult? Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult? Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult? Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult? Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult? Function(FetchProducts value)? fetchProducts,
    TResult? Function(UpdateState value)? updateState,
  }) {
    return fetchAllProduct?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult Function(FetchAllProduct value)? fetchAllProduct,
    TResult Function(FetchNewProduct value)? fetchNewProduct,
    TResult Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult Function(FetchProducts value)? fetchProducts,
    TResult Function(UpdateState value)? updateState,
    required TResult orElse(),
  }) {
    if (fetchAllProduct != null) {
      return fetchAllProduct(this);
    }
    return orElse();
  }
}

abstract class FetchAllProduct implements ProductEvent {
  const factory FetchAllProduct(
      {required final BuildContext context,
      final bool? isRefresh,
      final RefreshController? controller}) = _$FetchAllProduct;

  BuildContext get context;
  bool? get isRefresh;
  RefreshController? get controller;
  @JsonKey(ignore: true)
  _$$FetchAllProductCopyWith<_$FetchAllProduct> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$FetchNewProductCopyWith<$Res> {
  factory _$$FetchNewProductCopyWith(
          _$FetchNewProduct value, $Res Function(_$FetchNewProduct) then) =
      __$$FetchNewProductCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context, bool? isRefresh, RefreshController? controller});
}

/// @nodoc
class __$$FetchNewProductCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchNewProduct>
    implements _$$FetchNewProductCopyWith<$Res> {
  __$$FetchNewProductCopyWithImpl(
      _$FetchNewProduct _value, $Res Function(_$FetchNewProduct) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchNewProduct(
      context: null == context
          ? _value.context
          : context // ignore: cast_nullable_to_non_nullable
              as BuildContext,
      isRefresh: freezed == isRefresh
          ? _value.isRefresh
          : isRefresh // ignore: cast_nullable_to_non_nullable
              as bool?,
      controller: freezed == controller
          ? _value.controller
          : controller // ignore: cast_nullable_to_non_nullable
              as RefreshController?,
    ));
  }
}

/// @nodoc

class _$FetchNewProduct implements FetchNewProduct {
  const _$FetchNewProduct(
      {required this.context, this.isRefresh, this.controller});

  @override
  final BuildContext context;
  @override
  final bool? isRefresh;
  @override
  final RefreshController? controller;

  @override
  String toString() {
    return 'ProductEvent.fetchNewProduct(context: $context, isRefresh: $isRefresh, controller: $controller)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchNewProduct &&
            (identical(other.context, context) || other.context == context) &&
            (identical(other.isRefresh, isRefresh) ||
                other.isRefresh == isRefresh) &&
            (identical(other.controller, controller) ||
                other.controller == controller));
  }

  @override
  int get hashCode => Object.hash(runtimeType, context, isRefresh, controller);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchMostSaleProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchAllProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchNewProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchLikeProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchDiscountProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchMostSaleShopProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchNewShopProduct,
    required TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)
        fetchProducts,
    required TResult Function() updateState,
  }) {
    return fetchNewProduct(context, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult? Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult? Function()? updateState,
  }) {
    return fetchNewProduct?.call(context, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult Function()? updateState,
    required TResult orElse(),
  }) {
    if (fetchNewProduct != null) {
      return fetchNewProduct(context, isRefresh, controller);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(FetchMostSaleProduct value) fetchMostSaleProduct,
    required TResult Function(FetchAllProduct value) fetchAllProduct,
    required TResult Function(FetchNewProduct value) fetchNewProduct,
    required TResult Function(FetchLikeProduct value) fetchLikeProduct,
    required TResult Function(FetchDiscountProduct value) fetchDiscountProduct,
    required TResult Function(FetchMostSaleShopProduct value)
        fetchMostSaleShopProduct,
    required TResult Function(FetchNewShopProduct value) fetchNewShopProduct,
    required TResult Function(FetchProducts value) fetchProducts,
    required TResult Function(UpdateState value) updateState,
  }) {
    return fetchNewProduct(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult? Function(FetchAllProduct value)? fetchAllProduct,
    TResult? Function(FetchNewProduct value)? fetchNewProduct,
    TResult? Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult? Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult? Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult? Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult? Function(FetchProducts value)? fetchProducts,
    TResult? Function(UpdateState value)? updateState,
  }) {
    return fetchNewProduct?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult Function(FetchAllProduct value)? fetchAllProduct,
    TResult Function(FetchNewProduct value)? fetchNewProduct,
    TResult Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult Function(FetchProducts value)? fetchProducts,
    TResult Function(UpdateState value)? updateState,
    required TResult orElse(),
  }) {
    if (fetchNewProduct != null) {
      return fetchNewProduct(this);
    }
    return orElse();
  }
}

abstract class FetchNewProduct implements ProductEvent {
  const factory FetchNewProduct(
      {required final BuildContext context,
      final bool? isRefresh,
      final RefreshController? controller}) = _$FetchNewProduct;

  BuildContext get context;
  bool? get isRefresh;
  RefreshController? get controller;
  @JsonKey(ignore: true)
  _$$FetchNewProductCopyWith<_$FetchNewProduct> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$FetchLikeProductCopyWith<$Res> {
  factory _$$FetchLikeProductCopyWith(
          _$FetchLikeProduct value, $Res Function(_$FetchLikeProduct) then) =
      __$$FetchLikeProductCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context, bool? isRefresh, RefreshController? controller});
}

/// @nodoc
class __$$FetchLikeProductCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchLikeProduct>
    implements _$$FetchLikeProductCopyWith<$Res> {
  __$$FetchLikeProductCopyWithImpl(
      _$FetchLikeProduct _value, $Res Function(_$FetchLikeProduct) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchLikeProduct(
      context: null == context
          ? _value.context
          : context // ignore: cast_nullable_to_non_nullable
              as BuildContext,
      isRefresh: freezed == isRefresh
          ? _value.isRefresh
          : isRefresh // ignore: cast_nullable_to_non_nullable
              as bool?,
      controller: freezed == controller
          ? _value.controller
          : controller // ignore: cast_nullable_to_non_nullable
              as RefreshController?,
    ));
  }
}

/// @nodoc

class _$FetchLikeProduct implements FetchLikeProduct {
  const _$FetchLikeProduct(
      {required this.context, this.isRefresh, this.controller});

  @override
  final BuildContext context;
  @override
  final bool? isRefresh;
  @override
  final RefreshController? controller;

  @override
  String toString() {
    return 'ProductEvent.fetchLikeProduct(context: $context, isRefresh: $isRefresh, controller: $controller)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchLikeProduct &&
            (identical(other.context, context) || other.context == context) &&
            (identical(other.isRefresh, isRefresh) ||
                other.isRefresh == isRefresh) &&
            (identical(other.controller, controller) ||
                other.controller == controller));
  }

  @override
  int get hashCode => Object.hash(runtimeType, context, isRefresh, controller);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchMostSaleProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchAllProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchNewProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchLikeProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchDiscountProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchMostSaleShopProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchNewShopProduct,
    required TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)
        fetchProducts,
    required TResult Function() updateState,
  }) {
    return fetchLikeProduct(context, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult? Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult? Function()? updateState,
  }) {
    return fetchLikeProduct?.call(context, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult Function()? updateState,
    required TResult orElse(),
  }) {
    if (fetchLikeProduct != null) {
      return fetchLikeProduct(context, isRefresh, controller);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(FetchMostSaleProduct value) fetchMostSaleProduct,
    required TResult Function(FetchAllProduct value) fetchAllProduct,
    required TResult Function(FetchNewProduct value) fetchNewProduct,
    required TResult Function(FetchLikeProduct value) fetchLikeProduct,
    required TResult Function(FetchDiscountProduct value) fetchDiscountProduct,
    required TResult Function(FetchMostSaleShopProduct value)
        fetchMostSaleShopProduct,
    required TResult Function(FetchNewShopProduct value) fetchNewShopProduct,
    required TResult Function(FetchProducts value) fetchProducts,
    required TResult Function(UpdateState value) updateState,
  }) {
    return fetchLikeProduct(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult? Function(FetchAllProduct value)? fetchAllProduct,
    TResult? Function(FetchNewProduct value)? fetchNewProduct,
    TResult? Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult? Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult? Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult? Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult? Function(FetchProducts value)? fetchProducts,
    TResult? Function(UpdateState value)? updateState,
  }) {
    return fetchLikeProduct?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult Function(FetchAllProduct value)? fetchAllProduct,
    TResult Function(FetchNewProduct value)? fetchNewProduct,
    TResult Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult Function(FetchProducts value)? fetchProducts,
    TResult Function(UpdateState value)? updateState,
    required TResult orElse(),
  }) {
    if (fetchLikeProduct != null) {
      return fetchLikeProduct(this);
    }
    return orElse();
  }
}

abstract class FetchLikeProduct implements ProductEvent {
  const factory FetchLikeProduct(
      {required final BuildContext context,
      final bool? isRefresh,
      final RefreshController? controller}) = _$FetchLikeProduct;

  BuildContext get context;
  bool? get isRefresh;
  RefreshController? get controller;
  @JsonKey(ignore: true)
  _$$FetchLikeProductCopyWith<_$FetchLikeProduct> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$FetchDiscountProductCopyWith<$Res> {
  factory _$$FetchDiscountProductCopyWith(_$FetchDiscountProduct value,
          $Res Function(_$FetchDiscountProduct) then) =
      __$$FetchDiscountProductCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context, bool? isRefresh, RefreshController? controller});
}

/// @nodoc
class __$$FetchDiscountProductCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchDiscountProduct>
    implements _$$FetchDiscountProductCopyWith<$Res> {
  __$$FetchDiscountProductCopyWithImpl(_$FetchDiscountProduct _value,
      $Res Function(_$FetchDiscountProduct) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchDiscountProduct(
      context: null == context
          ? _value.context
          : context // ignore: cast_nullable_to_non_nullable
              as BuildContext,
      isRefresh: freezed == isRefresh
          ? _value.isRefresh
          : isRefresh // ignore: cast_nullable_to_non_nullable
              as bool?,
      controller: freezed == controller
          ? _value.controller
          : controller // ignore: cast_nullable_to_non_nullable
              as RefreshController?,
    ));
  }
}

/// @nodoc

class _$FetchDiscountProduct implements FetchDiscountProduct {
  const _$FetchDiscountProduct(
      {required this.context, this.isRefresh, this.controller});

  @override
  final BuildContext context;
  @override
  final bool? isRefresh;
  @override
  final RefreshController? controller;

  @override
  String toString() {
    return 'ProductEvent.fetchDiscountProduct(context: $context, isRefresh: $isRefresh, controller: $controller)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchDiscountProduct &&
            (identical(other.context, context) || other.context == context) &&
            (identical(other.isRefresh, isRefresh) ||
                other.isRefresh == isRefresh) &&
            (identical(other.controller, controller) ||
                other.controller == controller));
  }

  @override
  int get hashCode => Object.hash(runtimeType, context, isRefresh, controller);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchMostSaleProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchAllProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchNewProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchLikeProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchDiscountProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchMostSaleShopProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchNewShopProduct,
    required TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)
        fetchProducts,
    required TResult Function() updateState,
  }) {
    return fetchDiscountProduct(context, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult? Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult? Function()? updateState,
  }) {
    return fetchDiscountProduct?.call(context, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult Function()? updateState,
    required TResult orElse(),
  }) {
    if (fetchDiscountProduct != null) {
      return fetchDiscountProduct(context, isRefresh, controller);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(FetchMostSaleProduct value) fetchMostSaleProduct,
    required TResult Function(FetchAllProduct value) fetchAllProduct,
    required TResult Function(FetchNewProduct value) fetchNewProduct,
    required TResult Function(FetchLikeProduct value) fetchLikeProduct,
    required TResult Function(FetchDiscountProduct value) fetchDiscountProduct,
    required TResult Function(FetchMostSaleShopProduct value)
        fetchMostSaleShopProduct,
    required TResult Function(FetchNewShopProduct value) fetchNewShopProduct,
    required TResult Function(FetchProducts value) fetchProducts,
    required TResult Function(UpdateState value) updateState,
  }) {
    return fetchDiscountProduct(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult? Function(FetchAllProduct value)? fetchAllProduct,
    TResult? Function(FetchNewProduct value)? fetchNewProduct,
    TResult? Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult? Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult? Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult? Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult? Function(FetchProducts value)? fetchProducts,
    TResult? Function(UpdateState value)? updateState,
  }) {
    return fetchDiscountProduct?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult Function(FetchAllProduct value)? fetchAllProduct,
    TResult Function(FetchNewProduct value)? fetchNewProduct,
    TResult Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult Function(FetchProducts value)? fetchProducts,
    TResult Function(UpdateState value)? updateState,
    required TResult orElse(),
  }) {
    if (fetchDiscountProduct != null) {
      return fetchDiscountProduct(this);
    }
    return orElse();
  }
}

abstract class FetchDiscountProduct implements ProductEvent {
  const factory FetchDiscountProduct(
      {required final BuildContext context,
      final bool? isRefresh,
      final RefreshController? controller}) = _$FetchDiscountProduct;

  BuildContext get context;
  bool? get isRefresh;
  RefreshController? get controller;
  @JsonKey(ignore: true)
  _$$FetchDiscountProductCopyWith<_$FetchDiscountProduct> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$FetchMostSaleShopProductCopyWith<$Res> {
  factory _$$FetchMostSaleShopProductCopyWith(_$FetchMostSaleShopProduct value,
          $Res Function(_$FetchMostSaleShopProduct) then) =
      __$$FetchMostSaleShopProductCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context,
      int? shopId,
      bool? isRefresh,
      RefreshController? controller});
}

/// @nodoc
class __$$FetchMostSaleShopProductCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchMostSaleShopProduct>
    implements _$$FetchMostSaleShopProductCopyWith<$Res> {
  __$$FetchMostSaleShopProductCopyWithImpl(_$FetchMostSaleShopProduct _value,
      $Res Function(_$FetchMostSaleShopProduct) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? shopId = freezed,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchMostSaleShopProduct(
      context: null == context
          ? _value.context
          : context // ignore: cast_nullable_to_non_nullable
              as BuildContext,
      shopId: freezed == shopId
          ? _value.shopId
          : shopId // ignore: cast_nullable_to_non_nullable
              as int?,
      isRefresh: freezed == isRefresh
          ? _value.isRefresh
          : isRefresh // ignore: cast_nullable_to_non_nullable
              as bool?,
      controller: freezed == controller
          ? _value.controller
          : controller // ignore: cast_nullable_to_non_nullable
              as RefreshController?,
    ));
  }
}

/// @nodoc

class _$FetchMostSaleShopProduct implements FetchMostSaleShopProduct {
  const _$FetchMostSaleShopProduct(
      {required this.context,
      required this.shopId,
      this.isRefresh,
      this.controller});

  @override
  final BuildContext context;
  @override
  final int? shopId;
  @override
  final bool? isRefresh;
  @override
  final RefreshController? controller;

  @override
  String toString() {
    return 'ProductEvent.fetchMostSaleShopProduct(context: $context, shopId: $shopId, isRefresh: $isRefresh, controller: $controller)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchMostSaleShopProduct &&
            (identical(other.context, context) || other.context == context) &&
            (identical(other.shopId, shopId) || other.shopId == shopId) &&
            (identical(other.isRefresh, isRefresh) ||
                other.isRefresh == isRefresh) &&
            (identical(other.controller, controller) ||
                other.controller == controller));
  }

  @override
  int get hashCode =>
      Object.hash(runtimeType, context, shopId, isRefresh, controller);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchMostSaleProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchAllProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchNewProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchLikeProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchDiscountProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchMostSaleShopProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchNewShopProduct,
    required TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)
        fetchProducts,
    required TResult Function() updateState,
  }) {
    return fetchMostSaleShopProduct(context, shopId, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult? Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult? Function()? updateState,
  }) {
    return fetchMostSaleShopProduct?.call(
        context, shopId, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult Function()? updateState,
    required TResult orElse(),
  }) {
    if (fetchMostSaleShopProduct != null) {
      return fetchMostSaleShopProduct(context, shopId, isRefresh, controller);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(FetchMostSaleProduct value) fetchMostSaleProduct,
    required TResult Function(FetchAllProduct value) fetchAllProduct,
    required TResult Function(FetchNewProduct value) fetchNewProduct,
    required TResult Function(FetchLikeProduct value) fetchLikeProduct,
    required TResult Function(FetchDiscountProduct value) fetchDiscountProduct,
    required TResult Function(FetchMostSaleShopProduct value)
        fetchMostSaleShopProduct,
    required TResult Function(FetchNewShopProduct value) fetchNewShopProduct,
    required TResult Function(FetchProducts value) fetchProducts,
    required TResult Function(UpdateState value) updateState,
  }) {
    return fetchMostSaleShopProduct(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult? Function(FetchAllProduct value)? fetchAllProduct,
    TResult? Function(FetchNewProduct value)? fetchNewProduct,
    TResult? Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult? Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult? Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult? Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult? Function(FetchProducts value)? fetchProducts,
    TResult? Function(UpdateState value)? updateState,
  }) {
    return fetchMostSaleShopProduct?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult Function(FetchAllProduct value)? fetchAllProduct,
    TResult Function(FetchNewProduct value)? fetchNewProduct,
    TResult Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult Function(FetchProducts value)? fetchProducts,
    TResult Function(UpdateState value)? updateState,
    required TResult orElse(),
  }) {
    if (fetchMostSaleShopProduct != null) {
      return fetchMostSaleShopProduct(this);
    }
    return orElse();
  }
}

abstract class FetchMostSaleShopProduct implements ProductEvent {
  const factory FetchMostSaleShopProduct(
      {required final BuildContext context,
      required final int? shopId,
      final bool? isRefresh,
      final RefreshController? controller}) = _$FetchMostSaleShopProduct;

  BuildContext get context;
  int? get shopId;
  bool? get isRefresh;
  RefreshController? get controller;
  @JsonKey(ignore: true)
  _$$FetchMostSaleShopProductCopyWith<_$FetchMostSaleShopProduct>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$FetchNewShopProductCopyWith<$Res> {
  factory _$$FetchNewShopProductCopyWith(_$FetchNewShopProduct value,
          $Res Function(_$FetchNewShopProduct) then) =
      __$$FetchNewShopProductCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context,
      int? shopId,
      bool? isRefresh,
      RefreshController? controller});
}

/// @nodoc
class __$$FetchNewShopProductCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchNewShopProduct>
    implements _$$FetchNewShopProductCopyWith<$Res> {
  __$$FetchNewShopProductCopyWithImpl(
      _$FetchNewShopProduct _value, $Res Function(_$FetchNewShopProduct) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? shopId = freezed,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchNewShopProduct(
      context: null == context
          ? _value.context
          : context // ignore: cast_nullable_to_non_nullable
              as BuildContext,
      shopId: freezed == shopId
          ? _value.shopId
          : shopId // ignore: cast_nullable_to_non_nullable
              as int?,
      isRefresh: freezed == isRefresh
          ? _value.isRefresh
          : isRefresh // ignore: cast_nullable_to_non_nullable
              as bool?,
      controller: freezed == controller
          ? _value.controller
          : controller // ignore: cast_nullable_to_non_nullable
              as RefreshController?,
    ));
  }
}

/// @nodoc

class _$FetchNewShopProduct implements FetchNewShopProduct {
  const _$FetchNewShopProduct(
      {required this.context,
      required this.shopId,
      this.isRefresh,
      this.controller});

  @override
  final BuildContext context;
  @override
  final int? shopId;
  @override
  final bool? isRefresh;
  @override
  final RefreshController? controller;

  @override
  String toString() {
    return 'ProductEvent.fetchNewShopProduct(context: $context, shopId: $shopId, isRefresh: $isRefresh, controller: $controller)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchNewShopProduct &&
            (identical(other.context, context) || other.context == context) &&
            (identical(other.shopId, shopId) || other.shopId == shopId) &&
            (identical(other.isRefresh, isRefresh) ||
                other.isRefresh == isRefresh) &&
            (identical(other.controller, controller) ||
                other.controller == controller));
  }

  @override
  int get hashCode =>
      Object.hash(runtimeType, context, shopId, isRefresh, controller);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchMostSaleProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchAllProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchNewProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchLikeProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchDiscountProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchMostSaleShopProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchNewShopProduct,
    required TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)
        fetchProducts,
    required TResult Function() updateState,
  }) {
    return fetchNewShopProduct(context, shopId, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult? Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult? Function()? updateState,
  }) {
    return fetchNewShopProduct?.call(context, shopId, isRefresh, controller);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult Function()? updateState,
    required TResult orElse(),
  }) {
    if (fetchNewShopProduct != null) {
      return fetchNewShopProduct(context, shopId, isRefresh, controller);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(FetchMostSaleProduct value) fetchMostSaleProduct,
    required TResult Function(FetchAllProduct value) fetchAllProduct,
    required TResult Function(FetchNewProduct value) fetchNewProduct,
    required TResult Function(FetchLikeProduct value) fetchLikeProduct,
    required TResult Function(FetchDiscountProduct value) fetchDiscountProduct,
    required TResult Function(FetchMostSaleShopProduct value)
        fetchMostSaleShopProduct,
    required TResult Function(FetchNewShopProduct value) fetchNewShopProduct,
    required TResult Function(FetchProducts value) fetchProducts,
    required TResult Function(UpdateState value) updateState,
  }) {
    return fetchNewShopProduct(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult? Function(FetchAllProduct value)? fetchAllProduct,
    TResult? Function(FetchNewProduct value)? fetchNewProduct,
    TResult? Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult? Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult? Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult? Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult? Function(FetchProducts value)? fetchProducts,
    TResult? Function(UpdateState value)? updateState,
  }) {
    return fetchNewShopProduct?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult Function(FetchAllProduct value)? fetchAllProduct,
    TResult Function(FetchNewProduct value)? fetchNewProduct,
    TResult Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult Function(FetchProducts value)? fetchProducts,
    TResult Function(UpdateState value)? updateState,
    required TResult orElse(),
  }) {
    if (fetchNewShopProduct != null) {
      return fetchNewShopProduct(this);
    }
    return orElse();
  }
}

abstract class FetchNewShopProduct implements ProductEvent {
  const factory FetchNewShopProduct(
      {required final BuildContext context,
      required final int? shopId,
      final bool? isRefresh,
      final RefreshController? controller}) = _$FetchNewShopProduct;

  BuildContext get context;
  int? get shopId;
  bool? get isRefresh;
  RefreshController? get controller;
  @JsonKey(ignore: true)
  _$$FetchNewShopProductCopyWith<_$FetchNewShopProduct> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$FetchProductsCopyWith<$Res> {
  factory _$$FetchProductsCopyWith(
          _$FetchProducts value, $Res Function(_$FetchProducts) then) =
      __$$FetchProductsCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context,
      bool? isRefresh,
      RefreshController? controller,
      List<ProductData>? list,
      bool? isNewProduct,
      bool? isMostSaleProduct,
      int? categoryId,
      int? shopId,
      int? bannerId,
      List<int>? brandId,
      List<int>? categoryIds,
      List<int>? extrasId,
      num? priceTo,
      num? priceFrom});
}

/// @nodoc
class __$$FetchProductsCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchProducts>
    implements _$$FetchProductsCopyWith<$Res> {
  __$$FetchProductsCopyWithImpl(
      _$FetchProducts _value, $Res Function(_$FetchProducts) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
    Object? list = freezed,
    Object? isNewProduct = freezed,
    Object? isMostSaleProduct = freezed,
    Object? categoryId = freezed,
    Object? shopId = freezed,
    Object? bannerId = freezed,
    Object? brandId = freezed,
    Object? categoryIds = freezed,
    Object? extrasId = freezed,
    Object? priceTo = freezed,
    Object? priceFrom = freezed,
  }) {
    return _then(_$FetchProducts(
      context: null == context
          ? _value.context
          : context // ignore: cast_nullable_to_non_nullable
              as BuildContext,
      isRefresh: freezed == isRefresh
          ? _value.isRefresh
          : isRefresh // ignore: cast_nullable_to_non_nullable
              as bool?,
      controller: freezed == controller
          ? _value.controller
          : controller // ignore: cast_nullable_to_non_nullable
              as RefreshController?,
      list: freezed == list
          ? _value._list
          : list // ignore: cast_nullable_to_non_nullable
              as List<ProductData>?,
      isNewProduct: freezed == isNewProduct
          ? _value.isNewProduct
          : isNewProduct // ignore: cast_nullable_to_non_nullable
              as bool?,
      isMostSaleProduct: freezed == isMostSaleProduct
          ? _value.isMostSaleProduct
          : isMostSaleProduct // ignore: cast_nullable_to_non_nullable
              as bool?,
      categoryId: freezed == categoryId
          ? _value.categoryId
          : categoryId // ignore: cast_nullable_to_non_nullable
              as int?,
      shopId: freezed == shopId
          ? _value.shopId
          : shopId // ignore: cast_nullable_to_non_nullable
              as int?,
      bannerId: freezed == bannerId
          ? _value.bannerId
          : bannerId // ignore: cast_nullable_to_non_nullable
              as int?,
      brandId: freezed == brandId
          ? _value._brandId
          : brandId // ignore: cast_nullable_to_non_nullable
              as List<int>?,
      categoryIds: freezed == categoryIds
          ? _value._categoryIds
          : categoryIds // ignore: cast_nullable_to_non_nullable
              as List<int>?,
      extrasId: freezed == extrasId
          ? _value._extrasId
          : extrasId // ignore: cast_nullable_to_non_nullable
              as List<int>?,
      priceTo: freezed == priceTo
          ? _value.priceTo
          : priceTo // ignore: cast_nullable_to_non_nullable
              as num?,
      priceFrom: freezed == priceFrom
          ? _value.priceFrom
          : priceFrom // ignore: cast_nullable_to_non_nullable
              as num?,
    ));
  }
}

/// @nodoc

class _$FetchProducts implements FetchProducts {
  const _$FetchProducts(
      {required this.context,
      this.isRefresh,
      this.controller,
      final List<ProductData>? list,
      this.isNewProduct,
      this.isMostSaleProduct,
      this.categoryId,
      this.shopId,
      this.bannerId,
      final List<int>? brandId,
      final List<int>? categoryIds,
      final List<int>? extrasId,
      this.priceTo,
      this.priceFrom})
      : _list = list,
        _brandId = brandId,
        _categoryIds = categoryIds,
        _extrasId = extrasId;

  @override
  final BuildContext context;
  @override
  final bool? isRefresh;
  @override
  final RefreshController? controller;
  final List<ProductData>? _list;
  @override
  List<ProductData>? get list {
    final value = _list;
    if (value == null) return null;
    if (_list is EqualUnmodifiableListView) return _list;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  final bool? isNewProduct;
  @override
  final bool? isMostSaleProduct;
  @override
  final int? categoryId;
  @override
  final int? shopId;
  @override
  final int? bannerId;
  final List<int>? _brandId;
  @override
  List<int>? get brandId {
    final value = _brandId;
    if (value == null) return null;
    if (_brandId is EqualUnmodifiableListView) return _brandId;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<int>? _categoryIds;
  @override
  List<int>? get categoryIds {
    final value = _categoryIds;
    if (value == null) return null;
    if (_categoryIds is EqualUnmodifiableListView) return _categoryIds;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<int>? _extrasId;
  @override
  List<int>? get extrasId {
    final value = _extrasId;
    if (value == null) return null;
    if (_extrasId is EqualUnmodifiableListView) return _extrasId;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  final num? priceTo;
  @override
  final num? priceFrom;

  @override
  String toString() {
    return 'ProductEvent.fetchProducts(context: $context, isRefresh: $isRefresh, controller: $controller, list: $list, isNewProduct: $isNewProduct, isMostSaleProduct: $isMostSaleProduct, categoryId: $categoryId, shopId: $shopId, bannerId: $bannerId, brandId: $brandId, categoryIds: $categoryIds, extrasId: $extrasId, priceTo: $priceTo, priceFrom: $priceFrom)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchProducts &&
            (identical(other.context, context) || other.context == context) &&
            (identical(other.isRefresh, isRefresh) ||
                other.isRefresh == isRefresh) &&
            (identical(other.controller, controller) ||
                other.controller == controller) &&
            const DeepCollectionEquality().equals(other._list, _list) &&
            (identical(other.isNewProduct, isNewProduct) ||
                other.isNewProduct == isNewProduct) &&
            (identical(other.isMostSaleProduct, isMostSaleProduct) ||
                other.isMostSaleProduct == isMostSaleProduct) &&
            (identical(other.categoryId, categoryId) ||
                other.categoryId == categoryId) &&
            (identical(other.shopId, shopId) || other.shopId == shopId) &&
            (identical(other.bannerId, bannerId) ||
                other.bannerId == bannerId) &&
            const DeepCollectionEquality().equals(other._brandId, _brandId) &&
            const DeepCollectionEquality()
                .equals(other._categoryIds, _categoryIds) &&
            const DeepCollectionEquality().equals(other._extrasId, _extrasId) &&
            (identical(other.priceTo, priceTo) || other.priceTo == priceTo) &&
            (identical(other.priceFrom, priceFrom) ||
                other.priceFrom == priceFrom));
  }

  @override
  int get hashCode => Object.hash(
      runtimeType,
      context,
      isRefresh,
      controller,
      const DeepCollectionEquality().hash(_list),
      isNewProduct,
      isMostSaleProduct,
      categoryId,
      shopId,
      bannerId,
      const DeepCollectionEquality().hash(_brandId),
      const DeepCollectionEquality().hash(_categoryIds),
      const DeepCollectionEquality().hash(_extrasId),
      priceTo,
      priceFrom);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchMostSaleProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchAllProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchNewProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchLikeProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchDiscountProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchMostSaleShopProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchNewShopProduct,
    required TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)
        fetchProducts,
    required TResult Function() updateState,
  }) {
    return fetchProducts(
        context,
        isRefresh,
        controller,
        list,
        isNewProduct,
        isMostSaleProduct,
        categoryId,
        shopId,
        bannerId,
        brandId,
        categoryIds,
        extrasId,
        priceTo,
        priceFrom);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult? Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult? Function()? updateState,
  }) {
    return fetchProducts?.call(
        context,
        isRefresh,
        controller,
        list,
        isNewProduct,
        isMostSaleProduct,
        categoryId,
        shopId,
        bannerId,
        brandId,
        categoryIds,
        extrasId,
        priceTo,
        priceFrom);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult Function()? updateState,
    required TResult orElse(),
  }) {
    if (fetchProducts != null) {
      return fetchProducts(
          context,
          isRefresh,
          controller,
          list,
          isNewProduct,
          isMostSaleProduct,
          categoryId,
          shopId,
          bannerId,
          brandId,
          categoryIds,
          extrasId,
          priceTo,
          priceFrom);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(FetchMostSaleProduct value) fetchMostSaleProduct,
    required TResult Function(FetchAllProduct value) fetchAllProduct,
    required TResult Function(FetchNewProduct value) fetchNewProduct,
    required TResult Function(FetchLikeProduct value) fetchLikeProduct,
    required TResult Function(FetchDiscountProduct value) fetchDiscountProduct,
    required TResult Function(FetchMostSaleShopProduct value)
        fetchMostSaleShopProduct,
    required TResult Function(FetchNewShopProduct value) fetchNewShopProduct,
    required TResult Function(FetchProducts value) fetchProducts,
    required TResult Function(UpdateState value) updateState,
  }) {
    return fetchProducts(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult? Function(FetchAllProduct value)? fetchAllProduct,
    TResult? Function(FetchNewProduct value)? fetchNewProduct,
    TResult? Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult? Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult? Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult? Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult? Function(FetchProducts value)? fetchProducts,
    TResult? Function(UpdateState value)? updateState,
  }) {
    return fetchProducts?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult Function(FetchAllProduct value)? fetchAllProduct,
    TResult Function(FetchNewProduct value)? fetchNewProduct,
    TResult Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult Function(FetchProducts value)? fetchProducts,
    TResult Function(UpdateState value)? updateState,
    required TResult orElse(),
  }) {
    if (fetchProducts != null) {
      return fetchProducts(this);
    }
    return orElse();
  }
}

abstract class FetchProducts implements ProductEvent {
  const factory FetchProducts(
      {required final BuildContext context,
      final bool? isRefresh,
      final RefreshController? controller,
      final List<ProductData>? list,
      final bool? isNewProduct,
      final bool? isMostSaleProduct,
      final int? categoryId,
      final int? shopId,
      final int? bannerId,
      final List<int>? brandId,
      final List<int>? categoryIds,
      final List<int>? extrasId,
      final num? priceTo,
      final num? priceFrom}) = _$FetchProducts;

  BuildContext get context;
  bool? get isRefresh;
  RefreshController? get controller;
  List<ProductData>? get list;
  bool? get isNewProduct;
  bool? get isMostSaleProduct;
  int? get categoryId;
  int? get shopId;
  int? get bannerId;
  List<int>? get brandId;
  List<int>? get categoryIds;
  List<int>? get extrasId;
  num? get priceTo;
  num? get priceFrom;
  @JsonKey(ignore: true)
  _$$FetchProductsCopyWith<_$FetchProducts> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$UpdateStateCopyWith<$Res> {
  factory _$$UpdateStateCopyWith(
          _$UpdateState value, $Res Function(_$UpdateState) then) =
      __$$UpdateStateCopyWithImpl<$Res>;
}

/// @nodoc
class __$$UpdateStateCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$UpdateState>
    implements _$$UpdateStateCopyWith<$Res> {
  __$$UpdateStateCopyWithImpl(
      _$UpdateState _value, $Res Function(_$UpdateState) _then)
      : super(_value, _then);
}

/// @nodoc

class _$UpdateState implements UpdateState {
  const _$UpdateState();

  @override
  String toString() {
    return 'ProductEvent.updateState()';
  }

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

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchMostSaleProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchAllProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchNewProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchLikeProduct,
    required TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)
        fetchDiscountProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchMostSaleShopProduct,
    required TResult Function(BuildContext context, int? shopId,
            bool? isRefresh, RefreshController? controller)
        fetchNewShopProduct,
    required TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)
        fetchProducts,
    required TResult Function() updateState,
  }) {
    return updateState();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult? Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult? Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult? Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult? Function()? updateState,
  }) {
    return updateState?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchAllProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchNewProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchLikeProduct,
    TResult Function(BuildContext context, bool? isRefresh,
            RefreshController? controller)?
        fetchDiscountProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchMostSaleShopProduct,
    TResult Function(BuildContext context, int? shopId, bool? isRefresh,
            RefreshController? controller)?
        fetchNewShopProduct,
    TResult Function(
            BuildContext context,
            bool? isRefresh,
            RefreshController? controller,
            List<ProductData>? list,
            bool? isNewProduct,
            bool? isMostSaleProduct,
            int? categoryId,
            int? shopId,
            int? bannerId,
            List<int>? brandId,
            List<int>? categoryIds,
            List<int>? extrasId,
            num? priceTo,
            num? priceFrom)?
        fetchProducts,
    TResult Function()? updateState,
    required TResult orElse(),
  }) {
    if (updateState != null) {
      return updateState();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(FetchMostSaleProduct value) fetchMostSaleProduct,
    required TResult Function(FetchAllProduct value) fetchAllProduct,
    required TResult Function(FetchNewProduct value) fetchNewProduct,
    required TResult Function(FetchLikeProduct value) fetchLikeProduct,
    required TResult Function(FetchDiscountProduct value) fetchDiscountProduct,
    required TResult Function(FetchMostSaleShopProduct value)
        fetchMostSaleShopProduct,
    required TResult Function(FetchNewShopProduct value) fetchNewShopProduct,
    required TResult Function(FetchProducts value) fetchProducts,
    required TResult Function(UpdateState value) updateState,
  }) {
    return updateState(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult? Function(FetchAllProduct value)? fetchAllProduct,
    TResult? Function(FetchNewProduct value)? fetchNewProduct,
    TResult? Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult? Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult? Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult? Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult? Function(FetchProducts value)? fetchProducts,
    TResult? Function(UpdateState value)? updateState,
  }) {
    return updateState?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(FetchMostSaleProduct value)? fetchMostSaleProduct,
    TResult Function(FetchAllProduct value)? fetchAllProduct,
    TResult Function(FetchNewProduct value)? fetchNewProduct,
    TResult Function(FetchLikeProduct value)? fetchLikeProduct,
    TResult Function(FetchDiscountProduct value)? fetchDiscountProduct,
    TResult Function(FetchMostSaleShopProduct value)? fetchMostSaleShopProduct,
    TResult Function(FetchNewShopProduct value)? fetchNewShopProduct,
    TResult Function(FetchProducts value)? fetchProducts,
    TResult Function(UpdateState value)? updateState,
    required TResult orElse(),
  }) {
    if (updateState != null) {
      return updateState(this);
    }
    return orElse();
  }
}

abstract class UpdateState implements ProductEvent {
  const factory UpdateState() = _$UpdateState;
}

/// @nodoc
mixin _$ProductState {
  List<ProductData> get mostSaleProduct => throw _privateConstructorUsedError;
  List<ProductData> get mostSaleShopProduct =>
      throw _privateConstructorUsedError;
  List<ProductData> get newProduct => throw _privateConstructorUsedError;
  List<ProductData> get newShopProduct => throw _privateConstructorUsedError;
  List<ProductData> get commonProduct => throw _privateConstructorUsedError;
  List<ProductData> get likeProducts => throw _privateConstructorUsedError;
  List<ProductData> get discountProduct => throw _privateConstructorUsedError;
  List<ProductData> get allProductList => throw _privateConstructorUsedError;
  bool get isLoadingMostSale => throw _privateConstructorUsedError;
  bool get isLoadingNew => throw _privateConstructorUsedError;
  bool get isLoading => throw _privateConstructorUsedError;
  bool get isLoadingLike => throw _privateConstructorUsedError;
  bool get isLoadingDiscount => throw _privateConstructorUsedError;
  int get newProductCount => throw _privateConstructorUsedError;
  int get mostSaleProductCount => throw _privateConstructorUsedError;
  int get totalCount => throw _privateConstructorUsedError;

  @JsonKey(ignore: true)
  $ProductStateCopyWith<ProductState> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $ProductStateCopyWith<$Res> {
  factory $ProductStateCopyWith(
          ProductState value, $Res Function(ProductState) then) =
      _$ProductStateCopyWithImpl<$Res, ProductState>;
  @useResult
  $Res call(
      {List<ProductData> mostSaleProduct,
      List<ProductData> mostSaleShopProduct,
      List<ProductData> newProduct,
      List<ProductData> newShopProduct,
      List<ProductData> commonProduct,
      List<ProductData> likeProducts,
      List<ProductData> discountProduct,
      List<ProductData> allProductList,
      bool isLoadingMostSale,
      bool isLoadingNew,
      bool isLoading,
      bool isLoadingLike,
      bool isLoadingDiscount,
      int newProductCount,
      int mostSaleProductCount,
      int totalCount});
}

/// @nodoc
class _$ProductStateCopyWithImpl<$Res, $Val extends ProductState>
    implements $ProductStateCopyWith<$Res> {
  _$ProductStateCopyWithImpl(this._value, this._then);

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

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? mostSaleProduct = null,
    Object? mostSaleShopProduct = null,
    Object? newProduct = null,
    Object? newShopProduct = null,
    Object? commonProduct = null,
    Object? likeProducts = null,
    Object? discountProduct = null,
    Object? allProductList = null,
    Object? isLoadingMostSale = null,
    Object? isLoadingNew = null,
    Object? isLoading = null,
    Object? isLoadingLike = null,
    Object? isLoadingDiscount = null,
    Object? newProductCount = null,
    Object? mostSaleProductCount = null,
    Object? totalCount = null,
  }) {
    return _then(_value.copyWith(
      mostSaleProduct: null == mostSaleProduct
          ? _value.mostSaleProduct
          : mostSaleProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      mostSaleShopProduct: null == mostSaleShopProduct
          ? _value.mostSaleShopProduct
          : mostSaleShopProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      newProduct: null == newProduct
          ? _value.newProduct
          : newProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      newShopProduct: null == newShopProduct
          ? _value.newShopProduct
          : newShopProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      commonProduct: null == commonProduct
          ? _value.commonProduct
          : commonProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      likeProducts: null == likeProducts
          ? _value.likeProducts
          : likeProducts // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      discountProduct: null == discountProduct
          ? _value.discountProduct
          : discountProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      allProductList: null == allProductList
          ? _value.allProductList
          : allProductList // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      isLoadingMostSale: null == isLoadingMostSale
          ? _value.isLoadingMostSale
          : isLoadingMostSale // ignore: cast_nullable_to_non_nullable
              as bool,
      isLoadingNew: null == isLoadingNew
          ? _value.isLoadingNew
          : isLoadingNew // ignore: cast_nullable_to_non_nullable
              as bool,
      isLoading: null == isLoading
          ? _value.isLoading
          : isLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      isLoadingLike: null == isLoadingLike
          ? _value.isLoadingLike
          : isLoadingLike // ignore: cast_nullable_to_non_nullable
              as bool,
      isLoadingDiscount: null == isLoadingDiscount
          ? _value.isLoadingDiscount
          : isLoadingDiscount // ignore: cast_nullable_to_non_nullable
              as bool,
      newProductCount: null == newProductCount
          ? _value.newProductCount
          : newProductCount // ignore: cast_nullable_to_non_nullable
              as int,
      mostSaleProductCount: null == mostSaleProductCount
          ? _value.mostSaleProductCount
          : mostSaleProductCount // ignore: cast_nullable_to_non_nullable
              as int,
      totalCount: null == totalCount
          ? _value.totalCount
          : totalCount // ignore: cast_nullable_to_non_nullable
              as int,
    ) as $Val);
  }
}

/// @nodoc
abstract class _$$_ProductStateCopyWith<$Res>
    implements $ProductStateCopyWith<$Res> {
  factory _$$_ProductStateCopyWith(
          _$_ProductState value, $Res Function(_$_ProductState) then) =
      __$$_ProductStateCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {List<ProductData> mostSaleProduct,
      List<ProductData> mostSaleShopProduct,
      List<ProductData> newProduct,
      List<ProductData> newShopProduct,
      List<ProductData> commonProduct,
      List<ProductData> likeProducts,
      List<ProductData> discountProduct,
      List<ProductData> allProductList,
      bool isLoadingMostSale,
      bool isLoadingNew,
      bool isLoading,
      bool isLoadingLike,
      bool isLoadingDiscount,
      int newProductCount,
      int mostSaleProductCount,
      int totalCount});
}

/// @nodoc
class __$$_ProductStateCopyWithImpl<$Res>
    extends _$ProductStateCopyWithImpl<$Res, _$_ProductState>
    implements _$$_ProductStateCopyWith<$Res> {
  __$$_ProductStateCopyWithImpl(
      _$_ProductState _value, $Res Function(_$_ProductState) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? mostSaleProduct = null,
    Object? mostSaleShopProduct = null,
    Object? newProduct = null,
    Object? newShopProduct = null,
    Object? commonProduct = null,
    Object? likeProducts = null,
    Object? discountProduct = null,
    Object? allProductList = null,
    Object? isLoadingMostSale = null,
    Object? isLoadingNew = null,
    Object? isLoading = null,
    Object? isLoadingLike = null,
    Object? isLoadingDiscount = null,
    Object? newProductCount = null,
    Object? mostSaleProductCount = null,
    Object? totalCount = null,
  }) {
    return _then(_$_ProductState(
      mostSaleProduct: null == mostSaleProduct
          ? _value._mostSaleProduct
          : mostSaleProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      mostSaleShopProduct: null == mostSaleShopProduct
          ? _value._mostSaleShopProduct
          : mostSaleShopProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      newProduct: null == newProduct
          ? _value._newProduct
          : newProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      newShopProduct: null == newShopProduct
          ? _value._newShopProduct
          : newShopProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      commonProduct: null == commonProduct
          ? _value._commonProduct
          : commonProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      likeProducts: null == likeProducts
          ? _value._likeProducts
          : likeProducts // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      discountProduct: null == discountProduct
          ? _value._discountProduct
          : discountProduct // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      allProductList: null == allProductList
          ? _value._allProductList
          : allProductList // ignore: cast_nullable_to_non_nullable
              as List<ProductData>,
      isLoadingMostSale: null == isLoadingMostSale
          ? _value.isLoadingMostSale
          : isLoadingMostSale // ignore: cast_nullable_to_non_nullable
              as bool,
      isLoadingNew: null == isLoadingNew
          ? _value.isLoadingNew
          : isLoadingNew // ignore: cast_nullable_to_non_nullable
              as bool,
      isLoading: null == isLoading
          ? _value.isLoading
          : isLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      isLoadingLike: null == isLoadingLike
          ? _value.isLoadingLike
          : isLoadingLike // ignore: cast_nullable_to_non_nullable
              as bool,
      isLoadingDiscount: null == isLoadingDiscount
          ? _value.isLoadingDiscount
          : isLoadingDiscount // ignore: cast_nullable_to_non_nullable
              as bool,
      newProductCount: null == newProductCount
          ? _value.newProductCount
          : newProductCount // ignore: cast_nullable_to_non_nullable
              as int,
      mostSaleProductCount: null == mostSaleProductCount
          ? _value.mostSaleProductCount
          : mostSaleProductCount // ignore: cast_nullable_to_non_nullable
              as int,
      totalCount: null == totalCount
          ? _value.totalCount
          : totalCount // ignore: cast_nullable_to_non_nullable
              as int,
    ));
  }
}

/// @nodoc

class _$_ProductState implements _ProductState {
  const _$_ProductState(
      {final List<ProductData> mostSaleProduct = const [],
      final List<ProductData> mostSaleShopProduct = const [],
      final List<ProductData> newProduct = const [],
      final List<ProductData> newShopProduct = const [],
      final List<ProductData> commonProduct = const [],
      final List<ProductData> likeProducts = const [],
      final List<ProductData> discountProduct = const [],
      final List<ProductData> allProductList = const [],
      this.isLoadingMostSale = true,
      this.isLoadingNew = true,
      this.isLoading = true,
      this.isLoadingLike = true,
      this.isLoadingDiscount = true,
      this.newProductCount = 0,
      this.mostSaleProductCount = 0,
      this.totalCount = 0})
      : _mostSaleProduct = mostSaleProduct,
        _mostSaleShopProduct = mostSaleShopProduct,
        _newProduct = newProduct,
        _newShopProduct = newShopProduct,
        _commonProduct = commonProduct,
        _likeProducts = likeProducts,
        _discountProduct = discountProduct,
        _allProductList = allProductList;

  final List<ProductData> _mostSaleProduct;
  @override
  @JsonKey()
  List<ProductData> get mostSaleProduct {
    if (_mostSaleProduct is EqualUnmodifiableListView) return _mostSaleProduct;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_mostSaleProduct);
  }

  final List<ProductData> _mostSaleShopProduct;
  @override
  @JsonKey()
  List<ProductData> get mostSaleShopProduct {
    if (_mostSaleShopProduct is EqualUnmodifiableListView)
      return _mostSaleShopProduct;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_mostSaleShopProduct);
  }

  final List<ProductData> _newProduct;
  @override
  @JsonKey()
  List<ProductData> get newProduct {
    if (_newProduct is EqualUnmodifiableListView) return _newProduct;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_newProduct);
  }

  final List<ProductData> _newShopProduct;
  @override
  @JsonKey()
  List<ProductData> get newShopProduct {
    if (_newShopProduct is EqualUnmodifiableListView) return _newShopProduct;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_newShopProduct);
  }

  final List<ProductData> _commonProduct;
  @override
  @JsonKey()
  List<ProductData> get commonProduct {
    if (_commonProduct is EqualUnmodifiableListView) return _commonProduct;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_commonProduct);
  }

  final List<ProductData> _likeProducts;
  @override
  @JsonKey()
  List<ProductData> get likeProducts {
    if (_likeProducts is EqualUnmodifiableListView) return _likeProducts;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_likeProducts);
  }

  final List<ProductData> _discountProduct;
  @override
  @JsonKey()
  List<ProductData> get discountProduct {
    if (_discountProduct is EqualUnmodifiableListView) return _discountProduct;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_discountProduct);
  }

  final List<ProductData> _allProductList;
  @override
  @JsonKey()
  List<ProductData> get allProductList {
    if (_allProductList is EqualUnmodifiableListView) return _allProductList;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_allProductList);
  }

  @override
  @JsonKey()
  final bool isLoadingMostSale;
  @override
  @JsonKey()
  final bool isLoadingNew;
  @override
  @JsonKey()
  final bool isLoading;
  @override
  @JsonKey()
  final bool isLoadingLike;
  @override
  @JsonKey()
  final bool isLoadingDiscount;
  @override
  @JsonKey()
  final int newProductCount;
  @override
  @JsonKey()
  final int mostSaleProductCount;
  @override
  @JsonKey()
  final int totalCount;

  @override
  String toString() {
    return 'ProductState(mostSaleProduct: $mostSaleProduct, mostSaleShopProduct: $mostSaleShopProduct, newProduct: $newProduct, newShopProduct: $newShopProduct, commonProduct: $commonProduct, likeProducts: $likeProducts, discountProduct: $discountProduct, allProductList: $allProductList, isLoadingMostSale: $isLoadingMostSale, isLoadingNew: $isLoadingNew, isLoading: $isLoading, isLoadingLike: $isLoadingLike, isLoadingDiscount: $isLoadingDiscount, newProductCount: $newProductCount, mostSaleProductCount: $mostSaleProductCount, totalCount: $totalCount)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$_ProductState &&
            const DeepCollectionEquality()
                .equals(other._mostSaleProduct, _mostSaleProduct) &&
            const DeepCollectionEquality()
                .equals(other._mostSaleShopProduct, _mostSaleShopProduct) &&
            const DeepCollectionEquality()
                .equals(other._newProduct, _newProduct) &&
            const DeepCollectionEquality()
                .equals(other._newShopProduct, _newShopProduct) &&
            const DeepCollectionEquality()
                .equals(other._commonProduct, _commonProduct) &&
            const DeepCollectionEquality()
                .equals(other._likeProducts, _likeProducts) &&
            const DeepCollectionEquality()
                .equals(other._discountProduct, _discountProduct) &&
            const DeepCollectionEquality()
                .equals(other._allProductList, _allProductList) &&
            (identical(other.isLoadingMostSale, isLoadingMostSale) ||
                other.isLoadingMostSale == isLoadingMostSale) &&
            (identical(other.isLoadingNew, isLoadingNew) ||
                other.isLoadingNew == isLoadingNew) &&
            (identical(other.isLoading, isLoading) ||
                other.isLoading == isLoading) &&
            (identical(other.isLoadingLike, isLoadingLike) ||
                other.isLoadingLike == isLoadingLike) &&
            (identical(other.isLoadingDiscount, isLoadingDiscount) ||
                other.isLoadingDiscount == isLoadingDiscount) &&
            (identical(other.newProductCount, newProductCount) ||
                other.newProductCount == newProductCount) &&
            (identical(other.mostSaleProductCount, mostSaleProductCount) ||
                other.mostSaleProductCount == mostSaleProductCount) &&
            (identical(other.totalCount, totalCount) ||
                other.totalCount == totalCount));
  }

  @override
  int get hashCode => Object.hash(
      runtimeType,
      const DeepCollectionEquality().hash(_mostSaleProduct),
      const DeepCollectionEquality().hash(_mostSaleShopProduct),
      const DeepCollectionEquality().hash(_newProduct),
      const DeepCollectionEquality().hash(_newShopProduct),
      const DeepCollectionEquality().hash(_commonProduct),
      const DeepCollectionEquality().hash(_likeProducts),
      const DeepCollectionEquality().hash(_discountProduct),
      const DeepCollectionEquality().hash(_allProductList),
      isLoadingMostSale,
      isLoadingNew,
      isLoading,
      isLoadingLike,
      isLoadingDiscount,
      newProductCount,
      mostSaleProductCount,
      totalCount);

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$_ProductStateCopyWith<_$_ProductState> get copyWith =>
      __$$_ProductStateCopyWithImpl<_$_ProductState>(this, _$identity);
}

abstract class _ProductState implements ProductState {
  const factory _ProductState(
      {final List<ProductData> mostSaleProduct,
      final List<ProductData> mostSaleShopProduct,
      final List<ProductData> newProduct,
      final List<ProductData> newShopProduct,
      final List<ProductData> commonProduct,
      final List<ProductData> likeProducts,
      final List<ProductData> discountProduct,
      final List<ProductData> allProductList,
      final bool isLoadingMostSale,
      final bool isLoadingNew,
      final bool isLoading,
      final bool isLoadingLike,
      final bool isLoadingDiscount,
      final int newProductCount,
      final int mostSaleProductCount,
      final int totalCount}) = _$_ProductState;

  @override
  List<ProductData> get mostSaleProduct;
  @override
  List<ProductData> get mostSaleShopProduct;
  @override
  List<ProductData> get newProduct;
  @override
  List<ProductData> get newShopProduct;
  @override
  List<ProductData> get commonProduct;
  @override
  List<ProductData> get likeProducts;
  @override
  List<ProductData> get discountProduct;
  @override
  List<ProductData> get allProductList;
  @override
  bool get isLoadingMostSale;
  @override
  bool get isLoadingNew;
  @override
  bool get isLoading;
  @override
  bool get isLoadingLike;
  @override
  bool get isLoadingDiscount;
  @override
  int get newProductCount;
  @override
  int get mostSaleProductCount;
  @override
  int get totalCount;
  @override
  @JsonKey(ignore: true)
  _$$_ProductStateCopyWith<_$_ProductState> get copyWith =>
      throw _privateConstructorUsedError;
}
