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

/// @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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) =>
      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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) =>
      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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) =>
      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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) =>
      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,
    TResult Function(AcceptTerm value)? acceptTerm,
    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 _$$GetCartImplCopyWith<$Res> {
  factory _$$GetCartImplCopyWith(
          _$GetCartImpl value, $Res Function(_$GetCartImpl) then) =
      __$$GetCartImplCopyWithImpl<$Res>;
  @useResult
  $Res call({BuildContext context, bool? refresh, String? coupon});
}

/// @nodoc
class __$$GetCartImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$GetCartImpl>
    implements _$$GetCartImplCopyWith<$Res> {
  __$$GetCartImplCopyWithImpl(
      _$GetCartImpl _value, $Res Function(_$GetCartImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? refresh = freezed,
    Object? coupon = freezed,
  }) {
    return _then(_$GetCartImpl(
      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 _$GetCartImpl implements GetCart {
  const _$GetCartImpl({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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$GetCartImpl &&
            (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')
  _$$GetCartImplCopyWith<_$GetCartImpl> get copyWith =>
      __$$GetCartImplCopyWithImpl<_$GetCartImpl>(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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    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}) = _$GetCartImpl;

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

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

/// @nodoc
class __$$InsertCartImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$InsertCartImpl>
    implements _$$InsertCartImplCopyWith<$Res> {
  __$$InsertCartImplCopyWithImpl(
      _$InsertCartImpl _value, $Res Function(_$InsertCartImpl) _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(_$InsertCartImpl(
      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 _$InsertCartImpl implements InsertCart {
  const _$InsertCartImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$InsertCartImpl &&
            (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')
  _$$InsertCartImplCopyWith<_$InsertCartImpl> get copyWith =>
      __$$InsertCartImplCopyWithImpl<_$InsertCartImpl>(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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    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}) = _$InsertCartImpl;

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

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

/// @nodoc
class __$$RemoveProductCartImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$RemoveProductCartImpl>
    implements _$$RemoveProductCartImplCopyWith<$Res> {
  __$$RemoveProductCartImplCopyWithImpl(_$RemoveProductCartImpl _value,
      $Res Function(_$RemoveProductCartImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? cartDetailId = freezed,
  }) {
    return _then(_$RemoveProductCartImpl(
      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 _$RemoveProductCartImpl implements RemoveProductCart {
  const _$RemoveProductCartImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$RemoveProductCartImpl &&
            (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')
  _$$RemoveProductCartImplCopyWith<_$RemoveProductCartImpl> get copyWith =>
      __$$RemoveProductCartImplCopyWithImpl<_$RemoveProductCartImpl>(
          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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    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}) = _$RemoveProductCartImpl;

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

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

/// @nodoc
class __$$SetNotesImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$SetNotesImpl>
    implements _$$SetNotesImplCopyWith<$Res> {
  __$$SetNotesImplCopyWithImpl(
      _$SetNotesImpl _value, $Res Function(_$SetNotesImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? stockId = null,
    Object? note = null,
  }) {
    return _then(_$SetNotesImpl(
      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 _$SetNotesImpl implements SetNotes {
  const _$SetNotesImpl({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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$SetNotesImpl &&
            (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')
  _$$SetNotesImplCopyWith<_$SetNotesImpl> get copyWith =>
      __$$SetNotesImplCopyWithImpl<_$SetNotesImpl>(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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    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}) = _$SetNotesImpl;

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

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

/// @nodoc
class __$$ChangeReadyImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$ChangeReadyImpl>
    implements _$$ChangeReadyImplCopyWith<$Res> {
  __$$ChangeReadyImplCopyWithImpl(
      _$ChangeReadyImpl _value, $Res Function(_$ChangeReadyImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? uuid = null,
    Object? onSuccess = null,
  }) {
    return _then(_$ChangeReadyImpl(
      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 _$ChangeReadyImpl implements ChangeReady {
  const _$ChangeReadyImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ChangeReadyImpl &&
            (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')
  _$$ChangeReadyImplCopyWith<_$ChangeReadyImpl> get copyWith =>
      __$$ChangeReadyImplCopyWithImpl<_$ChangeReadyImpl>(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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    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}) = _$ChangeReadyImpl;

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

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

/// @nodoc
class __$$StartGroupOrderImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$StartGroupOrderImpl>
    implements _$$StartGroupOrderImplCopyWith<$Res> {
  __$$StartGroupOrderImplCopyWithImpl(
      _$StartGroupOrderImpl _value, $Res Function(_$StartGroupOrderImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? onSuccess = null,
  }) {
    return _then(_$StartGroupOrderImpl(
      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 _$StartGroupOrderImpl implements StartGroupOrder {
  const _$StartGroupOrderImpl({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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$StartGroupOrderImpl &&
            (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')
  _$$StartGroupOrderImplCopyWith<_$StartGroupOrderImpl> get copyWith =>
      __$$StartGroupOrderImplCopyWithImpl<_$StartGroupOrderImpl>(
          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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    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}) = _$StartGroupOrderImpl;

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

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

/// @nodoc
class __$$CreateLinkImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$CreateLinkImpl>
    implements _$$CreateLinkImplCopyWith<$Res> {
  __$$CreateLinkImplCopyWithImpl(
      _$CreateLinkImpl _value, $Res Function(_$CreateLinkImpl) _then)
      : super(_value, _then);

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

/// @nodoc

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

  @override
  final BuildContext context;

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

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

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

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$CreateLinkImplCopyWith<_$CreateLinkImpl> get copyWith =>
      __$$CreateLinkImplCopyWithImpl<_$CreateLinkImpl>(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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    required TResult orElse(),
  }) {
    if (createLink != null) {
      return createLink(this);
    }
    return orElse();
  }
}

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

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

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

/// @nodoc
class __$$DeleteCartImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$DeleteCartImpl>
    implements _$$DeleteCartImplCopyWith<$Res> {
  __$$DeleteCartImplCopyWithImpl(
      _$DeleteCartImpl _value, $Res Function(_$DeleteCartImpl) _then)
      : super(_value, _then);

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

/// @nodoc

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

  @override
  final BuildContext context;

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

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

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

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$DeleteCartImplCopyWith<_$DeleteCartImpl> get copyWith =>
      __$$DeleteCartImplCopyWithImpl<_$DeleteCartImpl>(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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    required TResult orElse(),
  }) {
    if (deleteCart != null) {
      return deleteCart(this);
    }
    return orElse();
  }
}

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

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

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

/// @nodoc
class __$$DeleteUserImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$DeleteUserImpl>
    implements _$$DeleteUserImplCopyWith<$Res> {
  __$$DeleteUserImplCopyWithImpl(
      _$DeleteUserImpl _value, $Res Function(_$DeleteUserImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? uuid = null,
    Object? onSuccess = null,
  }) {
    return _then(_$DeleteUserImpl(
      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 _$DeleteUserImpl implements DeleteUser {
  const _$DeleteUserImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$DeleteUserImpl &&
            (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')
  _$$DeleteUserImplCopyWith<_$DeleteUserImpl> get copyWith =>
      __$$DeleteUserImplCopyWithImpl<_$DeleteUserImpl>(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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    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}) = _$DeleteUserImpl;

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

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

/// @nodoc
class __$$CheckCouponImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$CheckCouponImpl>
    implements _$$CheckCouponImplCopyWith<$Res> {
  __$$CheckCouponImplCopyWithImpl(
      _$CheckCouponImpl _value, $Res Function(_$CheckCouponImpl) _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(_$CheckCouponImpl(
      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 _$CheckCouponImpl implements CheckCoupon {
  const _$CheckCouponImpl(
      {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 ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$CheckCouponImpl &&
            (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')
  _$$CheckCouponImplCopyWith<_$CheckCouponImpl> get copyWith =>
      __$$CheckCouponImplCopyWithImpl<_$CheckCouponImpl>(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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    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}) = _$CheckCouponImpl;

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

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

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

/// @nodoc

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

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

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

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(
            BuildContext context, bool? 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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    required TResult orElse(),
  }) {
    if (updateState != null) {
      return updateState(this);
    }
    return orElse();
  }
}

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

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

/// @nodoc
class __$$CalculateCartImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$CalculateCartImpl>
    implements _$$CalculateCartImplCopyWith<$Res> {
  __$$CalculateCartImplCopyWithImpl(
      _$CalculateCartImpl _value, $Res Function(_$CalculateCartImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? context = null,
    Object? deliveryPriceId = freezed,
    Object? pointId = freezed,
    Object? type = freezed,
    Object? fullDigital = null,
  }) {
    return _then(_$CalculateCartImpl(
      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?,
      type: freezed == type
          ? _value.type
          : type // ignore: cast_nullable_to_non_nullable
              as int?,
      fullDigital: null == fullDigital
          ? _value.fullDigital
          : fullDigital // ignore: cast_nullable_to_non_nullable
              as bool,
    ));
  }
}

/// @nodoc

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

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

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

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

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

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$CalculateCartImplCopyWith<_$CalculateCartImpl> get copyWith =>
      __$$CalculateCartImplCopyWithImpl<_$CalculateCartImpl>(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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    return calculateCart(context, deliveryPriceId, pointId, type, 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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    return calculateCart?.call(
        context, deliveryPriceId, pointId, type, 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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    required TResult orElse(),
  }) {
    if (calculateCart != null) {
      return calculateCart(
          context, deliveryPriceId, pointId, type, 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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    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 int? type,
      required final bool fullDigital}) = _$CalculateCartImpl;

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

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

/// @nodoc
class __$$CalculateCartWithCouponImplCopyWithImpl<$Res>
    extends _$CartEventCopyWithImpl<$Res, _$CalculateCartWithCouponImpl>
    implements _$$CalculateCartWithCouponImplCopyWith<$Res> {
  __$$CalculateCartWithCouponImplCopyWithImpl(
      _$CalculateCartWithCouponImpl _value,
      $Res Function(_$CalculateCartWithCouponImpl) _then)
      : super(_value, _then);

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

/// @nodoc

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

  @override
  final BuildContext context;

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

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

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

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$CalculateCartWithCouponImplCopyWith<_$CalculateCartWithCouponImpl>
      get copyWith => __$$CalculateCartWithCouponImplCopyWithImpl<
          _$CalculateCartWithCouponImpl>(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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    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,
    TResult Function(AcceptTerm value)? acceptTerm,
    required TResult orElse(),
  }) {
    if (calculateCartWithCoupon != null) {
      return calculateCartWithCoupon(this);
    }
    return orElse();
  }
}

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

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

/// @nodoc
abstract class _$$AcceptTermImplCopyWith<$Res> {
  factory _$$AcceptTermImplCopyWith(
          _$AcceptTermImpl value, $Res Function(_$AcceptTermImpl) then) =
      __$$AcceptTermImplCopyWithImpl<$Res>;
}

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

/// @nodoc

class _$AcceptTermImpl implements AcceptTerm {
  const _$AcceptTermImpl();

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

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

  @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, int? type, bool fullDigital)
        calculateCart,
    required TResult Function(BuildContext context) calculateCartWithCoupon,
    required TResult Function() acceptTerm,
  }) {
    return acceptTerm();
  }

  @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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult? Function(BuildContext context)? calculateCartWithCoupon,
    TResult? Function()? acceptTerm,
  }) {
    return acceptTerm?.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,
            int? type, bool fullDigital)?
        calculateCart,
    TResult Function(BuildContext context)? calculateCartWithCoupon,
    TResult Function()? acceptTerm,
    required TResult orElse(),
  }) {
    if (acceptTerm != null) {
      return acceptTerm();
    }
    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,
    required TResult Function(AcceptTerm value) acceptTerm,
  }) {
    return acceptTerm(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,
    TResult? Function(AcceptTerm value)? acceptTerm,
  }) {
    return acceptTerm?.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,
    TResult Function(AcceptTerm value)? acceptTerm,
    required TResult orElse(),
  }) {
    if (acceptTerm != null) {
      return acceptTerm(this);
    }
    return orElse();
  }
}

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

/// @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;
  bool get isAcceptTerm => 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,
      bool isAcceptTerm,
      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? isAcceptTerm = 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>,
      isAcceptTerm: null == isAcceptTerm
          ? _value.isAcceptTerm
          : isAcceptTerm // ignore: cast_nullable_to_non_nullable
              as bool,
      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 _$$CartStateImplCopyWith<$Res>
    implements $CartStateCopyWith<$Res> {
  factory _$$CartStateImplCopyWith(
          _$CartStateImpl value, $Res Function(_$CartStateImpl) then) =
      __$$CartStateImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {bool isLoading,
      bool isButtonLoading,
      Cart? cart,
      List<ProductNote>? notes,
      Map<int, String> coupons,
      bool isAcceptTerm,
      CartCalculate? cartCalculate,
      String? groupOrderLink,
      ProductCalculateResponse? productCalculate});
}

/// @nodoc
class __$$CartStateImplCopyWithImpl<$Res>
    extends _$CartStateCopyWithImpl<$Res, _$CartStateImpl>
    implements _$$CartStateImplCopyWith<$Res> {
  __$$CartStateImplCopyWithImpl(
      _$CartStateImpl _value, $Res Function(_$CartStateImpl) _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? isAcceptTerm = null,
    Object? cartCalculate = freezed,
    Object? groupOrderLink = freezed,
    Object? productCalculate = freezed,
  }) {
    return _then(_$CartStateImpl(
      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>,
      isAcceptTerm: null == isAcceptTerm
          ? _value.isAcceptTerm
          : isAcceptTerm // ignore: cast_nullable_to_non_nullable
              as bool,
      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 _$CartStateImpl implements _CartState {
  const _$CartStateImpl(
      {this.isLoading = false,
      this.isButtonLoading = true,
      this.cart = null,
      final List<ProductNote>? notes = const [],
      final Map<int, String> coupons = const {},
      this.isAcceptTerm = false,
      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 bool isAcceptTerm;
  @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, isAcceptTerm: $isAcceptTerm, cartCalculate: $cartCalculate, groupOrderLink: $groupOrderLink, productCalculate: $productCalculate)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$CartStateImpl &&
            (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.isAcceptTerm, isAcceptTerm) ||
                other.isAcceptTerm == isAcceptTerm) &&
            (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),
      isAcceptTerm,
      cartCalculate,
      groupOrderLink,
      productCalculate);

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$CartStateImplCopyWith<_$CartStateImpl> get copyWith =>
      __$$CartStateImplCopyWithImpl<_$CartStateImpl>(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 bool isAcceptTerm,
      final CartCalculate? cartCalculate,
      final String? groupOrderLink,
      final ProductCalculateResponse? productCalculate}) = _$CartStateImpl;

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