// GENERATED CODE - DO NOT MODIFY BY HAND
// coverage:ignore-file
// 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 '../../../../../presentation/screens/pregistration/cubit/preregistration_state.dart';

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

// dart format off
T _$identity<T>(T value) => value;
/// @nodoc
mixin _$PreregistrationState {

 bool get isLoading; bool get selected; List<AddOnUpgrade> get addOnUpgrades; List<RoomUpgrade> get availableRoomUpgrades; String get selectedRoomUpgrade; bool get missingInformation; int get extrasTotalPrice; bool get termsAndConditionsAccepted; bool get forceUpdate; User? get user; CountryCode? get countryCode; String get selectedCountry; String get selectedNationality; String? get phoneNumber; bool get isPhoneNumberValid; bool get isFirstNameValid; bool get isLastNameValid; bool get isAddressValid; bool get isPostalCodeValid; bool get isCityValid; bool get isBirthDateValid; IdType get selectedDocumentType; StoredPaymentMethod? get selectedPaymentMethod; TimeOfDay? get servingTime; AppError get error;
/// Create a copy of PreregistrationState
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$PreregistrationStateCopyWith<PreregistrationState> get copyWith => _$PreregistrationStateCopyWithImpl<PreregistrationState>(this as PreregistrationState, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is PreregistrationState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.selected, selected) || other.selected == selected)&&const DeepCollectionEquality().equals(other.addOnUpgrades, addOnUpgrades)&&const DeepCollectionEquality().equals(other.availableRoomUpgrades, availableRoomUpgrades)&&(identical(other.selectedRoomUpgrade, selectedRoomUpgrade) || other.selectedRoomUpgrade == selectedRoomUpgrade)&&(identical(other.missingInformation, missingInformation) || other.missingInformation == missingInformation)&&(identical(other.extrasTotalPrice, extrasTotalPrice) || other.extrasTotalPrice == extrasTotalPrice)&&(identical(other.termsAndConditionsAccepted, termsAndConditionsAccepted) || other.termsAndConditionsAccepted == termsAndConditionsAccepted)&&(identical(other.forceUpdate, forceUpdate) || other.forceUpdate == forceUpdate)&&(identical(other.user, user) || other.user == user)&&(identical(other.countryCode, countryCode) || other.countryCode == countryCode)&&(identical(other.selectedCountry, selectedCountry) || other.selectedCountry == selectedCountry)&&(identical(other.selectedNationality, selectedNationality) || other.selectedNationality == selectedNationality)&&(identical(other.phoneNumber, phoneNumber) || other.phoneNumber == phoneNumber)&&(identical(other.isPhoneNumberValid, isPhoneNumberValid) || other.isPhoneNumberValid == isPhoneNumberValid)&&(identical(other.isFirstNameValid, isFirstNameValid) || other.isFirstNameValid == isFirstNameValid)&&(identical(other.isLastNameValid, isLastNameValid) || other.isLastNameValid == isLastNameValid)&&(identical(other.isAddressValid, isAddressValid) || other.isAddressValid == isAddressValid)&&(identical(other.isPostalCodeValid, isPostalCodeValid) || other.isPostalCodeValid == isPostalCodeValid)&&(identical(other.isCityValid, isCityValid) || other.isCityValid == isCityValid)&&(identical(other.isBirthDateValid, isBirthDateValid) || other.isBirthDateValid == isBirthDateValid)&&(identical(other.selectedDocumentType, selectedDocumentType) || other.selectedDocumentType == selectedDocumentType)&&(identical(other.selectedPaymentMethod, selectedPaymentMethod) || other.selectedPaymentMethod == selectedPaymentMethod)&&(identical(other.servingTime, servingTime) || other.servingTime == servingTime)&&(identical(other.error, error) || other.error == error));
}


