// 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 'upgrade.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',
);

Upgrade _$UpgradeFromJson(Map<String, dynamic> json) {
  return _Upgrade.fromJson(json);
}

/// @nodoc
mixin _$Upgrade {
  int? get upgradeType => throw _privateConstructorUsedError;
  String? get versionName => throw _privateConstructorUsedError;
  int? get versionCode => throw _privateConstructorUsedError;
  String? get appStoreUrl => throw _privateConstructorUsedError;
  String? get websiteUrl => throw _privateConstructorUsedError;
  List<String>? get directUrls => throw _privateConstructorUsedError;
  String? get md5 => throw _privateConstructorUsedError;
  String? get info => throw _privateConstructorUsedError;
  bool? get forced => throw _privateConstructorUsedError;

  /// Serializes this Upgrade to a JSON map.
  Map<String, dynamic> toJson() => throw _privateConstructorUsedError;

  /// Create a copy of Upgrade
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  $UpgradeCopyWith<Upgrade> get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $UpgradeCopyWith<$Res> {
  factory $UpgradeCopyWith(Upgrade value, $Res Function(Upgrade) then) =
      _$UpgradeCopyWithImpl<$Res, Upgrade>;
  @useResult
  $Res call({
    int? upgradeType,
    String? versionName,
    int? versionCode,
    String? appStoreUrl,
    String? websiteUrl,
    List<String>? directUrls,
    String? md5,
    String? info,
    bool? forced,
  });
}

/// @nodoc
class _$UpgradeCopyWithImpl<$Res, $Val extends Upgrade>
    implements $UpgradeCopyWith<$Res> {
  _$UpgradeCopyWithImpl(this._value, this._then);

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

  /// Create a copy of Upgrade
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? upgradeType = freezed,
    Object? versionName = freezed,
    Object? versionCode = freezed,
    Object? appStoreUrl = freezed,
    Object? websiteUrl = freezed,
    Object? directUrls = freezed,
    Object? md5 = freezed,
    Object? info = freezed,
    Object? forced = freezed,
  }) {
    return _then(
      _value.copyWith(
            upgradeType: freezed == upgradeType
                ? _value.upgradeType
                : upgradeType // ignore: cast_nullable_to_non_nullable
                      as int?,
            versionName: freezed == versionName
                ? _value.versionName
                : versionName // ignore: cast_nullable_to_non_nullable
                      as String?,
            versionCode: freezed == versionCode
                ? _value.versionCode
                : versionCode // ignore: cast_nullable_to_non_nullable
                      as int?,
            appStoreUrl: freezed == appStoreUrl
                ? _value.appStoreUrl
                : appStoreUrl // ignore: cast_nullable_to_non_nullable
                      as String?,
            websiteUrl: freezed == websiteUrl
                ? _value.websiteUrl
                : websiteUrl // ignore: cast_nullable_to_non_nullable
                      as String?,
            directUrls: freezed == directUrls
                ? _value.directUrls
                : directUrls // ignore: cast_nullable_to_non_nullable
                      as List<String>?,
            md5: freezed == md5
                ? _value.md5
                : md5 // ignore: cast_nullable_to_non_nullable
                      as String?,
            info: freezed == info
                ? _value.info
                : info // ignore: cast_nullable_to_non_nullable
                      as String?,
            forced: freezed == forced
                ? _value.forced
                : forced // ignore: cast_nullable_to_non_nullable
                      as bool?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$UpgradeImplCopyWith<$Res> implements $UpgradeCopyWith<$Res> {
  factory _$$UpgradeImplCopyWith(
    _$UpgradeImpl value,
    $Res Function(_$UpgradeImpl) then,
  ) = __$$UpgradeImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    int? upgradeType,
    String? versionName,
    int? versionCode,
    String? appStoreUrl,
    String? websiteUrl,
    List<String>? directUrls,
    String? md5,
    String? info,
    bool? forced,
  });
}

/// @nodoc
class __$$UpgradeImplCopyWithImpl<$Res>
    extends _$UpgradeCopyWithImpl<$Res, _$UpgradeImpl>
    implements _$$UpgradeImplCopyWith<$Res> {
  __$$UpgradeImplCopyWithImpl(
    _$UpgradeImpl _value,
    $Res Function(_$UpgradeImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of Upgrade
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? upgradeType = freezed,
    Object? versionName = freezed,
    Object? versionCode = freezed,
    Object? appStoreUrl = freezed,
    Object? websiteUrl = freezed,
    Object? directUrls = freezed,
    Object? md5 = freezed,
    Object? info = freezed,
    Object? forced = freezed,
  }) {
    return _then(
      _$UpgradeImpl(
        upgradeType: freezed == upgradeType
            ? _value.upgradeType
            : upgradeType // ignore: cast_nullable_to_non_nullable
                  as int?,
        versionName: freezed == versionName
            ? _value.versionName
            : versionName // ignore: cast_nullable_to_non_nullable
                  as String?,
        versionCode: freezed == versionCode
            ? _value.versionCode
            : versionCode // ignore: cast_nullable_to_non_nullable
                  as int?,
        appStoreUrl: freezed == appStoreUrl
            ? _value.appStoreUrl
            : appStoreUrl // ignore: cast_nullable_to_non_nullable
                  as String?,
        websiteUrl: freezed == websiteUrl
            ? _value.websiteUrl
            : websiteUrl // ignore: cast_nullable_to_non_nullable
                  as String?,
        directUrls: freezed == directUrls
            ? _value._directUrls
            : directUrls // ignore: cast_nullable_to_non_nullable
                  as List<String>?,
        md5: freezed == md5
            ? _value.md5
            : md5 // ignore: cast_nullable_to_non_nullable
                  as String?,
        info: freezed == info
            ? _value.info
            : info // ignore: cast_nullable_to_non_nullable
                  as String?,
        forced: freezed == forced
            ? _value.forced
            : forced // ignore: cast_nullable_to_non_nullable
                  as bool?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$UpgradeImpl with DiagnosticableTreeMixin implements _Upgrade {
  const _$UpgradeImpl({
    this.upgradeType,
    this.versionName,
    this.versionCode,
    this.appStoreUrl,
    this.websiteUrl,
    final List<String>? directUrls,
    this.md5,
    this.info,
    this.forced,
  }) : _directUrls = directUrls;

  factory _$UpgradeImpl.fromJson(Map<String, dynamic> json) =>
      _$$UpgradeImplFromJson(json);

  @override
  final int? upgradeType;
  @override
  final String? versionName;
  @override
  final int? versionCode;
  @override
  final String? appStoreUrl;
  @override
  final String? websiteUrl;
  final List<String>? _directUrls;
  @override
  List<String>? get directUrls {
    final value = _directUrls;
    if (value == null) return null;
    if (_directUrls is EqualUnmodifiableListView) return _directUrls;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  final String? md5;
  @override
  final String? info;
  @override
  final bool? forced;

  @override
  String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
    return 'Upgrade(upgradeType: $upgradeType, versionName: $versionName, versionCode: $versionCode, appStoreUrl: $appStoreUrl, websiteUrl: $websiteUrl, directUrls: $directUrls, md5: $md5, info: $info, forced: $forced)';
  }

  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties
      ..add(DiagnosticsProperty('type', 'Upgrade'))
      ..add(DiagnosticsProperty('upgradeType', upgradeType))
      ..add(DiagnosticsProperty('versionName', versionName))
      ..add(DiagnosticsProperty('versionCode', versionCode))
      ..add(DiagnosticsProperty('appStoreUrl', appStoreUrl))
      ..add(DiagnosticsProperty('websiteUrl', websiteUrl))
      ..add(DiagnosticsProperty('directUrls', directUrls))
      ..add(DiagnosticsProperty('md5', md5))
      ..add(DiagnosticsProperty('info', info))
      ..add(DiagnosticsProperty('forced', forced));
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$UpgradeImpl &&
            (identical(other.upgradeType, upgradeType) ||
                other.upgradeType == upgradeType) &&
            (identical(other.versionName, versionName) ||
                other.versionName == versionName) &&
            (identical(other.versionCode, versionCode) ||
                other.versionCode == versionCode) &&
            (identical(other.appStoreUrl, appStoreUrl) ||
                other.appStoreUrl == appStoreUrl) &&
            (identical(other.websiteUrl, websiteUrl) ||
                other.websiteUrl == websiteUrl) &&
            const DeepCollectionEquality().equals(
              other._directUrls,
              _directUrls,
            ) &&
            (identical(other.md5, md5) || other.md5 == md5) &&
            (identical(other.info, info) || other.info == info) &&
            (identical(other.forced, forced) || other.forced == forced));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    upgradeType,
    versionName,
    versionCode,
    appStoreUrl,
    websiteUrl,
    const DeepCollectionEquality().hash(_directUrls),
    md5,
    info,
    forced,
  );

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

  @override
  Map<String, dynamic> toJson() {
    return _$$UpgradeImplToJson(this);
  }
}

abstract class _Upgrade implements Upgrade {
  const factory _Upgrade({
    final int? upgradeType,
    final String? versionName,
    final int? versionCode,
    final String? appStoreUrl,
    final String? websiteUrl,
    final List<String>? directUrls,
    final String? md5,
    final String? info,
    final bool? forced,
  }) = _$UpgradeImpl;

  factory _Upgrade.fromJson(Map<String, dynamic> json) = _$UpgradeImpl.fromJson;

  @override
  int? get upgradeType;
  @override
  String? get versionName;
  @override
  int? get versionCode;
  @override
  String? get appStoreUrl;
  @override
  String? get websiteUrl;
  @override
  List<String>? get directUrls;
  @override
  String? get md5;
  @override
  String? get info;
  @override
  bool? get forced;

  /// Create a copy of Upgrade
  /// with the given fields replaced by the non-null parameter values.
  @override
  @JsonKey(includeFromJson: false, includeToJson: false)
  _$$UpgradeImplCopyWith<_$UpgradeImpl> get copyWith =>
      throw _privateConstructorUsedError;
}
