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

P2PRecommendationModel _$P2PRecommendationModelFromJson(
    Map<String, dynamic> json) {
  return _P2PRecommendationModel.fromJson(json);
}

/// @nodoc
mixin _$P2PRecommendationModel {
  String get id => throw _privateConstructorUsedError;
  String get type => throw _privateConstructorUsedError;
  String get title => throw _privateConstructorUsedError;
  String get description => throw _privateConstructorUsedError;
  String get priority => throw _privateConstructorUsedError;
  String get category => throw _privateConstructorUsedError;
  Map<String, dynamic> get data => throw _privateConstructorUsedError;
  bool get isRead => throw _privateConstructorUsedError;
  DateTime get createdAt => throw _privateConstructorUsedError;
  DateTime? get expiresAt => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $P2PRecommendationModelCopyWith<$Res> {
  factory $P2PRecommendationModelCopyWith(P2PRecommendationModel value,
          $Res Function(P2PRecommendationModel) then) =
      _$P2PRecommendationModelCopyWithImpl<$Res, P2PRecommendationModel>;
  @useResult
  $Res call(
      {String id,
      String type,
      String title,
      String description,
      String priority,
      String category,
      Map<String, dynamic> data,
      bool isRead,
      DateTime createdAt,
      DateTime? expiresAt});
}

/// @nodoc
class _$P2PRecommendationModelCopyWithImpl<$Res,
        $Val extends P2PRecommendationModel>
    implements $P2PRecommendationModelCopyWith<$Res> {
  _$P2PRecommendationModelCopyWithImpl(this._value, this._then);

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

  /// Create a copy of P2PRecommendationModel
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = null,
    Object? type = null,
    Object? title = null,
    Object? description = null,
    Object? priority = null,
    Object? category = null,
    Object? data = null,
    Object? isRead = null,
    Object? createdAt = null,
    Object? expiresAt = freezed,
  }) {
    return _then(_value.copyWith(
      id: null == id
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String,
      type: null == type
          ? _value.type
          : type // ignore: cast_nullable_to_non_nullable
              as String,
      title: null == title
          ? _value.title
          : title // ignore: cast_nullable_to_non_nullable
              as String,
      description: null == description
          ? _value.description
          : description // ignore: cast_nullable_to_non_nullable
              as String,
      priority: null == priority
          ? _value.priority
          : priority // ignore: cast_nullable_to_non_nullable
              as String,
      category: null == category
          ? _value.category
          : category // ignore: cast_nullable_to_non_nullable
              as String,
      data: null == data
          ? _value.data
          : data // ignore: cast_nullable_to_non_nullable
              as Map<String, dynamic>,
      isRead: null == isRead
          ? _value.isRead
          : isRead // ignore: cast_nullable_to_non_nullable
              as bool,
      createdAt: null == createdAt
          ? _value.createdAt
          : createdAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      expiresAt: freezed == expiresAt
          ? _value.expiresAt
          : expiresAt // ignore: cast_nullable_to_non_nullable
              as DateTime?,
    ) as $Val);
  }
}

/// @nodoc
abstract class _$$P2PRecommendationModelImplCopyWith<$Res>
    implements $P2PRecommendationModelCopyWith<$Res> {
  factory _$$P2PRecommendationModelImplCopyWith(
          _$P2PRecommendationModelImpl value,
          $Res Function(_$P2PRecommendationModelImpl) then) =
      __$$P2PRecommendationModelImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {String id,
      String type,
      String title,
      String description,
      String priority,
      String category,
      Map<String, dynamic> data,
      bool isRead,
      DateTime createdAt,
      DateTime? expiresAt});
}