@override
int get hashCode => Object.hashAll([runtimeType,isLoading,selected,const DeepCollectionEquality().hash(addOnUpgrades),const DeepCollectionEquality().hash(availableRoomUpgrades),selectedRoomUpgrade,missingInformation,extrasTotalPrice,termsAndConditionsAccepted,forceUpdate,user,countryCode,selectedCountry,selectedNationality,phoneNumber,isPhoneNumberValid,isFirstNameValid,isLastNameValid,isAddressValid,isPostalCodeValid,isCityValid,isBirthDateValid,selectedDocumentType,selectedPaymentMethod,servingTime,error]);

@override
String toString() {
  return 'PreregistrationState(isLoading: $isLoading, selected: $selected, addOnUpgrades: $addOnUpgrades, availableRoomUpgrades: $availableRoomUpgrades, selectedRoomUpgrade: $selectedRoomUpgrade, missingInformation: $missingInformation, extrasTotalPrice: $extrasTotalPrice, termsAndConditionsAccepted: $termsAndConditionsAccepted, forceUpdate: $forceUpdate, user: $user, countryCode: $countryCode, selectedCountry: $selectedCountry, selectedNationality: $selectedNationality, phoneNumber: $phoneNumber, isPhoneNumberValid: $isPhoneNumberValid, isFirstNameValid: $isFirstNameValid, isLastNameValid: $isLastNameValid, isAddressValid: $isAddressValid, isPostalCodeValid: $isPostalCodeValid, isCityValid: $isCityValid, isBirthDateValid: $isBirthDateValid, selectedDocumentType: $selectedDocumentType, selectedPaymentMethod: $selectedPaymentMethod, servingTime: $servingTime, error: $error)';
}


}

