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

User _$UserFromJson(Map<String, dynamic> json) {
  return _User.fromJson(json);
}

/// @nodoc
mixin _$User {
  String? get country => throw _privateConstructorUsedError;
  String? get countryName => throw _privateConstructorUsedError;
  String? get userIp => throw _privateConstructorUsedError;
  String? get accessToken => throw _privateConstructorUsedError;
  String? get refreshToken => throw _privateConstructorUsedError;
  String? get accountKey => throw _privateConstructorUsedError;
  String? get accountPassword => throw _privateConstructorUsedError;
  int? get createTime =>
      throw _privateConstructorUsedError; // API 返回 int 类型的时间戳
  bool? get geographyEea => throw _privateConstructorUsedError;
  int? get memberLevel => throw _privateConstructorUsedError; // 1设备用户 2注册用户
  int? get userLevel =>
      throw _privateConstructorUsedError; // 1试用 2免费 3会员 9999内部
  int? get expireTime => throw _privateConstructorUsedError; // VIP套餐到期时间
  int? get remainTime => throw _privateConstructorUsedError; // VIP套餐剩余时间
  bool? get isExpired => throw _privateConstructorUsedError; // VIP套餐是否过期
  bool? get isTestUser => throw _privateConstructorUsedError; // 是否是测试用户
  bool? get isSubscribeUser => throw _privateConstructorUsedError; // 是否是连续订阅用户
  Account? get account =>
      throw _privateConstructorUsedError; //isSubscribeUser=false 时返回最后一次购买套餐信息
  //isSubscribeUser=true 时返回当前订阅套餐信息
  ChannelPlan? get planInfo =>
      throw _privateConstructorUsedError; // userLevel=3时生效
  bool? get activated => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $UserCopyWith<$Res> {
  factory $UserCopyWith(User value, $Res Function(User) then) =
      _$UserCopyWithImpl<$Res, User>;
  @useResult
  $Res call({
    String? country,
    String? countryName,
    String? userIp,
    String? accessToken,
    String? refreshToken,
    String? accountKey,
    String? accountPassword,
    int? createTime,
    bool? geographyEea,
    int? memberLevel,
    int? userLevel,
    int? expireTime,
    int? remainTime,
    bool? isExpired,
    bool? isTestUser,
    bool? isSubscribeUser,
    Account? account,
    ChannelPlan? planInfo,
    bool? activated,
  });

  $AccountCopyWith<$Res>? get account;
  $ChannelPlanCopyWith<$Res>? get planInfo;
}

/// @nodoc
class _$UserCopyWithImpl<$Res, $Val extends User>
    implements $UserCopyWith<$Res> {
  _$UserCopyWithImpl(this._value, this._then);

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

  /// Create a copy of User
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? country = freezed,
    Object? countryName = freezed,
    Object? userIp = freezed,
    Object? accessToken = freezed,
    Object? refreshToken = freezed,
    Object? accountKey = freezed,
    Object? accountPassword = freezed,
    Object? createTime = freezed,
    Object? geographyEea = freezed,
    Object? memberLevel = freezed,
    Object? userLevel = freezed,
    Object? expireTime = freezed,
    Object? remainTime = freezed,
    Object? isExpired = freezed,
    Object? isTestUser = freezed,
    Object? isSubscribeUser = freezed,
    Object? account = freezed,
    Object? planInfo = freezed,
    Object? activated = freezed,
  }) {
    return _then(
      _value.copyWith(
            country: freezed == country
                ? _value.country
                : country // ignore: cast_nullable_to_non_nullable
                      as String?,
            countryName: freezed == countryName
                ? _value.countryName
                : countryName // ignore: cast_nullable_to_non_nullable
                      as String?,
            userIp: freezed == userIp
                ? _value.userIp
                : userIp // ignore: cast_nullable_to_non_nullable
                      as String?,
            accessToken: freezed == accessToken
                ? _value.accessToken
                : accessToken // ignore: cast_nullable_to_non_nullable
                      as String?,
            refreshToken: freezed == refreshToken
                ? _value.refreshToken
                : refreshToken // ignore: cast_nullable_to_non_nullable
                      as String?,
            accountKey: freezed == accountKey
                ? _value.accountKey
                : accountKey // ignore: cast_nullable_to_non_nullable
                      as String?,
            accountPassword: freezed == accountPassword
                ? _value.accountPassword
                : accountPassword // ignore: cast_nullable_to_non_nullable
                      as String?,
            createTime: freezed == createTime
                ? _value.createTime
                : createTime // ignore: cast_nullable_to_non_nullable
                      as int?,
            geographyEea: freezed == geographyEea
                ? _value.geographyEea
                : geographyEea // ignore: cast_nullable_to_non_nullable
                      as bool?,
            memberLevel: freezed == memberLevel
                ? _value.memberLevel
                : memberLevel // ignore: cast_nullable_to_non_nullable
                      as int?,
            userLevel: freezed == userLevel
                ? _value.userLevel
                : userLevel // ignore: cast_nullable_to_non_nullable
                      as int?,
            expireTime: freezed == expireTime
                ? _value.expireTime
                : expireTime // ignore: cast_nullable_to_non_nullable
                      as int?,
            remainTime: freezed == remainTime
                ? _value.remainTime
                : remainTime // ignore: cast_nullable_to_non_nullable
                      as int?,
            isExpired: freezed == isExpired
                ? _value.isExpired
                : isExpired // ignore: cast_nullable_to_non_nullable
                      as bool?,
            isTestUser: freezed == isTestUser
                ? _value.isTestUser
                : isTestUser // ignore: cast_nullable_to_non_nullable
                      as bool?,
            isSubscribeUser: freezed == isSubscribeUser
                ? _value.isSubscribeUser
                : isSubscribeUser // ignore: cast_nullable_to_non_nullable
                      as bool?,
            account: freezed == account
                ? _value.account
                : account // ignore: cast_nullable_to_non_nullable
                      as Account?,
            planInfo: freezed == planInfo
                ? _value.planInfo
                : planInfo // ignore: cast_nullable_to_non_nullable
                      as ChannelPlan?,
            activated: freezed == activated
                ? _value.activated
                : activated // ignore: cast_nullable_to_non_nullable
                      as bool?,
          )
          as $Val,
    );
  }

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

    return $AccountCopyWith<$Res>(_value.account!, (value) {
      return _then(_value.copyWith(account: value) as $Val);
    });
  }

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

    return $ChannelPlanCopyWith<$Res>(_value.planInfo!, (value) {
      return _then(_value.copyWith(planInfo: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$UserImplCopyWith<$Res> implements $UserCopyWith<$Res> {
  factory _$$UserImplCopyWith(
    _$UserImpl value,
    $Res Function(_$UserImpl) then,
  ) = __$$UserImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String? country,
    String? countryName,
    String? userIp,
    String? accessToken,
    String? refreshToken,
    String? accountKey,
    String? accountPassword,
    int? createTime,
    bool? geographyEea,
    int? memberLevel,
    int? userLevel,
    int? expireTime,
    int? remainTime,
    bool? isExpired,
    bool? isTestUser,
    bool? isSubscribeUser,
    Account? account,
    ChannelPlan? planInfo,
    bool? activated,
  });

  @override
  $AccountCopyWith<$Res>? get account;
  @override
  $ChannelPlanCopyWith<$Res>? get planInfo;
}

/// @nodoc
class __$$UserImplCopyWithImpl<$Res>
    extends _$UserCopyWithImpl<$Res, _$UserImpl>
    implements _$$UserImplCopyWith<$Res> {
  __$$UserImplCopyWithImpl(_$UserImpl _value, $Res Function(_$UserImpl) _then)
    : super(_value, _then);

  /// Create a copy of User
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? country = freezed,
    Object? countryName = freezed,
    Object? userIp = freezed,
    Object? accessToken = freezed,
    Object? refreshToken = freezed,
    Object? accountKey = freezed,
    Object? accountPassword = freezed,
    Object? createTime = freezed,
    Object? geographyEea = freezed,
    Object? memberLevel = freezed,
    Object? userLevel = freezed,
    Object? expireTime = freezed,
    Object? remainTime = freezed,
    Object? isExpired = freezed,
    Object? isTestUser = freezed,
    Object? isSubscribeUser = freezed,
    Object? account = freezed,
    Object? planInfo = freezed,
    Object? activated = freezed,
  }) {
    return _then(
      _$UserImpl(
        country: freezed == country
            ? _value.country
            : country // ignore: cast_nullable_to_non_nullable
                  as String?,
        countryName: freezed == countryName
            ? _value.countryName
            : countryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        userIp: freezed == userIp
            ? _value.userIp
            : userIp // ignore: cast_nullable_to_non_nullable
                  as String?,
        accessToken: freezed == accessToken
            ? _value.accessToken
            : accessToken // ignore: cast_nullable_to_non_nullable
                  as String?,
        refreshToken: freezed == refreshToken
            ? _value.refreshToken
            : refreshToken // ignore: cast_nullable_to_non_nullable
                  as String?,
        accountKey: freezed == accountKey
            ? _value.accountKey
            : accountKey // ignore: cast_nullable_to_non_nullable
                  as String?,
        accountPassword: freezed == accountPassword
            ? _value.accountPassword
            : accountPassword // ignore: cast_nullable_to_non_nullable
                  as String?,
        createTime: freezed == createTime
            ? _value.createTime
            : createTime // ignore: cast_nullable_to_non_nullable
                  as int?,
        geographyEea: freezed == geographyEea
            ? _value.geographyEea
            : geographyEea // ignore: cast_nullable_to_non_nullable
                  as bool?,
        memberLevel: freezed == memberLevel
            ? _value.memberLevel
            : memberLevel // ignore: cast_nullable_to_non_nullable
                  as int?,
        userLevel: freezed == userLevel
            ? _value.userLevel
            : userLevel // ignore: cast_nullable_to_non_nullable
                  as int?,
        expireTime: freezed == expireTime
            ? _value.expireTime
            : expireTime // ignore: cast_nullable_to_non_nullable
                  as int?,
        remainTime: freezed == remainTime
            ? _value.remainTime
            : remainTime // ignore: cast_nullable_to_non_nullable
                  as int?,
        isExpired: freezed == isExpired
            ? _value.isExpired
            : isExpired // ignore: cast_nullable_to_non_nullable
                  as bool?,
        isTestUser: freezed == isTestUser
            ? _value.isTestUser
            : isTestUser // ignore: cast_nullable_to_non_nullable
                  as bool?,
        isSubscribeUser: freezed == isSubscribeUser
            ? _value.isSubscribeUser
            : isSubscribeUser // ignore: cast_nullable_to_non_nullable
                  as bool?,
        account: freezed == account
            ? _value.account
            : account // ignore: cast_nullable_to_non_nullable
                  as Account?,
        planInfo: freezed == planInfo
            ? _value.planInfo
            : planInfo // ignore: cast_nullable_to_non_nullable
                  as ChannelPlan?,
        activated: freezed == activated
            ? _value.activated
            : activated // ignore: cast_nullable_to_non_nullable
                  as bool?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$UserImpl with DiagnosticableTreeMixin implements _User {
  const _$UserImpl({
    this.country,
    this.countryName,
    this.userIp,
    this.accessToken,
    this.refreshToken,
    this.accountKey,
    this.accountPassword,
    this.createTime,
    this.geographyEea,
    this.memberLevel,
    this.userLevel,
    this.expireTime,
    this.remainTime,
    this.isExpired,
    this.isTestUser,
    this.isSubscribeUser,
    this.account,
    this.planInfo,
    this.activated,
  });

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

  @override
  final String? country;
  @override
  final String? countryName;
  @override
  final String? userIp;
  @override
  final String? accessToken;
  @override
  final String? refreshToken;
  @override
  final String? accountKey;
  @override
  final String? accountPassword;
  @override
  final int? createTime;
  // API 返回 int 类型的时间戳
  @override
  final bool? geographyEea;
  @override
  final int? memberLevel;
  // 1设备用户 2注册用户
  @override
  final int? userLevel;
  // 1试用 2免费 3会员 9999内部
  @override
  final int? expireTime;
  // VIP套餐到期时间
  @override
  final int? remainTime;
  // VIP套餐剩余时间
  @override
  final bool? isExpired;
  // VIP套餐是否过期
  @override
  final bool? isTestUser;
  // 是否是测试用户
  @override
  final bool? isSubscribeUser;
  // 是否是连续订阅用户
  @override
  final Account? account;
  //isSubscribeUser=false 时返回最后一次购买套餐信息
  //isSubscribeUser=true 时返回当前订阅套餐信息
  @override
  final ChannelPlan? planInfo;
  // userLevel=3时生效
  @override
  final bool? activated;

  @override
  String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
    return 'User(country: $country, countryName: $countryName, userIp: $userIp, accessToken: $accessToken, refreshToken: $refreshToken, accountKey: $accountKey, accountPassword: $accountPassword, createTime: $createTime, geographyEea: $geographyEea, memberLevel: $memberLevel, userLevel: $userLevel, expireTime: $expireTime, remainTime: $remainTime, isExpired: $isExpired, isTestUser: $isTestUser, isSubscribeUser: $isSubscribeUser, account: $account, planInfo: $planInfo, activated: $activated)';
  }

  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties
      ..add(DiagnosticsProperty('type', 'User'))
      ..add(DiagnosticsProperty('country', country))
      ..add(DiagnosticsProperty('countryName', countryName))
      ..add(DiagnosticsProperty('userIp', userIp))
      ..add(DiagnosticsProperty('accessToken', accessToken))
      ..add(DiagnosticsProperty('refreshToken', refreshToken))
      ..add(DiagnosticsProperty('accountKey', accountKey))
      ..add(DiagnosticsProperty('accountPassword', accountPassword))
      ..add(DiagnosticsProperty('createTime', createTime))
      ..add(DiagnosticsProperty('geographyEea', geographyEea))
      ..add(DiagnosticsProperty('memberLevel', memberLevel))
      ..add(DiagnosticsProperty('userLevel', userLevel))
      ..add(DiagnosticsProperty('expireTime', expireTime))
      ..add(DiagnosticsProperty('remainTime', remainTime))
      ..add(DiagnosticsProperty('isExpired', isExpired))
      ..add(DiagnosticsProperty('isTestUser', isTestUser))
      ..add(DiagnosticsProperty('isSubscribeUser', isSubscribeUser))
      ..add(DiagnosticsProperty('account', account))
      ..add(DiagnosticsProperty('planInfo', planInfo))
      ..add(DiagnosticsProperty('activated', activated));
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$UserImpl &&
            (identical(other.country, country) || other.country == country) &&
            (identical(other.countryName, countryName) ||
                other.countryName == countryName) &&
            (identical(other.userIp, userIp) || other.userIp == userIp) &&
            (identical(other.accessToken, accessToken) ||
                other.accessToken == accessToken) &&
            (identical(other.refreshToken, refreshToken) ||
                other.refreshToken == refreshToken) &&
            (identical(other.accountKey, accountKey) ||
                other.accountKey == accountKey) &&
            (identical(other.accountPassword, accountPassword) ||
                other.accountPassword == accountPassword) &&
            (identical(other.createTime, createTime) ||
                other.createTime == createTime) &&
            (identical(other.geographyEea, geographyEea) ||
                other.geographyEea == geographyEea) &&
            (identical(other.memberLevel, memberLevel) ||
                other.memberLevel == memberLevel) &&
            (identical(other.userLevel, userLevel) ||
                other.userLevel == userLevel) &&
            (identical(other.expireTime, expireTime) ||
                other.expireTime == expireTime) &&
            (identical(other.remainTime, remainTime) ||
                other.remainTime == remainTime) &&
            (identical(other.isExpired, isExpired) ||
                other.isExpired == isExpired) &&
            (identical(other.isTestUser, isTestUser) ||
                other.isTestUser == isTestUser) &&
            (identical(other.isSubscribeUser, isSubscribeUser) ||
                other.isSubscribeUser == isSubscribeUser) &&
            (identical(other.account, account) || other.account == account) &&
            (identical(other.planInfo, planInfo) ||
                other.planInfo == planInfo) &&
            (identical(other.activated, activated) ||
                other.activated == activated));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hashAll([
    runtimeType,
    country,
    countryName,
    userIp,
    accessToken,
    refreshToken,
    accountKey,
    accountPassword,
    createTime,
    geographyEea,
    memberLevel,
    userLevel,
    expireTime,
    remainTime,
    isExpired,
    isTestUser,
    isSubscribeUser,
    account,
    planInfo,
    activated,
  ]);

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

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

abstract class _User implements User {
  const factory _User({
    final String? country,
    final String? countryName,
    final String? userIp,
    final String? accessToken,
    final String? refreshToken,
    final String? accountKey,
    final String? accountPassword,
    final int? createTime,
    final bool? geographyEea,
    final int? memberLevel,
    final int? userLevel,
    final int? expireTime,
    final int? remainTime,
    final bool? isExpired,
    final bool? isTestUser,
    final bool? isSubscribeUser,
    final Account? account,
    final ChannelPlan? planInfo,
    final bool? activated,
  }) = _$UserImpl;

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

  @override
  String? get country;
  @override
  String? get countryName;
  @override
  String? get userIp;
  @override
  String? get accessToken;
  @override
  String? get refreshToken;
  @override
  String? get accountKey;
  @override
  String? get accountPassword;
  @override
  int? get createTime; // API 返回 int 类型的时间戳
  @override
  bool? get geographyEea;
  @override
  int? get memberLevel; // 1设备用户 2注册用户
  @override
  int? get userLevel; // 1试用 2免费 3会员 9999内部
  @override
  int? get expireTime; // VIP套餐到期时间
  @override
  int? get remainTime; // VIP套餐剩余时间
  @override
  bool? get isExpired; // VIP套餐是否过期
  @override
  bool? get isTestUser; // 是否是测试用户
  @override
  bool? get isSubscribeUser; // 是否是连续订阅用户
  @override
  Account? get account; //isSubscribeUser=false 时返回最后一次购买套餐信息
  //isSubscribeUser=true 时返回当前订阅套餐信息
  @override
  ChannelPlan? get planInfo; // userLevel=3时生效
  @override
  bool? get activated;

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

Account _$AccountFromJson(Map<String, dynamic> json) {
  return _Account.fromJson(json);
}

/// @nodoc
mixin _$Account {
  String? get username => throw _privateConstructorUsedError;
  String? get phone => throw _privateConstructorUsedError;
  String? get email => throw _privateConstructorUsedError;
  String? get wechat => throw _privateConstructorUsedError;
  String? get qq => throw _privateConstructorUsedError;
  String? get google => throw _privateConstructorUsedError;
  String? get apple => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $AccountCopyWith<$Res> {
  factory $AccountCopyWith(Account value, $Res Function(Account) then) =
      _$AccountCopyWithImpl<$Res, Account>;
  @useResult
  $Res call({
    String? username,
    String? phone,
    String? email,
    String? wechat,
    String? qq,
    String? google,
    String? apple,
  });
}

/// @nodoc
class _$AccountCopyWithImpl<$Res, $Val extends Account>
    implements $AccountCopyWith<$Res> {
  _$AccountCopyWithImpl(this._value, this._then);

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

  /// Create a copy of Account
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? username = freezed,
    Object? phone = freezed,
    Object? email = freezed,
    Object? wechat = freezed,
    Object? qq = freezed,
    Object? google = freezed,
    Object? apple = freezed,
  }) {
    return _then(
      _value.copyWith(
            username: freezed == username
                ? _value.username
                : username // ignore: cast_nullable_to_non_nullable
                      as String?,
            phone: freezed == phone
                ? _value.phone
                : phone // ignore: cast_nullable_to_non_nullable
                      as String?,
            email: freezed == email
                ? _value.email
                : email // ignore: cast_nullable_to_non_nullable
                      as String?,
            wechat: freezed == wechat
                ? _value.wechat
                : wechat // ignore: cast_nullable_to_non_nullable
                      as String?,
            qq: freezed == qq
                ? _value.qq
                : qq // ignore: cast_nullable_to_non_nullable
                      as String?,
            google: freezed == google
                ? _value.google
                : google // ignore: cast_nullable_to_non_nullable
                      as String?,
            apple: freezed == apple
                ? _value.apple
                : apple // ignore: cast_nullable_to_non_nullable
                      as String?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$AccountImplCopyWith<$Res> implements $AccountCopyWith<$Res> {
  factory _$$AccountImplCopyWith(
    _$AccountImpl value,
    $Res Function(_$AccountImpl) then,
  ) = __$$AccountImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String? username,
    String? phone,
    String? email,
    String? wechat,
    String? qq,
    String? google,
    String? apple,
  });
}

/// @nodoc
class __$$AccountImplCopyWithImpl<$Res>
    extends _$AccountCopyWithImpl<$Res, _$AccountImpl>
    implements _$$AccountImplCopyWith<$Res> {
  __$$AccountImplCopyWithImpl(
    _$AccountImpl _value,
    $Res Function(_$AccountImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of Account
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? username = freezed,
    Object? phone = freezed,
    Object? email = freezed,
    Object? wechat = freezed,
    Object? qq = freezed,
    Object? google = freezed,
    Object? apple = freezed,
  }) {
    return _then(
      _$AccountImpl(
        username: freezed == username
            ? _value.username
            : username // ignore: cast_nullable_to_non_nullable
                  as String?,
        phone: freezed == phone
            ? _value.phone
            : phone // ignore: cast_nullable_to_non_nullable
                  as String?,
        email: freezed == email
            ? _value.email
            : email // ignore: cast_nullable_to_non_nullable
                  as String?,
        wechat: freezed == wechat
            ? _value.wechat
            : wechat // ignore: cast_nullable_to_non_nullable
                  as String?,
        qq: freezed == qq
            ? _value.qq
            : qq // ignore: cast_nullable_to_non_nullable
                  as String?,
        google: freezed == google
            ? _value.google
            : google // ignore: cast_nullable_to_non_nullable
                  as String?,
        apple: freezed == apple
            ? _value.apple
            : apple // ignore: cast_nullable_to_non_nullable
                  as String?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$AccountImpl with DiagnosticableTreeMixin implements _Account {
  const _$AccountImpl({
    this.username,
    this.phone,
    this.email,
    this.wechat,
    this.qq,
    this.google,
    this.apple,
  });

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

  @override
  final String? username;
  @override
  final String? phone;
  @override
  final String? email;
  @override
  final String? wechat;
  @override
  final String? qq;
  @override
  final String? google;
  @override
  final String? apple;

  @override
  String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
    return 'Account(username: $username, phone: $phone, email: $email, wechat: $wechat, qq: $qq, google: $google, apple: $apple)';
  }

  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties
      ..add(DiagnosticsProperty('type', 'Account'))
      ..add(DiagnosticsProperty('username', username))
      ..add(DiagnosticsProperty('phone', phone))
      ..add(DiagnosticsProperty('email', email))
      ..add(DiagnosticsProperty('wechat', wechat))
      ..add(DiagnosticsProperty('qq', qq))
      ..add(DiagnosticsProperty('google', google))
      ..add(DiagnosticsProperty('apple', apple));
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$AccountImpl &&
            (identical(other.username, username) ||
                other.username == username) &&
            (identical(other.phone, phone) || other.phone == phone) &&
            (identical(other.email, email) || other.email == email) &&
            (identical(other.wechat, wechat) || other.wechat == wechat) &&
            (identical(other.qq, qq) || other.qq == qq) &&
            (identical(other.google, google) || other.google == google) &&
            (identical(other.apple, apple) || other.apple == apple));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    username,
    phone,
    email,
    wechat,
    qq,
    google,
    apple,
  );

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

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

abstract class _Account implements Account {
  const factory _Account({
    final String? username,
    final String? phone,
    final String? email,
    final String? wechat,
    final String? qq,
    final String? google,
    final String? apple,
  }) = _$AccountImpl;

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

  @override
  String? get username;
  @override
  String? get phone;
  @override
  String? get email;
  @override
  String? get wechat;
  @override
  String? get qq;
  @override
  String? get google;
  @override
  String? get apple;

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