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

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

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

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

PropertyModel _$PropertyModelFromJson(Map<String, dynamic> json) {
  return _PropertyModel.fromJson(json);
}

/// @nodoc
mixin _$PropertyModel {
  String? get externalID => throw _privateConstructorUsedError;
  String? get coverPhoto => throw _privateConstructorUsedError;
  String? get title => throw _privateConstructorUsedError;
  String? get rentFrequency => throw _privateConstructorUsedError;
  String? get location => throw _privateConstructorUsedError;
  String? get category => throw _privateConstructorUsedError;
  List<dynamic>? get amenities => throw _privateConstructorUsedError;
  int? get productScore => throw _privateConstructorUsedError;
  String? get type => throw _privateConstructorUsedError;
  int? get rooms => throw _privateConstructorUsedError;
  int? get baths => throw _privateConstructorUsedError;
  double? get price => throw _privateConstructorUsedError;
  bool get isBookmarked => throw _privateConstructorUsedError;

  Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
  @JsonKey(ignore: true)
  $PropertyModelCopyWith<PropertyModel> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $PropertyModelCopyWith<$Res> {
  factory $PropertyModelCopyWith(
          PropertyModel value, $Res Function(PropertyModel) then) =
      _$PropertyModelCopyWithImpl<$Res, PropertyModel>;
  @useResult
  $Res call(
      {String? externalID,
      String? coverPhoto,
      String? title,
      String? rentFrequency,
      String? location,
      String? category,
      List<dynamic>? amenities,
      int? productScore,
      String? type,
      int? rooms,
      int? baths,
      double? price,
      bool isBookmarked});
}

/// @nodoc
class _$PropertyModelCopyWithImpl<$Res, $Val extends PropertyModel>
    implements $PropertyModelCopyWith<$Res> {
  _$PropertyModelCopyWithImpl(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? externalID = freezed,
    Object? coverPhoto = freezed,
    Object? title = freezed,
    Object? rentFrequency = freezed,
    Object? location = freezed,
    Object? category = freezed,
    Object? amenities = freezed,
    Object? productScore = freezed,
    Object? type = freezed,
    Object? rooms = freezed,
    Object? baths = freezed,
    Object? price = freezed,
    Object? isBookmarked = null,
  }) {
    return _then(_value.copyWith(
      externalID: freezed == externalID
          ? _value.externalID
          : externalID // ignore: cast_nullable_to_non_nullable
              as String?,
      coverPhoto: freezed == coverPhoto
          ? _value.coverPhoto
          : coverPhoto // ignore: cast_nullable_to_non_nullable
              as String?,
      title: freezed == title
          ? _value.title
          : title // ignore: cast_nullable_to_non_nullable
              as String?,
      rentFrequency: freezed == rentFrequency
          ? _value.rentFrequency
          : rentFrequency // ignore: cast_nullable_to_non_nullable
              as String?,
      location: freezed == location
          ? _value.location
          : location // ignore: cast_nullable_to_non_nullable
              as String?,
      category: freezed == category
          ? _value.category
          : category // ignore: cast_nullable_to_non_nullable
              as String?,
      amenities: freezed == amenities
          ? _value.amenities
          : amenities // ignore: cast_nullable_to_non_nullable
              as List<dynamic>?,
      productScore: freezed == productScore
          ? _value.productScore
          : productScore // ignore: cast_nullable_to_non_nullable
              as int?,
      type: freezed == type
          ? _value.type
          : type // ignore: cast_nullable_to_non_nullable
              as String?,
      rooms: freezed == rooms
          ? _value.rooms
          : rooms // ignore: cast_nullable_to_non_nullable
              as int?,
      baths: freezed == baths
          ? _value.baths
          : baths // ignore: cast_nullable_to_non_nullable
              as int?,
      price: freezed == price
          ? _value.price
          : price // ignore: cast_nullable_to_non_nullable
              as double?,
      isBookmarked: null == isBookmarked
          ? _value.isBookmarked
          : isBookmarked // ignore: cast_nullable_to_non_nullable
              as bool,
    ) as $Val);
  }
}

/// @nodoc
abstract class _$$_PropertyModelCopyWith<$Res>
    implements $PropertyModelCopyWith<$Res> {
  factory _$$_PropertyModelCopyWith(
          _$_PropertyModel value, $Res Function(_$_PropertyModel) then) =
      __$$_PropertyModelCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {String? externalID,
      String? coverPhoto,
      String? title,
      String? rentFrequency,
      String? location,
      String? category,
      List<dynamic>? amenities,
      int? productScore,
      String? type,
      int? rooms,
      int? baths,
      double? price,
      bool isBookmarked});
}