/// @nodoc
abstract mixin class $PreregistrationStateCopyWith<$Res>  {
  factory $PreregistrationStateCopyWith(PreregistrationState value, $Res Function(PreregistrationState) _then) = _$PreregistrationStateCopyWithImpl;
@useResult
$Res call({
 bool isLoading, bool selected, List<AddOnUpgrade> addOnUpgrades, List<RoomUpgrade> availableRoomUpgrades, String selectedRoomUpgrade, bool missingInformation, int extrasTotalPrice, bool termsAndConditionsAccepted, bool forceUpdate, User? user, CountryCode? countryCode, String selectedCountry, String selectedNationality, String? phoneNumber, bool isPhoneNumberValid, bool isFirstNameValid, bool isLastNameValid, bool isAddressValid, bool isPostalCodeValid, bool isCityValid, bool isBirthDateValid, IdType selectedDocumentType, StoredPaymentMethod? selectedPaymentMethod, TimeOfDay? servingTime, AppError error
});


$UserCopyWith<$Res>? get user;

}
/// @nodoc
class _$PreregistrationStateCopyWithImpl<$Res>
    implements $PreregistrationStateCopyWith<$Res> {
  _$PreregistrationStateCopyWithImpl(this._self, this._then);

  final PreregistrationState _self;
  final $Res Function(PreregistrationState) _then;

/// Create a copy of PreregistrationState
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? isLoading = null,Object? selected = null,Object? addOnUpgrades = null,Object? availableRoomUpgrades = null,Object? selectedRoomUpgrade = null,Object? missingInformation = null,Object? extrasTotalPrice = null,Object? termsAndConditionsAccepted = null,Object? forceUpdate = null,Object? user = freezed,Object? countryCode = freezed,Object? selectedCountry = null,Object? selectedNationality = null,Object? phoneNumber = freezed,Object? isPhoneNumberValid = null,Object? isFirstNameValid = null,Object? isLastNameValid = null,Object? isAddressValid = null,Object? isPostalCodeValid = null,Object? isCityValid = null,Object? isBirthDateValid = null,Object? selectedDocumentType = null,Object? selectedPaymentMethod = freezed,Object? servingTime = freezed,Object? error = null,}) {
  return _then(_self.copyWith(
isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
as bool,selected: null == selected ? _self.selected : selected // ignore: cast_nullable_to_non_nullable
as bool,addOnUpgrades: null == addOnUpgrades ? _self.addOnUpgrades : addOnUpgrades // ignore: cast_nullable_to_non_nullable
as List<AddOnUpgrade>,availableRoomUpgrades: null == availableRoomUpgrades ? _self.availableRoomUpgrades : availableRoomUpgrades // ignore: cast_nullable_to_non_nullable
as List<RoomUpgrade>,selectedRoomUpgrade: null == selectedRoomUpgrade ? _self.selectedRoomUpgrade : selectedRoomUpgrade // ignore: cast_nullable_to_non_nullable
as String,missingInformation: null == missingInformation ? _self.missingInformation : missingInformation // ignore: cast_nullable_to_non_nullable
as bool,extrasTotalPrice: null == extrasTotalPrice ? _self.extrasTotalPrice : extrasTotalPrice // ignore: cast_nullable_to_non_nullable
as int,termsAndConditionsAccepted: null == termsAndConditionsAccepted ? _self.termsAndConditionsAccepted : termsAndConditionsAccepted // ignore: cast_nullable_to_non_nullable
as bool,forceUpdate: null == forceUpdate ? _self.forceUpdate : forceUpdate // ignore: cast_nullable_to_non_nullable
as bool,user: freezed == user ? _self.user : user // ignore: cast_nullable_to_non_nullable
as User?,countryCode: freezed == countryCode ? _self.countryCode : countryCode // ignore: cast_nullable_to_non_nullable
as CountryCode?,selectedCountry: null == selectedCountry ? _self.selectedCountry : selectedCountry // ignore: cast_nullable_to_non_nullable
as String,selectedNationality: null == selectedNationality ? _self.selectedNationality : selectedNationality // ignore: cast_nullable_to_non_nullable
as String,phoneNumber: freezed == phoneNumber ? _self.phoneNumber : phoneNumber // ignore: cast_nullable_to_non_nullable
as String?,isPhoneNumberValid: null == isPhoneNumberValid ? _self.isPhoneNumberValid : isPhoneNumberValid // ignore: cast_nullable_to_non_nullable
as bool,isFirstNameValid: null == isFirstNameValid ? _self.isFirstNameValid : isFirstNameValid // ignore: cast_nullable_to_non_nullable
as bool,isLastNameValid: null == isLastNameValid ? _self.isLastNameValid : isLastNameValid // ignore: cast_nullable_to_non_nullable
as bool,isAddressValid: null == isAddressValid ? _self.isAddressValid : isAddressValid // ignore: cast_nullable_to_non_nullable
as bool,isPostalCodeValid: null == isPostalCodeValid ? _self.isPostalCodeValid : isPostalCodeValid // ignore: cast_nullable_to_non_nullable
as bool,isCityValid: null == isCityValid ? _self.isCityValid : isCityValid // ignore: cast_nullable_to_non_nullable
as bool,isBirthDateValid: null == isBirthDateValid ? _self.isBirthDateValid : isBirthDateValid // ignore: cast_nullable_to_non_nullable
as bool,selectedDocumentType: null == selectedDocumentType ? _self.selectedDocumentType : selectedDocumentType // ignore: cast_nullable_to_non_nullable
as IdType,selectedPaymentMethod: freezed == selectedPaymentMethod ? _self.selectedPaymentMethod : selectedPaymentMethod // ignore: cast_nullable_to_non_nullable
as StoredPaymentMethod?,servingTime: freezed == servingTime ? _self.servingTime : servingTime // ignore: cast_nullable_to_non_nullable
as TimeOfDay?,error: null == error ? _self.error : error // ignore: cast_nullable_to_non_nullable
as AppError,
  ));
}
/// Create a copy of PreregistrationState
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$UserCopyWith<$Res>? get user {
    if (_self.user == null) {
    return null;
  }

  return $UserCopyWith<$Res>(_self.user!, (value) {
    return _then(_self.copyWith(user: value));
  });
}
}


