// 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 'cart_bloc.dart';

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

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

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

/// @nodoc
mixin _$CartEvent {
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $CartEventCopyWith<$Res> {
  factory $CartEventCopyWith(CartEvent value, $Res Function(CartEvent) then) =
      _$CartEventCopyWithImpl<$Res, CartEvent>;
}

/// @nodoc
class _$CartEventCopyWithImpl<$Res, $Val extends CartEvent>
    implements $CartEventCopyWith<$Res> {
  _$CartEventCopyWithImpl(this._value, this._then);

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

/// @nodoc
abstract class _$$GetCartCopyWith<$Res> {
  factory _$$GetCartCopyWith(_$GetCart value, $Res Function(_$GetCart) then) =
      __$$GetCartCopyWithImpl<$Res>;
  @useResult
  $Res call({BuildContext context, bool? refresh, String? coupon});
}

/// @nodoc
class __$$GetCartCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$GetCart>
    implements _$$GetCartCopyWith<$Res> {
  __$$GetCartCopyWithImpl(_$GetCart _value, $Res Function(_$GetCart) _then)
      : super(_value, _then);

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

/// @nodoc

class _$GetCart implements GetCart {
  const _$GetCart({required this.context, this.refresh, this.coupon});

  @override
  final BuildContext context;
  @override
  final bool? refresh;
  @override
  final String? coupon;

  @override
  String toString() {
    return 'CartEvent.getCart(context: $context, refresh: $refresh, coupon: $coupon)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return getCart(context, refresh, coupon);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return getCart?.call(context, refresh, coupon);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (getCart != null) {
      return getCart(context, refresh, coupon);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return getCart(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return getCart?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (getCart != null) {
      return getCart(this);
    }
    return orElse();
  }
}

abstract class GetCart implements CartEvent {
  const factory GetCart(
      {required final BuildContext context,
      final bool? refresh,
      final String? coupon}) = _$GetCart;

  BuildContext get context;
  bool? get refresh;
  String? get coupon;
  @JsonKey(ignore: true)
  _$$GetCartCopyWith<_$GetCart> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$InsertCartCopyWith<$Res> {
  factory _$$InsertCartCopyWith(
          _$InsertCart value, $Res Function(_$InsertCart) then) =
      __$$InsertCartCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context,
      bool? refresh,
      String? coupon,
      VoidCallback onSuccess});
}

/// @nodoc
class __$$InsertCartCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$InsertCart>
    implements _$$InsertCartCopyWith<$Res> {
  __$$InsertCartCopyWithImpl(
      _$InsertCart _value, $Res Function(_$InsertCart) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? refresh = freezed,
    Object? coupon = freezed,
    Object? onSuccess = null,
  }) {
    return _then(_$InsertCart(
      context: null == context
          ? _value.context
          : context // ignore: cast_nullable_to_non_nullable
              as BuildContext,
      refresh: freezed == refresh
          ? _value.refresh
          : refresh // ignore: cast_nullable_to_non_nullable
              as bool?,
      coupon: freezed == coupon
          ? _value.coupon
          : coupon // ignore: cast_nullable_to_non_nullable
              as String?,
      onSuccess: null == onSuccess
          ? _value.onSuccess
          : onSuccess // ignore: cast_nullable_to_non_nullable
              as VoidCallback,
    ));
  }
}

/// @nodoc

class _$InsertCart implements InsertCart {
  const _$InsertCart(
      {required this.context,
      this.refresh,
      this.coupon,
      required this.onSuccess});

  @override
  final BuildContext context;
  @override
  final bool? refresh;
  @override
  final String? coupon;
  @override
  final VoidCallback onSuccess;

  @override
  String toString() {
    return 'CartEvent.insertCart(context: $context, refresh: $refresh, coupon: $coupon, onSuccess: $onSuccess)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$InsertCart &&
            (identical(other.context, context) || other.context == context) &&
            (identical(other.refresh, refresh) || other.refresh == refresh) &&
            (identical(other.coupon, coupon) || other.coupon == coupon) &&
            (identical(other.onSuccess, onSuccess) ||
                other.onSuccess == onSuccess));
  }

  @override
  int get hashCode =>
      Object.hash(runtimeType, context, refresh, coupon, onSuccess);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return insertCart(context, refresh, coupon, onSuccess);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return insertCart?.call(context, refresh, coupon, onSuccess);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (insertCart != null) {
      return insertCart(context, refresh, coupon, onSuccess);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return insertCart(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return insertCart?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (insertCart != null) {
      return insertCart(this);
    }
    return orElse();
  }
}

abstract class InsertCart implements CartEvent {
  const factory InsertCart(
      {required final BuildContext context,
      final bool? refresh,
      final String? coupon,
      required final VoidCallback onSuccess}) = _$InsertCart;

  BuildContext get context;
  bool? get refresh;
  String? get coupon;
  VoidCallback get onSuccess;
  @JsonKey(ignore: true)
  _$$InsertCartCopyWith<_$InsertCart> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$RemoveProductCartCopyWith<$Res> {
  factory _$$RemoveProductCartCopyWith(
          _$RemoveProductCart value, $Res Function(_$RemoveProductCart) then) =
      __$$RemoveProductCartCopyWithImpl<$Res>;
  @useResult
  $Res call({BuildContext context, int? cartDetailId});
}

/// @nodoc
class __$$RemoveProductCartCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$RemoveProductCart>
    implements _$$RemoveProductCartCopyWith<$Res> {
  __$$RemoveProductCartCopyWithImpl(
      _$RemoveProductCart _value, $Res Function(_$RemoveProductCart) _then)
      : super(_value, _then);

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

/// @nodoc

class _$RemoveProductCart implements RemoveProductCart {
  const _$RemoveProductCart(
      {required this.context, required this.cartDetailId});

  @override
  final BuildContext context;
  @override
  final int? cartDetailId;

  @override
  String toString() {
    return 'CartEvent.removeProductCart(context: $context, cartDetailId: $cartDetailId)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return removeProductCart(context, cartDetailId);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return removeProductCart?.call(context, cartDetailId);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (removeProductCart != null) {
      return removeProductCart(context, cartDetailId);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return removeProductCart(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return removeProductCart?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (removeProductCart != null) {
      return removeProductCart(this);
    }
    return orElse();
  }
}

abstract class RemoveProductCart implements CartEvent {
  const factory RemoveProductCart(
      {required final BuildContext context,
      required final int? cartDetailId}) = _$RemoveProductCart;

  BuildContext get context;
  int? get cartDetailId;
  @JsonKey(ignore: true)
  _$$RemoveProductCartCopyWith<_$RemoveProductCart> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$SetNotesCopyWith<$Res> {
  factory _$$SetNotesCopyWith(
          _$SetNotes value, $Res Function(_$SetNotes) then) =
      __$$SetNotesCopyWithImpl<$Res>;
  @useResult
  $Res call({int stockId, String note});
}

/// @nodoc
class __$$SetNotesCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$SetNotes>
    implements _$$SetNotesCopyWith<$Res> {
  __$$SetNotesCopyWithImpl(_$SetNotes _value, $Res Function(_$SetNotes) _then)
      : super(_value, _then);

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

/// @nodoc

class _$SetNotes implements SetNotes {
  const _$SetNotes({required this.stockId, required this.note});

  @override
  final int stockId;
  @override
  final String note;

  @override
  String toString() {
    return 'CartEvent.setNotes(stockId: $stockId, note: $note)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return setNotes(stockId, note);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return setNotes?.call(stockId, note);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (setNotes != null) {
      return setNotes(stockId, note);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return setNotes(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return setNotes?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (setNotes != null) {
      return setNotes(this);
    }
    return orElse();
  }
}

abstract class SetNotes implements CartEvent {
  const factory SetNotes(
      {required final int stockId, required final String note}) = _$SetNotes;

  int get stockId;
  String get note;
  @JsonKey(ignore: true)
  _$$SetNotesCopyWith<_$SetNotes> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$ChangeReadyCopyWith<$Res> {
  factory _$$ChangeReadyCopyWith(
          _$ChangeReady value, $Res Function(_$ChangeReady) then) =
      __$$ChangeReadyCopyWithImpl<$Res>;
  @useResult
  $Res call({BuildContext context, String uuid, VoidCallback onSuccess});
}

/// @nodoc
class __$$ChangeReadyCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$ChangeReady>
    implements _$$ChangeReadyCopyWith<$Res> {
  __$$ChangeReadyCopyWithImpl(
      _$ChangeReady _value, $Res Function(_$ChangeReady) _then)
      : super(_value, _then);

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

/// @nodoc

class _$ChangeReady implements ChangeReady {
  const _$ChangeReady(
      {required this.context, required this.uuid, required this.onSuccess});

  @override
  final BuildContext context;
  @override
  final String uuid;
  @override
  final VoidCallback onSuccess;

  @override
  String toString() {
    return 'CartEvent.changeReady(context: $context, uuid: $uuid, onSuccess: $onSuccess)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return changeReady(context, uuid, onSuccess);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return changeReady?.call(context, uuid, onSuccess);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (changeReady != null) {
      return changeReady(context, uuid, onSuccess);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return changeReady(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return changeReady?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (changeReady != null) {
      return changeReady(this);
    }
    return orElse();
  }
}

abstract class ChangeReady implements CartEvent {
  const factory ChangeReady(
      {required final BuildContext context,
      required final String uuid,
      required final VoidCallback onSuccess}) = _$ChangeReady;

  BuildContext get context;
  String get uuid;
  VoidCallback get onSuccess;
  @JsonKey(ignore: true)
  _$$ChangeReadyCopyWith<_$ChangeReady> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$StartGroupOrderCopyWith<$Res> {
  factory _$$StartGroupOrderCopyWith(
          _$StartGroupOrder value, $Res Function(_$StartGroupOrder) then) =
      __$$StartGroupOrderCopyWithImpl<$Res>;
  @useResult
  $Res call({BuildContext context, VoidCallback onSuccess});
}

/// @nodoc
class __$$StartGroupOrderCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$StartGroupOrder>
    implements _$$StartGroupOrderCopyWith<$Res> {
  __$$StartGroupOrderCopyWithImpl(
      _$StartGroupOrder _value, $Res Function(_$StartGroupOrder) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? onSuccess = null,
  }) {
    return _then(_$StartGroupOrder(
      context: null == context
          ? _value.context
          : context // ignore: cast_nullable_to_non_nullable
              as BuildContext,
      onSuccess: null == onSuccess
          ? _value.onSuccess
          : onSuccess // ignore: cast_nullable_to_non_nullable
              as VoidCallback,
    ));
  }
}

/// @nodoc

class _$StartGroupOrder implements StartGroupOrder {
  const _$StartGroupOrder({required this.context, required this.onSuccess});

  @override
  final BuildContext context;
  @override
  final VoidCallback onSuccess;

  @override
  String toString() {
    return 'CartEvent.startGroupOrder(context: $context, onSuccess: $onSuccess)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return startGroupOrder(context, onSuccess);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return startGroupOrder?.call(context, onSuccess);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (startGroupOrder != null) {
      return startGroupOrder(context, onSuccess);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return startGroupOrder(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return startGroupOrder?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (startGroupOrder != null) {
      return startGroupOrder(this);
    }
    return orElse();
  }
}

abstract class StartGroupOrder implements CartEvent {
  const factory StartGroupOrder(
      {required final BuildContext context,
      required final VoidCallback onSuccess}) = _$StartGroupOrder;

  BuildContext get context;
  VoidCallback get onSuccess;
  @JsonKey(ignore: true)
  _$$StartGroupOrderCopyWith<_$StartGroupOrder> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$CreateLinkCopyWith<$Res> {
  factory _$$CreateLinkCopyWith(
          _$CreateLink value, $Res Function(_$CreateLink) then) =
      __$$CreateLinkCopyWithImpl<$Res>;
  @useResult
  $Res call({BuildContext context});
}

/// @nodoc
class __$$CreateLinkCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$CreateLink>
    implements _$$CreateLinkCopyWith<$Res> {
  __$$CreateLinkCopyWithImpl(
      _$CreateLink _value, $Res Function(_$CreateLink) _then)
      : super(_value, _then);

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

/// @nodoc

class _$CreateLink implements CreateLink {
  const _$CreateLink({required this.context});

  @override
  final BuildContext context;

  @override
  String toString() {
    return 'CartEvent.createLink(context: $context)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return createLink(context);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return createLink?.call(context);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (createLink != null) {
      return createLink(context);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return createLink(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return createLink?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (createLink != null) {
      return createLink(this);
    }
    return orElse();
  }
}

abstract class CreateLink implements CartEvent {
  const factory CreateLink({required final BuildContext context}) =
      _$CreateLink;

  BuildContext get context;
  @JsonKey(ignore: true)
  _$$CreateLinkCopyWith<_$CreateLink> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$DeleteCartCopyWith<$Res> {
  factory _$$DeleteCartCopyWith(
          _$DeleteCart value, $Res Function(_$DeleteCart) then) =
      __$$DeleteCartCopyWithImpl<$Res>;
  @useResult
  $Res call({BuildContext context});
}

/// @nodoc
class __$$DeleteCartCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$DeleteCart>
    implements _$$DeleteCartCopyWith<$Res> {
  __$$DeleteCartCopyWithImpl(
      _$DeleteCart _value, $Res Function(_$DeleteCart) _then)
      : super(_value, _then);

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

/// @nodoc

class _$DeleteCart implements DeleteCart {
  const _$DeleteCart({required this.context});

  @override
  final BuildContext context;

  @override
  String toString() {
    return 'CartEvent.deleteCart(context: $context)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return deleteCart(context);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return deleteCart?.call(context);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (deleteCart != null) {
      return deleteCart(context);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return deleteCart(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return deleteCart?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (deleteCart != null) {
      return deleteCart(this);
    }
    return orElse();
  }
}

abstract class DeleteCart implements CartEvent {
  const factory DeleteCart({required final BuildContext context}) =
      _$DeleteCart;

  BuildContext get context;
  @JsonKey(ignore: true)
  _$$DeleteCartCopyWith<_$DeleteCart> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$DeleteUserCopyWith<$Res> {
  factory _$$DeleteUserCopyWith(
          _$DeleteUser value, $Res Function(_$DeleteUser) then) =
      __$$DeleteUserCopyWithImpl<$Res>;
  @useResult
  $Res call({BuildContext context, String uuid, VoidCallback onSuccess});
}

/// @nodoc
class __$$DeleteUserCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$DeleteUser>
    implements _$$DeleteUserCopyWith<$Res> {
  __$$DeleteUserCopyWithImpl(
      _$DeleteUser _value, $Res Function(_$DeleteUser) _then)
      : super(_value, _then);

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

/// @nodoc

class _$DeleteUser implements DeleteUser {
  const _$DeleteUser(
      {required this.context, required this.uuid, required this.onSuccess});

  @override
  final BuildContext context;
  @override
  final String uuid;
  @override
  final VoidCallback onSuccess;

  @override
  String toString() {
    return 'CartEvent.deleteUser(context: $context, uuid: $uuid, onSuccess: $onSuccess)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return deleteUser(context, uuid, onSuccess);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return deleteUser?.call(context, uuid, onSuccess);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (deleteUser != null) {
      return deleteUser(context, uuid, onSuccess);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return deleteUser(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return deleteUser?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (deleteUser != null) {
      return deleteUser(this);
    }
    return orElse();
  }
}

abstract class DeleteUser implements CartEvent {
  const factory DeleteUser(
      {required final BuildContext context,
      required final String uuid,
      required final VoidCallback onSuccess}) = _$DeleteUser;

  BuildContext get context;
  String get uuid;
  VoidCallback get onSuccess;
  @JsonKey(ignore: true)
  _$$DeleteUserCopyWith<_$DeleteUser> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$CheckCouponCopyWith<$Res> {
  factory _$$CheckCouponCopyWith(
          _$CheckCoupon value, $Res Function(_$CheckCoupon) then) =
      __$$CheckCouponCopyWithImpl<$Res>;
  @useResult
  $Res call({BuildContext context, String coupon, int shopId, bool? clear});
}

/// @nodoc
class __$$CheckCouponCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$CheckCoupon>
    implements _$$CheckCouponCopyWith<$Res> {
  __$$CheckCouponCopyWithImpl(
      _$CheckCoupon _value, $Res Function(_$CheckCoupon) _then)
      : super(_value, _then);

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

/// @nodoc

class _$CheckCoupon implements CheckCoupon {
  const _$CheckCoupon(
      {required this.context,
      required this.coupon,
      required this.shopId,
      this.clear});

  @override
  final BuildContext context;
  @override
  final String coupon;
  @override
  final int shopId;
  @override
  final bool? clear;

  @override
  String toString() {
    return 'CartEvent.checkCoupon(context: $context, coupon: $coupon, shopId: $shopId, clear: $clear)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return checkCoupon(context, coupon, shopId, clear);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return checkCoupon?.call(context, coupon, shopId, clear);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (checkCoupon != null) {
      return checkCoupon(context, coupon, shopId, clear);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return checkCoupon(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return checkCoupon?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (checkCoupon != null) {
      return checkCoupon(this);
    }
    return orElse();
  }
}

abstract class CheckCoupon implements CartEvent {
  const factory CheckCoupon(
      {required final BuildContext context,
      required final String coupon,
      required final int shopId,
      final bool? clear}) = _$CheckCoupon;

  BuildContext get context;
  String get coupon;
  int get shopId;
  bool? get clear;
  @JsonKey(ignore: true)
  _$$CheckCouponCopyWith<_$CheckCoupon> get copyWith =>
      throw _privateConstructorUsedError;
}

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

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

/// @nodoc

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

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

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

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return updateState();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return updateState?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (updateState != null) {
      return updateState();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return updateState(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return updateState?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (updateState != null) {
      return updateState(this);
    }
    return orElse();
  }
}

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

/// @nodoc
abstract class _$$CalculateCartCopyWith<$Res> {
  factory _$$CalculateCartCopyWith(
          _$CalculateCart value, $Res Function(_$CalculateCart) then) =
      __$$CalculateCartCopyWithImpl<$Res>;
  @useResult
  $Res call(
      {BuildContext context,
      int? deliveryPriceId,
      int? pointId,
      bool fullDigital});
}

/// @nodoc
class __$$CalculateCartCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$CalculateCart>
    implements _$$CalculateCartCopyWith<$Res> {
  __$$CalculateCartCopyWithImpl(
      _$CalculateCart _value, $Res Function(_$CalculateCart) _then)
      : super(_value, _then);

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

/// @nodoc

class _$CalculateCart implements CalculateCart {
  const _$CalculateCart(
      {required this.context,
      required this.deliveryPriceId,
      required this.pointId,
      required this.fullDigital});

  @override
  final BuildContext context;
  @override
  final int? deliveryPriceId;
  @override
  final int? pointId;
  @override
  final bool fullDigital;

  @override
  String toString() {
    return 'CartEvent.calculateCart(context: $context, deliveryPriceId: $deliveryPriceId, pointId: $pointId, fullDigital: $fullDigital)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$CalculateCart &&
            (identical(other.context, context) || other.context == context) &&
            (identical(other.deliveryPriceId, deliveryPriceId) ||
                other.deliveryPriceId == deliveryPriceId) &&
            (identical(other.pointId, pointId) || other.pointId == pointId) &&
            (identical(other.fullDigital, fullDigital) ||
                other.fullDigital == fullDigital));
  }

  @override
  int get hashCode =>
      Object.hash(runtimeType, context, deliveryPriceId, pointId, fullDigital);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return calculateCart(context, deliveryPriceId, pointId, fullDigital);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return calculateCart?.call(context, deliveryPriceId, pointId, fullDigital);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (calculateCart != null) {
      return calculateCart(context, deliveryPriceId, pointId, fullDigital);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return calculateCart(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return calculateCart?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (calculateCart != null) {
      return calculateCart(this);
    }
    return orElse();
  }
}

abstract class CalculateCart implements CartEvent {
  const factory CalculateCart(
      {required final BuildContext context,
      required final int? deliveryPriceId,
      required final int? pointId,
      required final bool fullDigital}) = _$CalculateCart;

  BuildContext get context;
  int? get deliveryPriceId;
  int? get pointId;
  bool get fullDigital;
  @JsonKey(ignore: true)
  _$$CalculateCartCopyWith<_$CalculateCart> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$CalculateCartWithCouponCopyWith<$Res> {
  factory _$$CalculateCartWithCouponCopyWith(_$CalculateCartWithCoupon value,
          $Res Function(_$CalculateCartWithCoupon) then) =
      __$$CalculateCartWithCouponCopyWithImpl<$Res>;
  @useResult
  $Res call({BuildContext context});
}

/// @nodoc
class __$$CalculateCartWithCouponCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$CalculateCartWithCoupon>
    implements _$$CalculateCartWithCouponCopyWith<$Res> {
  __$$CalculateCartWithCouponCopyWithImpl(_$CalculateCartWithCoupon _value,
      $Res Function(_$CalculateCartWithCoupon) _then)
      : super(_value, _then);

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

/// @nodoc

class _$CalculateCartWithCoupon implements CalculateCartWithCoupon {
  const _$CalculateCartWithCoupon({required this.context});

  @override
  final BuildContext context;

  @override
  String toString() {
    return 'CartEvent.calculateCartWithCoupon(context: $context)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? refresh, String? coupon)
        getCart,
    required TResult Function(BuildContext context, bool? refresh,
            String? coupon, VoidCallback onSuccess)
        insertCart,
    required TResult Function(BuildContext context, int? cartDetailId)
        removeProductCart,
    required TResult Function(int stockId, String note) setNotes,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        changeReady,
    required TResult Function(BuildContext context, VoidCallback onSuccess)
        startGroupOrder,
    required TResult Function(BuildContext context) createLink,
    required TResult Function(BuildContext context) deleteCart,
    required TResult Function(
            BuildContext context, String uuid, VoidCallback onSuccess)
        deleteUser,
    required TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)
        checkCoupon,
    required TResult Function() updateState,
    required TResult Function(BuildContext context, int? deliveryPriceId,
            int? pointId, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
  }) {
    return calculateCartWithCoupon(context);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult? Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult? Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult? Function(int stockId, String note)? setNotes,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult? Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult? Function(BuildContext context)? createLink,
    TResult? Function(BuildContext context)? deleteCart,
    TResult? Function(
            BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult? Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult? Function()? updateState,
    TResult? Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
  }) {
    return calculateCartWithCoupon?.call(context);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(BuildContext context, bool? refresh, String? coupon)?
        getCart,
    TResult Function(BuildContext context, bool? refresh, String? coupon,
            VoidCallback onSuccess)?
        insertCart,
    TResult Function(BuildContext context, int? cartDetailId)?
        removeProductCart,
    TResult Function(int stockId, String note)? setNotes,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        changeReady,
    TResult Function(BuildContext context, VoidCallback onSuccess)?
        startGroupOrder,
    TResult Function(BuildContext context)? createLink,
    TResult Function(BuildContext context)? deleteCart,
    TResult Function(BuildContext context, String uuid, VoidCallback onSuccess)?
        deleteUser,
    TResult Function(
            BuildContext context, String coupon, int shopId, bool? clear)?
        checkCoupon,
    TResult Function()? updateState,
    TResult Function(BuildContext context, int? deliveryPriceId, int? pointId,
            bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (calculateCartWithCoupon != null) {
      return calculateCartWithCoupon(context);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(GetCart value) getCart,
    required TResult Function(InsertCart value) insertCart,
    required TResult Function(RemoveProductCart value) removeProductCart,
    required TResult Function(SetNotes value) setNotes,
    required TResult Function(ChangeReady value) changeReady,
    required TResult Function(StartGroupOrder value) startGroupOrder,
    required TResult Function(CreateLink value) createLink,
    required TResult Function(DeleteCart value) deleteCart,
    required TResult Function(DeleteUser value) deleteUser,
    required TResult Function(CheckCoupon value) checkCoupon,
    required TResult Function(UpdateState value) updateState,
    required TResult Function(CalculateCart value) calculateCart,
    required TResult Function(CalculateCartWithCoupon value)
        calculateCartWithCoupon,
  }) {
    return calculateCartWithCoupon(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(GetCart value)? getCart,
    TResult? Function(InsertCart value)? insertCart,
    TResult? Function(RemoveProductCart value)? removeProductCart,
    TResult? Function(SetNotes value)? setNotes,
    TResult? Function(ChangeReady value)? changeReady,
    TResult? Function(StartGroupOrder value)? startGroupOrder,
    TResult? Function(CreateLink value)? createLink,
    TResult? Function(DeleteCart value)? deleteCart,
    TResult? Function(DeleteUser value)? deleteUser,
    TResult? Function(CheckCoupon value)? checkCoupon,
    TResult? Function(UpdateState value)? updateState,
    TResult? Function(CalculateCart value)? calculateCart,
    TResult? Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
  }) {
    return calculateCartWithCoupon?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(GetCart value)? getCart,
    TResult Function(InsertCart value)? insertCart,
    TResult Function(RemoveProductCart value)? removeProductCart,
    TResult Function(SetNotes value)? setNotes,
    TResult Function(ChangeReady value)? changeReady,
    TResult Function(StartGroupOrder value)? startGroupOrder,
    TResult Function(CreateLink value)? createLink,
    TResult Function(DeleteCart value)? deleteCart,
    TResult Function(DeleteUser value)? deleteUser,
    TResult Function(CheckCoupon value)? checkCoupon,
    TResult Function(UpdateState value)? updateState,
    TResult Function(CalculateCart value)? calculateCart,
    TResult Function(CalculateCartWithCoupon value)? calculateCartWithCoupon,
    required TResult orElse(),
  }) {
    if (calculateCartWithCoupon != null) {
      return calculateCartWithCoupon(this);
    }
    return orElse();
  }
}

abstract class CalculateCartWithCoupon implements CartEvent {
  const factory CalculateCartWithCoupon({required final BuildContext context}) =
      _$CalculateCartWithCoupon;

  BuildContext get context;
  @JsonKey(ignore: true)
  _$$CalculateCartWithCouponCopyWith<_$CalculateCartWithCoupon> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
mixin _$CartState {
  bool get isLoading => throw _privateConstructorUsedError;
  bool get isButtonLoading => throw _privateConstructorUsedError;
  Cart? get cart => throw _privateConstructorUsedError;
  List<ProductNote>? get notes => throw _privateConstructorUsedError;
  Map<int, String> get coupons => throw _privateConstructorUsedError;
  CartCalculate? get cartCalculate => throw _privateConstructorUsedError;
  String? get groupOrderLink => throw _privateConstructorUsedError;
  ProductCalculateResponse? get productCalculate =>
      throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $CartStateCopyWith<$Res> {
  factory $CartStateCopyWith(CartState value, $Res Function(CartState) then) =
      _$CartStateCopyWithImpl<$Res, CartState>;
  @useResult
  $Res call(
      {bool isLoading,
      bool isButtonLoading,
      Cart? cart,
      List<ProductNote>? notes,
      Map<int, String> coupons,
      CartCalculate? cartCalculate,
      String? groupOrderLink,
      ProductCalculateResponse? productCalculate});
}

/// @nodoc
class _$CartStateCopyWithImpl<$Res, $Val extends CartState>
    implements $CartStateCopyWith<$Res> {
  _$CartStateCopyWithImpl(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? isLoading = null,
    Object? isButtonLoading = null,
    Object? cart = freezed,
    Object? notes = freezed,
    Object? coupons = null,
    Object? cartCalculate = freezed,
    Object? groupOrderLink = freezed,
    Object? productCalculate = freezed,
  }) {
    return _then(_value.copyWith(
      isLoading: null == isLoading
          ? _value.isLoading
          : isLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      isButtonLoading: null == isButtonLoading
          ? _value.isButtonLoading
          : isButtonLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      cart: freezed == cart
          ? _value.cart
          : cart // ignore: cast_nullable_to_non_nullable
              as Cart?,
      notes: freezed == notes
          ? _value.notes
          : notes // ignore: cast_nullable_to_non_nullable
              as List<ProductNote>?,
      coupons: null == coupons
          ? _value.coupons
          : coupons // ignore: cast_nullable_to_non_nullable
              as Map<int, String>,
      cartCalculate: freezed == cartCalculate
          ? _value.cartCalculate
          : cartCalculate // ignore: cast_nullable_to_non_nullable
              as CartCalculate?,
      groupOrderLink: freezed == groupOrderLink
          ? _value.groupOrderLink
          : groupOrderLink // ignore: cast_nullable_to_non_nullable
              as String?,
      productCalculate: freezed == productCalculate
          ? _value.productCalculate
          : productCalculate // ignore: cast_nullable_to_non_nullable
              as ProductCalculateResponse?,
    ) as $Val);
  }
}

/// @nodoc
abstract class _$$_CartStateCopyWith<$Res> implements $CartStateCopyWith<$Res> {
  factory _$$_CartStateCopyWith(
          _$_CartState value, $Res Function(_$_CartState) then) =
      __$$_CartStateCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {bool isLoading,
      bool isButtonLoading,
      Cart? cart,
      List<ProductNote>? notes,
      Map<int, String> coupons,
      CartCalculate? cartCalculate,
      String? groupOrderLink,
      ProductCalculateResponse? productCalculate});
}

/// @nodoc
class __$$_CartStateCopyWithImpl<$Res>
    extends _$CartStateCopyWithImpl<$Res, _$_CartState>
    implements _$$_CartStateCopyWith<$Res> {
  __$$_CartStateCopyWithImpl(
      _$_CartState _value, $Res Function(_$_CartState) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? isLoading = null,
    Object? isButtonLoading = null,
    Object? cart = freezed,
    Object? notes = freezed,
    Object? coupons = null,
    Object? cartCalculate = freezed,
    Object? groupOrderLink = freezed,
    Object? productCalculate = freezed,
  }) {
    return _then(_$_CartState(
      isLoading: null == isLoading
          ? _value.isLoading
          : isLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      isButtonLoading: null == isButtonLoading
          ? _value.isButtonLoading
          : isButtonLoading // ignore: cast_nullable_to_non_nullable
              as bool,
      cart: freezed == cart
          ? _value.cart
          : cart // ignore: cast_nullable_to_non_nullable
              as Cart?,
      notes: freezed == notes
          ? _value._notes
          : notes // ignore: cast_nullable_to_non_nullable
              as List<ProductNote>?,
      coupons: null == coupons
          ? _value._coupons
          : coupons // ignore: cast_nullable_to_non_nullable
              as Map<int, String>,
      cartCalculate: freezed == cartCalculate
          ? _value.cartCalculate
          : cartCalculate // ignore: cast_nullable_to_non_nullable
              as CartCalculate?,
      groupOrderLink: freezed == groupOrderLink
          ? _value.groupOrderLink
          : groupOrderLink // ignore: cast_nullable_to_non_nullable
              as String?,
      productCalculate: freezed == productCalculate
          ? _value.productCalculate
          : productCalculate // ignore: cast_nullable_to_non_nullable
              as ProductCalculateResponse?,
    ));
  }
}

/// @nodoc

class _$_CartState implements _CartState {
  const _$_CartState(
      {this.isLoading = false,
      this.isButtonLoading = true,
      this.cart = null,
      final List<ProductNote>? notes = const [],
      final Map<int, String> coupons = const {},
      this.cartCalculate = null,
      this.groupOrderLink = null,
      this.productCalculate = null})
      : _notes = notes,
        _coupons = coupons;

  @override
  @JsonKey()
  final bool isLoading;
  @override
  @JsonKey()
  final bool isButtonLoading;
  @override
  @JsonKey()
  final Cart? cart;
  final List<ProductNote>? _notes;
  @override
  @JsonKey()
  List<ProductNote>? get notes {
    final value = _notes;
    if (value == null) return null;
    if (_notes is EqualUnmodifiableListView) return _notes;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final Map<int, String> _coupons;
  @override
  @JsonKey()
  Map<int, String> get coupons {
    if (_coupons is EqualUnmodifiableMapView) return _coupons;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableMapView(_coupons);
  }

  @override
  @JsonKey()
  final CartCalculate? cartCalculate;
  @override
  @JsonKey()
  final String? groupOrderLink;
  @override
  @JsonKey()
  final ProductCalculateResponse? productCalculate;

  @override
  String toString() {
    return 'CartState(isLoading: $isLoading, isButtonLoading: $isButtonLoading, cart: $cart, notes: $notes, coupons: $coupons, cartCalculate: $cartCalculate, groupOrderLink: $groupOrderLink, productCalculate: $productCalculate)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$_CartState &&
            (identical(other.isLoading, isLoading) ||
                other.isLoading == isLoading) &&
            (identical(other.isButtonLoading, isButtonLoading) ||
                other.isButtonLoading == isButtonLoading) &&
            (identical(other.cart, cart) || other.cart == cart) &&
            const DeepCollectionEquality().equals(other._notes, _notes) &&
            const DeepCollectionEquality().equals(other._coupons, _coupons) &&
            (identical(other.cartCalculate, cartCalculate) ||
                other.cartCalculate == cartCalculate) &&
            (identical(other.groupOrderLink, groupOrderLink) ||
                other.groupOrderLink == groupOrderLink) &&
            (identical(other.productCalculate, productCalculate) ||
                other.productCalculate == productCalculate));
  }

  @override
  int get hashCode => Object.hash(
      runtimeType,
      isLoading,
      isButtonLoading,
      cart,
      const DeepCollectionEquality().hash(_notes),
      const DeepCollectionEquality().hash(_coupons),
      cartCalculate,
      groupOrderLink,
      productCalculate);

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

abstract class _CartState implements CartState {
  const factory _CartState(
      {final bool isLoading,
      final bool isButtonLoading,
      final Cart? cart,
      final List<ProductNote>? notes,
      final Map<int, String> coupons,
      final CartCalculate? cartCalculate,
      final String? groupOrderLink,
      final ProductCalculateResponse? productCalculate}) = _$_CartState;

  @override
  bool get isLoading;
  @override
  bool get isButtonLoading;
  @override
  Cart? get cart;
  @override
  List<ProductNote>? get notes;
  @override
  Map<int, String> get coupons;
  @override
  CartCalculate? get cartCalculate;
  @override
  String? get groupOrderLink;
  @override
  ProductCalculateResponse? get productCalculate;
  @override
  @JsonKey(ignore: true)
  _$$_CartStateCopyWith<_$_CartState> get copyWith =>
      throw _privateConstructorUsedError;
}