/// @nodoc
class __$$P2PRecommendationModelImplCopyWithImpl<$Res>
    extends _$P2PRecommendationModelCopyWithImpl<$Res,
        _$P2PRecommendationModelImpl>
    implements _$$P2PRecommendationModelImplCopyWith<$Res> {
  __$$P2PRecommendationModelImplCopyWithImpl(
      _$P2PRecommendationModelImpl _value,
      $Res Function(_$P2PRecommendationModelImpl) _then)
      : super(_value, _then);

  /// Create a copy of P2PRecommendationModel
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = null,
    Object? type = null,
    Object? title = null,
    Object? description = null,
    Object? priority = null,
    Object? category = null,
    Object? data = null,
    Object? isRead = null,
    Object? createdAt = null,
    Object? expiresAt = freezed,
  }) {
    return _then(_$P2PRecommendationModelImpl(
      id: null == id
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String,
      type: null == type
          ? _value.type
          : type // ignore: cast_nullable_to_non_nullable
              as String,
      title: null == title
          ? _value.title
          : title // ignore: cast_nullable_to_non_nullable
              as String,
      description: null == description
          ? _value.description
          : description // ignore: cast_nullable_to_non_nullable
              as String,
      priority: null == priority
          ? _value.priority
          : priority // ignore: cast_nullable_to_non_nullable
              as String,
      category: null == category
          ? _value.category
          : category // ignore: cast_nullable_to_non_nullable
              as String,
      data: null == data
          ? _value._data
          : data // ignore: cast_nullable_to_non_nullable
              as Map<String, dynamic>,
      isRead: null == isRead
          ? _value.isRead
          : isRead // ignore: cast_nullable_to_non_nullable
              as bool,
      createdAt: null == createdAt
          ? _value.createdAt
          : createdAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      expiresAt: freezed == expiresAt
          ? _value.expiresAt
          : expiresAt // ignore: cast_nullable_to_non_nullable
              as DateTime?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$P2PRecommendationModelImpl implements _P2PRecommendationModel {
  const _$P2PRecommendationModelImpl(
      {required this.id,
      required this.type,
      required this.title,
      required this.description,
      required this.priority,
      required this.category,
      required final Map<String, dynamic> data,
      required this.isRead,
      required this.createdAt,
      this.expiresAt})
      : _data = data;

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

  @override
  final String id;
  @override
  final String type;
  @override
  final String title;
  @override
  final String description;
  @override
  final String priority;
  @override
  final String category;
  final Map<String, dynamic> _data;
  @override
  Map<String, dynamic> get data {
    if (_data is EqualUnmodifiableMapView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableMapView(_data);
  }

  @override
  final bool isRead;
  @override
  final DateTime createdAt;
  @override
  final DateTime? expiresAt;

  @override
  String toString() {
    return 'P2PRecommendationModel(id: $id, type: $type, title: $title, description: $description, priority: $priority, category: $category, data: $data, isRead: $isRead, createdAt: $createdAt, expiresAt: $expiresAt)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$P2PRecommendationModelImpl &&
            (identical(other.id, id) || other.id == id) &&
            (identical(other.type, type) || other.type == type) &&
            (identical(other.title, title) || other.title == title) &&
            (identical(other.description, description) ||
                other.description == description) &&
            (identical(other.priority, priority) ||
                other.priority == priority) &&
            (identical(other.category, category) ||
                other.category == category) &&
            const DeepCollectionEquality().equals(other._data, _data) &&
            (identical(other.isRead, isRead) || other.isRead == isRead) &&
            (identical(other.createdAt, createdAt) ||
                other.createdAt == createdAt) &&
            (identical(other.expiresAt, expiresAt) ||
                other.expiresAt == expiresAt));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
      runtimeType,
      id,
      type,
      title,
      description,
      priority,
      category,
      const DeepCollectionEquality().hash(_data),
      isRead,
      createdAt,
      expiresAt);

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

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

abstract class _P2PRecommendationModel implements P2PRecommendationModel {
  const factory _P2PRecommendationModel(
      {required final String id,
      required final String type,
      required final String title,
      required final String description,
      required final String priority,
      required final String category,
      required final Map<String, dynamic> data,
      required final bool isRead,
      required final DateTime createdAt,
      final DateTime? expiresAt}) = _$P2PRecommendationModelImpl;

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

  @override
  String get id;
  @override
  String get type;
  @override
  String get title;
  @override
  String get description;
  @override
  String get priority;
  @override
  String get category;
  @override
  Map<String, dynamic> get data;
  @override
  bool get isRead;
  @override
  DateTime get createdAt;
  @override
  DateTime? get expiresAt;

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