/// Adds pattern-matching-related methods to [PreregistrationState].
extension PreregistrationStatePatterns on PreregistrationState {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _PreregistrationState value)?  $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _PreregistrationState() when $default != null:
return $default(_that);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case final Subclass2 value:
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _PreregistrationState value)  $default,){
final _that = this;
switch (_that) {
case _PreregistrationState():
return $default(_that);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _PreregistrationState value)?  $default,){
final _that = this;
switch (_that) {
case _PreregistrationState() when $default != null:
return $default(_that);case _:
  return null;

}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( bool isLoading,  bool selected,  List<AddOnUpgrade> addOnUpgrades,  List<RoomUpgrade> availableRoomUpgrades,  String selectedRoomUpgrade,  bool missingInformation,  int extrasTotalPrice,  bool termsAndConditionsAccepted,  bool forceUpdate,  User? user,  CountryCode? countryCode,  String selectedCountry,  String selectedNationality,  String? phoneNumber,  bool isPhoneNumberValid,  bool isFirstNameValid,  bool isLastNameValid,  bool isAddressValid,  bool isPostalCodeValid,  bool isCityValid,  bool isBirthDateValid,  IdType selectedDocumentType,  StoredPaymentMethod? selectedPaymentMethod,  TimeOfDay? servingTime,  AppError error)?  $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _PreregistrationState() when $default != null:
return $default(_that.isLoading,_that.selected,_that.addOnUpgrades,_that.availableRoomUpgrades,_that.selectedRoomUpgrade,_that.missingInformation,_that.extrasTotalPrice,_that.termsAndConditionsAccepted,_that.forceUpdate,_that.user,_that.countryCode,_that.selectedCountry,_that.selectedNationality,_that.phoneNumber,_that.isPhoneNumberValid,_that.isFirstNameValid,_that.isLastNameValid,_that.isAddressValid,_that.isPostalCodeValid,_that.isCityValid,_that.isBirthDateValid,_that.selectedDocumentType,_that.selectedPaymentMethod,_that.servingTime,_that.error);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case Subclass2(:final field2):
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( bool isLoading,  bool selected,  List<AddOnUpgrade> addOnUpgrades,  List<RoomUpgrade> availableRoomUpgrades,  String selectedRoomUpgrade,  bool missingInformation,  int extrasTotalPrice,  bool termsAndConditionsAccepted,  bool forceUpdate,  User? user,  CountryCode? countryCode,  String selectedCountry,  String selectedNationality,  String? phoneNumber,  bool isPhoneNumberValid,  bool isFirstNameValid,  bool isLastNameValid,  bool isAddressValid,  bool isPostalCodeValid,  bool isCityValid,  bool isBirthDateValid,  IdType selectedDocumentType,  StoredPaymentMethod? selectedPaymentMethod,  TimeOfDay? servingTime,  AppError error)  $default,) {final _that = this;
switch (_that) {
case _PreregistrationState():
return $default(_that.isLoading,_that.selected,_that.addOnUpgrades,_that.availableRoomUpgrades,_that.selectedRoomUpgrade,_that.missingInformation,_that.extrasTotalPrice,_that.termsAndConditionsAccepted,_that.forceUpdate,_that.user,_that.countryCode,_that.selectedCountry,_that.selectedNationality,_that.phoneNumber,_that.isPhoneNumberValid,_that.isFirstNameValid,_that.isLastNameValid,_that.isAddressValid,_that.isPostalCodeValid,_that.isCityValid,_that.isBirthDateValid,_that.selectedDocumentType,_that.selectedPaymentMethod,_that.servingTime,_that.error);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( bool isLoading,  bool selected,  List<AddOnUpgrade> addOnUpgrades,  List<RoomUpgrade> availableRoomUpgrades,  String selectedRoomUpgrade,  bool missingInformation,  int extrasTotalPrice,  bool termsAndConditionsAccepted,  bool forceUpdate,  User? user,  CountryCode? countryCode,  String selectedCountry,  String selectedNationality,  String? phoneNumber,  bool isPhoneNumberValid,  bool isFirstNameValid,  bool isLastNameValid,  bool isAddressValid,  bool isPostalCodeValid,  bool isCityValid,  bool isBirthDateValid,  IdType selectedDocumentType,  StoredPaymentMethod? selectedPaymentMethod,  TimeOfDay? servingTime,  AppError error)?  $default,) {final _that = this;
switch (_that) {
case _PreregistrationState() when $default != null:
return $default(_that.isLoading,_that.selected,_that.addOnUpgrades,_that.availableRoomUpgrades,_that.selectedRoomUpgrade,_that.missingInformation,_that.extrasTotalPrice,_that.termsAndConditionsAccepted,_that.forceUpdate,_that.user,_that.countryCode,_that.selectedCountry,_that.selectedNationality,_that.phoneNumber,_that.isPhoneNumberValid,_that.isFirstNameValid,_that.isLastNameValid,_that.isAddressValid,_that.isPostalCodeValid,_that.isCityValid,_that.isBirthDateValid,_that.selectedDocumentType,_that.selectedPaymentMethod,_that.servingTime,_that.error);case _:
  return null;

}
}

}