/// @nodoc
class __$$_PropertyModelCopyWithImpl<$Res>
    extends _$PropertyModelCopyWithImpl<$Res, _$_PropertyModel>
    implements _$$_PropertyModelCopyWith<$Res> {
  __$$_PropertyModelCopyWithImpl(
      _$_PropertyModel _value, $Res Function(_$_PropertyModel) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? externalID = freezed,
    Object? coverPhoto = freezed,
    Object? title = freezed,
    Object? rentFrequency = freezed,
    Object? location = freezed,
    Object? category = freezed,
    Object? amenities = freezed,
    Object? productScore = freezed,
    Object? type = freezed,
    Object? rooms = freezed,
    Object? baths = freezed,
    Object? price = freezed,
    Object? isBookmarked = null,
  }) {
    return _then(_$_PropertyModel(
      externalID: freezed == externalID
          ? _value.externalID
          : externalID // ignore: cast_nullable_to_non_nullable
              as String?,
      coverPhoto: freezed == coverPhoto
          ? _value.coverPhoto
          : coverPhoto // ignore: cast_nullable_to_non_nullable
              as String?,
      title: freezed == title
          ? _value.title
          : title // ignore: cast_nullable_to_non_nullable
              as String?,
      rentFrequency: freezed == rentFrequency
          ? _value.rentFrequency
          : rentFrequency // ignore: cast_nullable_to_non_nullable
              as String?,
      location: freezed == location
          ? _value.location
          : location // ignore: cast_nullable_to_non_nullable
              as String?,
      category: freezed == category
          ? _value.category
          : category // ignore: cast_nullable_to_non_nullable
              as String?,
      amenities: freezed == amenities
          ? _value._amenities
          : amenities // ignore: cast_nullable_to_non_nullable
              as List<dynamic>?,
      productScore: freezed == productScore
          ? _value.productScore
          : productScore // ignore: cast_nullable_to_non_nullable
              as int?,
      type: freezed == type
          ? _value.type
          : type // ignore: cast_nullable_to_non_nullable
              as String?,
      rooms: freezed == rooms
          ? _value.rooms
          : rooms // ignore: cast_nullable_to_non_nullable
              as int?,
      baths: freezed == baths
          ? _value.baths
          : baths // ignore: cast_nullable_to_non_nullable
              as int?,
      price: freezed == price
          ? _value.price
          : price // ignore: cast_nullable_to_non_nullable
              as double?,
      isBookmarked: null == isBookmarked
          ? _value.isBookmarked
          : isBookmarked // ignore: cast_nullable_to_non_nullable
              as bool,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$_PropertyModel implements _PropertyModel {
  const _$_PropertyModel(
      {this.externalID,
      this.coverPhoto,
      this.title,
      this.rentFrequency,
      this.location,
      this.category,
      final List<dynamic>? amenities,
      this.productScore,
      this.type,
      this.rooms,
      this.baths,
      this.price,
      this.isBookmarked = false})
      : _amenities = amenities;

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

  @override
  final String? externalID;
  @override
  final String? coverPhoto;
  @override
  final String? title;
  @override
  final String? rentFrequency;
  @override
  final String? location;
  @override
  final String? category;
  final List<dynamic>? _amenities;
  @override
  List<dynamic>? get amenities {
    final value = _amenities;
    if (value == null) return null;
    if (_amenities is EqualUnmodifiableListView) return _amenities;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  final int? productScore;
  @override
  final String? type;
  @override
  final int? rooms;
  @override
  final int? baths;
  @override
  final double? price;
  @override
  @JsonKey()
  final bool isBookmarked;

  @override
  String toString() {
    return 'PropertyModel(externalID: $externalID, coverPhoto: $coverPhoto, title: $title, rentFrequency: $rentFrequency, location: $location, category: $category, amenities: $amenities, productScore: $productScore, type: $type, rooms: $rooms, baths: $baths, price: $price, isBookmarked: $isBookmarked)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$_PropertyModel &&
            (identical(other.externalID, externalID) ||
                other.externalID == externalID) &&
            (identical(other.coverPhoto, coverPhoto) ||
                other.coverPhoto == coverPhoto) &&
            (identical(other.title, title) || other.title == title) &&
            (identical(other.rentFrequency, rentFrequency) ||
                other.rentFrequency == rentFrequency) &&
            (identical(other.location, location) ||
                other.location == location) &&
            (identical(other.category, category) ||
                other.category == category) &&
            const DeepCollectionEquality()
                .equals(other._amenities, _amenities) &&
            (identical(other.productScore, productScore) ||
                other.productScore == productScore) &&
            (identical(other.type, type) || other.type == type) &&
            (identical(other.rooms, rooms) || other.rooms == rooms) &&
            (identical(other.baths, baths) || other.baths == baths) &&
            (identical(other.price, price) || other.price == price) &&
            (identical(other.isBookmarked, isBookmarked) ||
                other.isBookmarked == isBookmarked));
  }

  @JsonKey(ignore: true)
  @override
  int get hashCode => Object.hash(
      runtimeType,
      externalID,
      coverPhoto,
      title,
      rentFrequency,
      location,
      category,
      const DeepCollectionEquality().hash(_amenities),
      productScore,
      type,
      rooms,
      baths,
      price,
      isBookmarked);

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

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

abstract class _PropertyModel implements PropertyModel {
  const factory _PropertyModel(
      {final String? externalID,
      final String? coverPhoto,
      final String? title,
      final String? rentFrequency,
      final String? location,
      final String? category,
      final List<dynamic>? amenities,
      final int? productScore,
      final String? type,
      final int? rooms,
      final int? baths,
      final double? price,
      final bool isBookmarked}) = _$_PropertyModel;

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

  @override
  String? get externalID;
  @override
  String? get coverPhoto;
  @override
  String? get title;
  @override
  String? get rentFrequency;
  @override
  String? get location;
  @override
  String? get category;
  @override
  List<dynamic>? get amenities;
  @override
  int? get productScore;
  @override
  String? get type;
  @override
  int? get rooms;
  @override
  int? get baths;
  @override
  double? get price;
  @override
  bool get isBookmarked;
  @override
  @JsonKey(ignore: true)
  _$$_PropertyModelCopyWith<_$_PropertyModel> get copyWith =>
      throw _privateConstructorUsedError;
}
