// 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#adding-getters-and-methods-to-our-models');

/// @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 _$$FetchMostSaleProductImplCopyWith<$Res> {
  factory _$$FetchMostSaleProductImplCopyWith(_$FetchMostSaleProductImpl value,
          $Res Function(_$FetchMostSaleProductImpl) then) =
      __$$FetchMostSaleProductImplCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context, bool? isRefresh, RefreshController? controller});
}

/// @nodoc
class __$$FetchMostSaleProductImplCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchMostSaleProductImpl>
    implements _$$FetchMostSaleProductImplCopyWith<$Res> {
  __$$FetchMostSaleProductImplCopyWithImpl(_$FetchMostSaleProductImpl _value,
      $Res Function(_$FetchMostSaleProductImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchMostSaleProductImpl(
      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 _$FetchMostSaleProductImpl implements FetchMostSaleProduct {
  const _$FetchMostSaleProductImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchMostSaleProductImpl &&
            (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')
  _$$FetchMostSaleProductImplCopyWith<_$FetchMostSaleProductImpl>
      get copyWith =>
          __$$FetchMostSaleProductImplCopyWithImpl<_$FetchMostSaleProductImpl>(
              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}) = _$FetchMostSaleProductImpl;

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

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

/// @nodoc
class __$$FetchAllProductImplCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchAllProductImpl>
    implements _$$FetchAllProductImplCopyWith<$Res> {
  __$$FetchAllProductImplCopyWithImpl(
      _$FetchAllProductImpl _value, $Res Function(_$FetchAllProductImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchAllProductImpl(
      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 _$FetchAllProductImpl implements FetchAllProduct {
  const _$FetchAllProductImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchAllProductImpl &&
            (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')
  _$$FetchAllProductImplCopyWith<_$FetchAllProductImpl> get copyWith =>
      __$$FetchAllProductImplCopyWithImpl<_$FetchAllProductImpl>(
          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}) = _$FetchAllProductImpl;

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

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

/// @nodoc
class __$$FetchNewProductImplCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchNewProductImpl>
    implements _$$FetchNewProductImplCopyWith<$Res> {
  __$$FetchNewProductImplCopyWithImpl(
      _$FetchNewProductImpl _value, $Res Function(_$FetchNewProductImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchNewProductImpl(
      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 _$FetchNewProductImpl implements FetchNewProduct {
  const _$FetchNewProductImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchNewProductImpl &&
            (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')
  _$$FetchNewProductImplCopyWith<_$FetchNewProductImpl> get copyWith =>
      __$$FetchNewProductImplCopyWithImpl<_$FetchNewProductImpl>(
          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}) = _$FetchNewProductImpl;

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

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

/// @nodoc
class __$$FetchLikeProductImplCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchLikeProductImpl>
    implements _$$FetchLikeProductImplCopyWith<$Res> {
  __$$FetchLikeProductImplCopyWithImpl(_$FetchLikeProductImpl _value,
      $Res Function(_$FetchLikeProductImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchLikeProductImpl(
      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 _$FetchLikeProductImpl implements FetchLikeProduct {
  const _$FetchLikeProductImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchLikeProductImpl &&
            (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')
  _$$FetchLikeProductImplCopyWith<_$FetchLikeProductImpl> get copyWith =>
      __$$FetchLikeProductImplCopyWithImpl<_$FetchLikeProductImpl>(
          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}) = _$FetchLikeProductImpl;

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

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

/// @nodoc
class __$$FetchDiscountProductImplCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchDiscountProductImpl>
    implements _$$FetchDiscountProductImplCopyWith<$Res> {
  __$$FetchDiscountProductImplCopyWithImpl(_$FetchDiscountProductImpl _value,
      $Res Function(_$FetchDiscountProductImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? isRefresh = freezed,
    Object? controller = freezed,
  }) {
    return _then(_$FetchDiscountProductImpl(
      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 _$FetchDiscountProductImpl implements FetchDiscountProduct {
  const _$FetchDiscountProductImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchDiscountProductImpl &&
            (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')
  _$$FetchDiscountProductImplCopyWith<_$FetchDiscountProductImpl>
      get copyWith =>
          __$$FetchDiscountProductImplCopyWithImpl<_$FetchDiscountProductImpl>(
              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}) = _$FetchDiscountProductImpl;

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

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

/// @nodoc
class __$$FetchMostSaleShopProductImplCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchMostSaleShopProductImpl>
    implements _$$FetchMostSaleShopProductImplCopyWith<$Res> {
  __$$FetchMostSaleShopProductImplCopyWithImpl(
      _$FetchMostSaleShopProductImpl _value,
      $Res Function(_$FetchMostSaleShopProductImpl) _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(_$FetchMostSaleShopProductImpl(
      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 _$FetchMostSaleShopProductImpl implements FetchMostSaleShopProduct {
  const _$FetchMostSaleShopProductImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchMostSaleShopProductImpl &&
            (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')
  _$$FetchMostSaleShopProductImplCopyWith<_$FetchMostSaleShopProductImpl>
      get copyWith => __$$FetchMostSaleShopProductImplCopyWithImpl<
          _$FetchMostSaleShopProductImpl>(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}) = _$FetchMostSaleShopProductImpl;

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

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

/// @nodoc
class __$$FetchNewShopProductImplCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchNewShopProductImpl>
    implements _$$FetchNewShopProductImplCopyWith<$Res> {
  __$$FetchNewShopProductImplCopyWithImpl(_$FetchNewShopProductImpl _value,
      $Res Function(_$FetchNewShopProductImpl) _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(_$FetchNewShopProductImpl(
      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 _$FetchNewShopProductImpl implements FetchNewShopProduct {
  const _$FetchNewShopProductImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchNewShopProductImpl &&
            (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')
  _$$FetchNewShopProductImplCopyWith<_$FetchNewShopProductImpl> get copyWith =>
      __$$FetchNewShopProductImplCopyWithImpl<_$FetchNewShopProductImpl>(
          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}) = _$FetchNewShopProductImpl;

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

/// @nodoc
abstract class _$$FetchProductsImplCopyWith<$Res> {
  factory _$$FetchProductsImplCopyWith(
          _$FetchProductsImpl value, $Res Function(_$FetchProductsImpl) then) =
      __$$FetchProductsImplCopyWithImpl<$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 __$$FetchProductsImplCopyWithImpl<$Res>
    extends _$ProductEventCopyWithImpl<$Res, _$FetchProductsImpl>
    implements _$$FetchProductsImplCopyWith<$Res> {
  __$$FetchProductsImplCopyWithImpl(
      _$FetchProductsImpl _value, $Res Function(_$FetchProductsImpl) _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(_$FetchProductsImpl(
      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 _$FetchProductsImpl implements FetchProducts {
  const _$FetchProductsImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$FetchProductsImpl &&
            (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')
  _$$FetchProductsImplCopyWith<_$FetchProductsImpl> get copyWith =>
      __$$FetchProductsImplCopyWithImpl<_$FetchProductsImpl>(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}) = _$FetchProductsImpl;

  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)
  _$$FetchProductsImplCopyWith<_$FetchProductsImpl> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$UpdateStateImplCopyWith<$Res> {
  factory _$$UpdateStateImplCopyWith(
          _$UpdateStateImpl value, $Res Function(_$UpdateStateImpl) then) =
      __$$UpdateStateImplCopyWithImpl<$Res>;
}

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

/// @nodoc

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

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

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

  @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() = _$UpdateStateImpl;
}

/// @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 _$$ProductStateImplCopyWith<$Res>
    implements $ProductStateCopyWith<$Res> {
  factory _$$ProductStateImplCopyWith(
          _$ProductStateImpl value, $Res Function(_$ProductStateImpl) then) =
      __$$ProductStateImplCopyWithImpl<$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 __$$ProductStateImplCopyWithImpl<$Res>
    extends _$ProductStateCopyWithImpl<$Res, _$ProductStateImpl>
    implements _$$ProductStateImplCopyWith<$Res> {
  __$$ProductStateImplCopyWithImpl(
      _$ProductStateImpl _value, $Res Function(_$ProductStateImpl) _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(_$ProductStateImpl(
      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 _$ProductStateImpl implements _ProductState {
  const _$ProductStateImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProductStateImpl &&
            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')
  _$$ProductStateImplCopyWith<_$ProductStateImpl> get copyWith =>
      __$$ProductStateImplCopyWithImpl<_$ProductStateImpl>(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}) = _$ProductStateImpl;

  @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)
  _$$ProductStateImplCopyWith<_$ProductStateImpl> get copyWith =>
      throw _privateConstructorUsedError;
}