/// @nodoc


class _PreregistrationState implements PreregistrationState {
  const _PreregistrationState({this.isLoading = false, this.selected = false, final  List<AddOnUpgrade> addOnUpgrades = const [], final  List<RoomUpgrade> availableRoomUpgrades = const [], this.selectedRoomUpgrade = '', this.missingInformation = false, this.extrasTotalPrice = 0, this.termsAndConditionsAccepted = false, this.forceUpdate = false, this.user = null, this.countryCode = null, this.selectedCountry = '', this.selectedNationality = '', this.phoneNumber = null, this.isPhoneNumberValid = false, this.isFirstNameValid = false, this.isLastNameValid = false, this.isAddressValid = false, this.isPostalCodeValid = false, this.isCityValid = false, this.isBirthDateValid = false, this.selectedDocumentType = IdType.driverLicense, this.selectedPaymentMethod = null, this.servingTime = null, this.error = AppError.none}): _addOnUpgrades = addOnUpgrades,_availableRoomUpgrades = availableRoomUpgrades;
  

@override@JsonKey() final  bool isLoading;
@override@JsonKey() final  bool selected;
 final  List<AddOnUpgrade> _addOnUpgrades;
@override@JsonKey() List<AddOnUpgrade> get addOnUpgrades {
  if (_addOnUpgrades is EqualUnmodifiableListView) return _addOnUpgrades;
  // ignore: implicit_dynamic_type
  return EqualUnmodifiableListView(_addOnUpgrades);
}

 final  List<RoomUpgrade> _availableRoomUpgrades;
@override@JsonKey() List<RoomUpgrade> get availableRoomUpgrades {
  if (_availableRoomUpgrades is EqualUnmodifiableListView) return _availableRoomUpgrades;
  // ignore: implicit_dynamic_type
  return EqualUnmodifiableListView(_availableRoomUpgrades);
}

@override@JsonKey() final  String selectedRoomUpgrade;
@override@JsonKey() final  bool missingInformation;
@override@JsonKey() final  int extrasTotalPrice;
@override@JsonKey() final  bool termsAndConditionsAccepted;
@override@JsonKey() final  bool forceUpdate;
@override@JsonKey() final  User? user;
@override@JsonKey() final  CountryCode? countryCode;
@override@JsonKey() final  String selectedCountry;
@override@JsonKey() final  String selectedNationality;
@override@JsonKey() final  String? phoneNumber;
@override@JsonKey() final  bool isPhoneNumberValid;
@override@JsonKey() final  bool isFirstNameValid;
@override@JsonKey() final  bool isLastNameValid;
@override@JsonKey() final  bool isAddressValid;
@override@JsonKey() final  bool isPostalCodeValid;
@override@JsonKey() final  bool isCityValid;
@override@JsonKey() final  bool isBirthDateValid;
@override@JsonKey() final  IdType selectedDocumentType;
@override@JsonKey() final  StoredPaymentMethod? selectedPaymentMethod;
@override@JsonKey() final  TimeOfDay? servingTime;
@override@JsonKey() final  AppError error;

/// Create a copy of PreregistrationState
/// with the given fields replaced by the non-null parameter values.
@override @JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
_$PreregistrationStateCopyWith<_PreregistrationState> get copyWith => __$PreregistrationStateCopyWithImpl<_PreregistrationState>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is _PreregistrationState&&(identical(other.isLoading, isLoading) || other.isLoading == isLoading)&&(identical(other.selected, selected) || other.selected == selected)&&const DeepCollectionEquality().equals(other._addOnUpgrades, _addOnUpgrades)&&const DeepCollectionEquality().equals(other._availableRoomUpgrades, _availableRoomUpgrades)&&(identical(other.selectedRoomUpgrade, selectedRoomUpgrade) || other.selectedRoomUpgrade == selectedRoomUpgrade)&&(identical(other.missingInformation, missingInformation) || other.missingInformation == missingInformation)&&(identical(other.extrasTotalPrice, extrasTotalPrice) || other.extrasTotalPrice == extrasTotalPrice)&&(identical(other.termsAndConditionsAccepted, termsAndConditionsAccepted) || other.termsAndConditionsAccepted == termsAndConditionsAccepted)&&(identical(other.forceUpdate, forceUpdate) || other.forceUpdate == forceUpdate)&&(identical(other.user, user) || other.user == user)&&(identical(other.countryCode, countryCode) || other.countryCode == countryCode)&&(identical(other.selectedCountry, selectedCountry) || other.selectedCountry == selectedCountry)&&(identical(other.selectedNationality, selectedNationality) || other.selectedNationality == selectedNationality)&&(identical(other.phoneNumber, phoneNumber) || other.phoneNumber == phoneNumber)&&(identical(other.isPhoneNumberValid, isPhoneNumberValid) || other.isPhoneNumberValid == isPhoneNumberValid)&&(identical(other.isFirstNameValid, isFirstNameValid) || other.isFirstNameValid == isFirstNameValid)&&(identical(other.isLastNameValid, isLastNameValid) || other.isLastNameValid == isLastNameValid)&&(identical(other.isAddressValid, isAddressValid) || other.isAddressValid == isAddressValid)&&(identical(other.isPostalCodeValid, isPostalCodeValid) || other.isPostalCodeValid == isPostalCodeValid)&&(identical(other.isCityValid, isCityValid) || other.isCityValid == isCityValid)&&(identical(other.isBirthDateValid, isBirthDateValid) || other.isBirthDateValid == isBirthDateValid)&&(identical(other.selectedDocumentType, selectedDocumentType) || other.selectedDocumentType == selectedDocumentType)&&(identical(other.selectedPaymentMethod, selectedPaymentMethod) || other.selectedPaymentMethod == selectedPaymentMethod)&&(identical(other.servingTime, servingTime) || other.servingTime == servingTime)&&(identical(other.error, error) || other.error == error));
}


@override
int get hashCode => Object.hashAll([runtimeType,isLoading,selected,const DeepCollectionEquality().hash(_addOnUpgrades),const DeepCollectionEquality().hash(_availableRoomUpgrades),selectedRoomUpgrade,missingInformation,extrasTotalPrice,termsAndConditionsAccepted,forceUpdate,user,countryCode,selectedCountry,selectedNationality,phoneNumber,isPhoneNumberValid,isFirstNameValid,isLastNameValid,isAddressValid,isPostalCodeValid,isCityValid,isBirthDateValid,selectedDocumentType,selectedPaymentMethod,servingTime,error]);

@override
String toString() {
  return 'PreregistrationState(isLoading: $isLoading, selected: $selected, addOnUpgrades: $addOnUpgrades, availableRoomUpgrades: $availableRoomUpgrades, selectedRoomUpgrade: $selectedRoomUpgrade, missingInformation: $missingInformation, extrasTotalPrice: $extrasTotalPrice, termsAndConditionsAccepted: $termsAndConditionsAccepted, forceUpdate: $forceUpdate, user: $user, countryCode: $countryCode, selectedCountry: $selectedCountry, selectedNationality: $selectedNationality, phoneNumber: $phoneNumber, isPhoneNumberValid: $isPhoneNumberValid, isFirstNameValid: $isFirstNameValid, isLastNameValid: $isLastNameValid, isAddressValid: $isAddressValid, isPostalCodeValid: $isPostalCodeValid, isCityValid: $isCityValid, isBirthDateValid: $isBirthDateValid, selectedDocumentType: $selectedDocumentType, selectedPaymentMethod: $selectedPaymentMethod, servingTime: $servingTime, error: $error)';
}


}

/// @nodoc
abstract mixin class _$PreregistrationStateCopyWith<$Res> implements $PreregistrationStateCopyWith<$Res> {
  factory _$PreregistrationStateCopyWith(_PreregistrationState value, $Res Function(_PreregistrationState) _then) = __$PreregistrationStateCopyWithImpl;
@override @useResult
$Res call({
 bool isLoading, bool selected, List<AddOnUpgrade> addOnUpgrades, List<RoomUpgrade> availableRoomUpgrades, String selectedRoomUpgrade, bool missingInformation, int extrasTotalPrice, bool termsAndConditionsAccepted, bool forceUpdate, User? user, CountryCode? countryCode, String selectedCountry, String selectedNationality, String? phoneNumber, bool isPhoneNumberValid, bool isFirstNameValid, bool isLastNameValid, bool isAddressValid, bool isPostalCodeValid, bool isCityValid, bool isBirthDateValid, IdType selectedDocumentType, StoredPaymentMethod? selectedPaymentMethod, TimeOfDay? servingTime, AppError error
});


@override $UserCopyWith<$Res>? get user;

}
/// @nodoc
class __$PreregistrationStateCopyWithImpl<$Res>
    implements _$PreregistrationStateCopyWith<$Res> {
  __$PreregistrationStateCopyWithImpl(this._self, this._then);

  final _PreregistrationState _self;
  final $Res Function(_PreregistrationState) _then;

/// Create a copy of PreregistrationState
/// with the given fields replaced by the non-null parameter values.
@override @pragma('vm:prefer-inline') $Res call({Object? isLoading = null,Object? selected = null,Object? addOnUpgrades = null,Object? availableRoomUpgrades = null,Object? selectedRoomUpgrade = null,Object? missingInformation = null,Object? extrasTotalPrice = null,Object? termsAndConditionsAccepted = null,Object? forceUpdate = null,Object? user = freezed,Object? countryCode = freezed,Object? selectedCountry = null,Object? selectedNationality = null,Object? phoneNumber = freezed,Object? isPhoneNumberValid = null,Object? isFirstNameValid = null,Object? isLastNameValid = null,Object? isAddressValid = null,Object? isPostalCodeValid = null,Object? isCityValid = null,Object? isBirthDateValid = null,Object? selectedDocumentType = null,Object? selectedPaymentMethod = freezed,Object? servingTime = freezed,Object? error = null,}) {
  return _then(_PreregistrationState(
isLoading: null == isLoading ? _self.isLoading : isLoading // ignore: cast_nullable_to_non_nullable
as bool,selected: null == selected ? _self.selected : selected // ignore: cast_nullable_to_non_nullable
as bool,addOnUpgrades: null == addOnUpgrades ? _self._addOnUpgrades : addOnUpgrades // ignore: cast_nullable_to_non_nullable
as List<AddOnUpgrade>,availableRoomUpgrades: null == availableRoomUpgrades ? _self._availableRoomUpgrades : availableRoomUpgrades // ignore: cast_nullable_to_non_nullable
as List<RoomUpgrade>,selectedRoomUpgrade: null == selectedRoomUpgrade ? _self.selectedRoomUpgrade : selectedRoomUpgrade // ignore: cast_nullable_to_non_nullable
as String,missingInformation: null == missingInformation ? _self.missingInformation : missingInformation // ignore: cast_nullable_to_non_nullable
as bool,extrasTotalPrice: null == extrasTotalPrice ? _self.extrasTotalPrice : extrasTotalPrice // ignore: cast_nullable_to_non_nullable
as int,termsAndConditionsAccepted: null == termsAndConditionsAccepted ? _self.termsAndConditionsAccepted : termsAndConditionsAccepted // ignore: cast_nullable_to_non_nullable
as bool,forceUpdate: null == forceUpdate ? _self.forceUpdate : forceUpdate // ignore: cast_nullable_to_non_nullable
as bool,user: freezed == user ? _self.user : user // ignore: cast_nullable_to_non_nullable
as User?,countryCode: freezed == countryCode ? _self.countryCode : countryCode // ignore: cast_nullable_to_non_nullable
as CountryCode?,selectedCountry: null == selectedCountry ? _self.selectedCountry : selectedCountry // ignore: cast_nullable_to_non_nullable
as String,selectedNationality: null == selectedNationality ? _self.selectedNationality : selectedNationality // ignore: cast_nullable_to_non_nullable
as String,phoneNumber: freezed == phoneNumber ? _self.phoneNumber : phoneNumber // ignore: cast_nullable_to_non_nullable
as String?,isPhoneNumberValid: null == isPhoneNumberValid ? _self.isPhoneNumberValid : isPhoneNumberValid // ignore: cast_nullable_to_non_nullable
as bool,isFirstNameValid: null == isFirstNameValid ? _self.isFirstNameValid : isFirstNameValid // ignore: cast_nullable_to_non_nullable
as bool,isLastNameValid: null == isLastNameValid ? _self.isLastNameValid : isLastNameValid // ignore: cast_nullable_to_non_nullable
as bool,isAddressValid: null == isAddressValid ? _self.isAddressValid : isAddressValid // ignore: cast_nullable_to_non_nullable
as bool,isPostalCodeValid: null == isPostalCodeValid ? _self.isPostalCodeValid : isPostalCodeValid // ignore: cast_nullable_to_non_nullable
as bool,isCityValid: null == isCityValid ? _self.isCityValid : isCityValid // ignore: cast_nullable_to_non_nullable
as bool,isBirthDateValid: null == isBirthDateValid ? _self.isBirthDateValid : isBirthDateValid // ignore: cast_nullable_to_non_nullable
as bool,selectedDocumentType: null == selectedDocumentType ? _self.selectedDocumentType : selectedDocumentType // ignore: cast_nullable_to_non_nullable
as IdType,selectedPaymentMethod: freezed == selectedPaymentMethod ? _self.selectedPaymentMethod : selectedPaymentMethod // ignore: cast_nullable_to_non_nullable
as StoredPaymentMethod?,servingTime: freezed == servingTime ? _self.servingTime : servingTime // ignore: cast_nullable_to_non_nullable
as TimeOfDay?,error: null == error ? _self.error : error // ignore: cast_nullable_to_non_nullable
as AppError,
  ));
}

/// Create a copy of PreregistrationState
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$UserCopyWith<$Res>? get user {
    if (_self.user == null) {
    return null;
  }

  return $UserCopyWith<$Res>(_self.user!, (value) {
    return _then(_self.copyWith(user: value));
  });
}
}

// dart format on