<|start_filename|>lib/models/photo_details.g.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'photo_details.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

_$_PhotoDetails _$_$_PhotoDetailsFromJson(Map<String, dynamic> json) {
  return _$_PhotoDetails(
    id: json['id'] as String?,
    created_at: json['created_at'] == null
        ? null
        : DateTime.parse(json['created_at'] as String),
    updated_at: json['updated_at'] == null
        ? null
        : DateTime.parse(json['updated_at'] as String),
    width: json['width'] as int?,
    height: json['height'] as int?,
    color: json['color'] as String?,
    blur_hash: json['blur_hash'] as String?,
    urls: json['urls'] == null
        ? null
        : Urls.fromJson(json['urls'] as Map<String, dynamic>),
    links: json['links'] == null
        ? null
        : PhotoLinks.fromJson(json['links'] as Map<String, dynamic>),
    exif: json['exif'] == null
        ? null
        : Exif.fromJson(json['exif'] as Map<String, dynamic>),
    user: json['user'] == null
        ? null
        : User.fromJson(json['user'] as Map<String, dynamic>),
    likes: json['likes'] as int?,
    views: json['views'] as int?,
    downloads: json['downloads'] as int?,
  );
}

Map<String, dynamic> _$_$_PhotoDetailsToJson(_$_PhotoDetails instance) =>
    <String, dynamic>{
      'id': instance.id,
      'created_at': instance.created_at?.toIso8601String(),
      'updated_at': instance.updated_at?.toIso8601String(),
      'width': instance.width,
      'height': instance.height,
      'color': instance.color,
      'blur_hash': instance.blur_hash,
      'urls': instance.urls,
      'links': instance.links,
      'exif': instance.exif,
      'user': instance.user,
      'likes': instance.likes,
      'views': instance.views,
      'downloads': instance.downloads,
    };

_$_Exif _$_$_ExifFromJson(Map<String, dynamic> json) {
  return _$_Exif(
    make: json['make'] as String?,
    model: json['model'] as String?,
    exposure_time: json['exposure_time'] as String?,
    aperture: json['aperture'] as String?,
    focal_length: json['focal_length'] as String?,
    iso: json['iso'] as int?,
  );
}

Map<String, dynamic> _$_$_ExifToJson(_$_Exif instance) => <String, dynamic>{
      'make': instance.make,
      'model': instance.model,
      'exposure_time': instance.exposure_time,
      'aperture': instance.aperture,
      'focal_length': instance.focal_length,
      'iso': instance.iso,
    };


<|start_filename|>lib/models/urls.dart<|end_filename|>
import 'package:freezed_annotation/freezed_annotation.dart';

part 'urls.freezed.dart';
part 'urls.g.dart';

@freezed
class Urls with _$Urls {
  factory Urls({
    required String raw,
    required String full,
    required String regular,
    required String small,
    required String thumb,
  }) = _Urls;

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


<|start_filename|>lib/models/profile.dart<|end_filename|>
import 'package:freezed_annotation/freezed_annotation.dart';

part 'profile.freezed.dart';
part 'profile.g.dart';

@freezed
class ProfileImage with _$ProfileImage {
  factory ProfileImage({
    required String? small,
    required String? medium,
    required String? large,
  }) = _ProfileImage;

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


<|start_filename|>lib/models/profile.g.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'profile.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

_$_ProfileImage _$_$_ProfileImageFromJson(Map<String, dynamic> json) {
  return _$_ProfileImage(
    small: json['small'] as String?,
    medium: json['medium'] as String?,
    large: json['large'] as String?,
  );
}

Map<String, dynamic> _$_$_ProfileImageToJson(_$_ProfileImage instance) =>
    <String, dynamic>{
      'small': instance.small,
      'medium': instance.medium,
      'large': instance.large,
    };


<|start_filename|>lib/helpers/permission_manager.dart<|end_filename|>
import 'package:permission_handler/permission_handler.dart';

Future<bool> requestPermissions() async {
  var permission = await Permission.storage.status;
  if (permission != PermissionStatus.granted) {
    await Permission.storage.request();
    permission = await Permission.storage.status;
  }
  return permission == PermissionStatus.granted;
}


<|start_filename|>lib/models/user.freezed.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND
// 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

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 informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

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

/// @nodoc
class _$UserTearOff {
  const _$UserTearOff();

  _User call(
      {required String? id,
      required DateTime? updated_at,
      required String? username,
      required String? name,
      required String? first_name,
      required UserLinks links,
      required ProfileImage profile_image}) {
    return _User(
      id: id,
      updated_at: updated_at,
      username: username,
      name: name,
      first_name: first_name,
      links: links,
      profile_image: profile_image,
    );
  }

  User fromJson(Map<String, Object> json) {
    return User.fromJson(json);
  }
}

/// @nodoc
const $User = _$UserTearOff();

/// @nodoc
mixin _$User {
  String? get id => throw _privateConstructorUsedError;
  DateTime? get updated_at => throw _privateConstructorUsedError;
  String? get username => throw _privateConstructorUsedError;
  String? get name => throw _privateConstructorUsedError;
  String? get first_name => throw _privateConstructorUsedError;
  UserLinks get links => throw _privateConstructorUsedError;
  ProfileImage get profile_image => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $UserCopyWith<$Res> {
  factory $UserCopyWith(User value, $Res Function(User) then) =
      _$UserCopyWithImpl<$Res>;
  $Res call(
      {String? id,
      DateTime? updated_at,
      String? username,
      String? name,
      String? first_name,
      UserLinks links,
      ProfileImage profile_image});

  $UserLinksCopyWith<$Res> get links;
  $ProfileImageCopyWith<$Res> get profile_image;
}

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

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

  @override
  $Res call({
    Object? id = freezed,
    Object? updated_at = freezed,
    Object? username = freezed,
    Object? name = freezed,
    Object? first_name = freezed,
    Object? links = freezed,
    Object? profile_image = freezed,
  }) {
    return _then(_value.copyWith(
      id: id == freezed
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String?,
      updated_at: updated_at == freezed
          ? _value.updated_at
          : updated_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      username: username == freezed
          ? _value.username
          : username // ignore: cast_nullable_to_non_nullable
              as String?,
      name: name == freezed
          ? _value.name
          : name // ignore: cast_nullable_to_non_nullable
              as String?,
      first_name: first_name == freezed
          ? _value.first_name
          : first_name // ignore: cast_nullable_to_non_nullable
              as String?,
      links: links == freezed
          ? _value.links
          : links // ignore: cast_nullable_to_non_nullable
              as UserLinks,
      profile_image: profile_image == freezed
          ? _value.profile_image
          : profile_image // ignore: cast_nullable_to_non_nullable
              as ProfileImage,
    ));
  }

  @override
  $UserLinksCopyWith<$Res> get links {
    return $UserLinksCopyWith<$Res>(_value.links, (value) {
      return _then(_value.copyWith(links: value));
    });
  }

  @override
  $ProfileImageCopyWith<$Res> get profile_image {
    return $ProfileImageCopyWith<$Res>(_value.profile_image, (value) {
      return _then(_value.copyWith(profile_image: value));
    });
  }
}

/// @nodoc
abstract class _$UserCopyWith<$Res> implements $UserCopyWith<$Res> {
  factory _$UserCopyWith(_User value, $Res Function(_User) then) =
      __$UserCopyWithImpl<$Res>;
  @override
  $Res call(
      {String? id,
      DateTime? updated_at,
      String? username,
      String? name,
      String? first_name,
      UserLinks links,
      ProfileImage profile_image});

  @override
  $UserLinksCopyWith<$Res> get links;
  @override
  $ProfileImageCopyWith<$Res> get profile_image;
}

/// @nodoc
class __$UserCopyWithImpl<$Res> extends _$UserCopyWithImpl<$Res>
    implements _$UserCopyWith<$Res> {
  __$UserCopyWithImpl(_User _value, $Res Function(_User) _then)
      : super(_value, (v) => _then(v as _User));

  @override
  _User get _value => super._value as _User;

  @override
  $Res call({
    Object? id = freezed,
    Object? updated_at = freezed,
    Object? username = freezed,
    Object? name = freezed,
    Object? first_name = freezed,
    Object? links = freezed,
    Object? profile_image = freezed,
  }) {
    return _then(_User(
      id: id == freezed
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String?,
      updated_at: updated_at == freezed
          ? _value.updated_at
          : updated_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      username: username == freezed
          ? _value.username
          : username // ignore: cast_nullable_to_non_nullable
              as String?,
      name: name == freezed
          ? _value.name
          : name // ignore: cast_nullable_to_non_nullable
              as String?,
      first_name: first_name == freezed
          ? _value.first_name
          : first_name // ignore: cast_nullable_to_non_nullable
              as String?,
      links: links == freezed
          ? _value.links
          : links // ignore: cast_nullable_to_non_nullable
              as UserLinks,
      profile_image: profile_image == freezed
          ? _value.profile_image
          : profile_image // ignore: cast_nullable_to_non_nullable
              as ProfileImage,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_User implements _User {
  _$_User(
      {required this.id,
      required this.updated_at,
      required this.username,
      required this.name,
      required this.first_name,
      required this.links,
      required this.profile_image});

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

  @override
  final String? id;
  @override
  final DateTime? updated_at;
  @override
  final String? username;
  @override
  final String? name;
  @override
  final String? first_name;
  @override
  final UserLinks links;
  @override
  final ProfileImage profile_image;

  @override
  String toString() {
    return 'User(id: $id, updated_at: $updated_at, username: $username, name: $name, first_name: $first_name, links: $links, profile_image: $profile_image)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _User &&
            (identical(other.id, id) ||
                const DeepCollectionEquality().equals(other.id, id)) &&
            (identical(other.updated_at, updated_at) ||
                const DeepCollectionEquality()
                    .equals(other.updated_at, updated_at)) &&
            (identical(other.username, username) ||
                const DeepCollectionEquality()
                    .equals(other.username, username)) &&
            (identical(other.name, name) ||
                const DeepCollectionEquality().equals(other.name, name)) &&
            (identical(other.first_name, first_name) ||
                const DeepCollectionEquality()
                    .equals(other.first_name, first_name)) &&
            (identical(other.links, links) ||
                const DeepCollectionEquality().equals(other.links, links)) &&
            (identical(other.profile_image, profile_image) ||
                const DeepCollectionEquality()
                    .equals(other.profile_image, profile_image)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(id) ^
      const DeepCollectionEquality().hash(updated_at) ^
      const DeepCollectionEquality().hash(username) ^
      const DeepCollectionEquality().hash(name) ^
      const DeepCollectionEquality().hash(first_name) ^
      const DeepCollectionEquality().hash(links) ^
      const DeepCollectionEquality().hash(profile_image);

  @JsonKey(ignore: true)
  @override
  _$UserCopyWith<_User> get copyWith =>
      __$UserCopyWithImpl<_User>(this, _$identity);

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

abstract class _User implements User {
  factory _User(
      {required String? id,
      required DateTime? updated_at,
      required String? username,
      required String? name,
      required String? first_name,
      required UserLinks links,
      required ProfileImage profile_image}) = _$_User;

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

  @override
  String? get id => throw _privateConstructorUsedError;
  @override
  DateTime? get updated_at => throw _privateConstructorUsedError;
  @override
  String? get username => throw _privateConstructorUsedError;
  @override
  String? get name => throw _privateConstructorUsedError;
  @override
  String? get first_name => throw _privateConstructorUsedError;
  @override
  UserLinks get links => throw _privateConstructorUsedError;
  @override
  ProfileImage get profile_image => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$UserCopyWith<_User> get copyWith => throw _privateConstructorUsedError;
}


<|start_filename|>lib/models/urls.g.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'urls.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

_$_Urls _$_$_UrlsFromJson(Map<String, dynamic> json) {
  return _$_Urls(
    raw: json['raw'] as String,
    full: json['full'] as String,
    regular: json['regular'] as String,
    small: json['small'] as String,
    thumb: json['thumb'] as String,
  );
}

Map<String, dynamic> _$_$_UrlsToJson(_$_Urls instance) => <String, dynamic>{
      'raw': instance.raw,
      'full': instance.full,
      'regular': instance.regular,
      'small': instance.small,
      'thumb': instance.thumb,
    };


<|start_filename|>lib/models/links.dart<|end_filename|>
import 'package:freezed_annotation/freezed_annotation.dart';

part 'links.freezed.dart';
part 'links.g.dart';

@freezed
class PhotoLinks with _$PhotoLinks {
  factory PhotoLinks({
    required String? self,
    required String? html,
    required String? download,
    required String? download_location,
  }) = _PhotoLinks;

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

@freezed
class UserLinks with _$UserLinks {
  factory UserLinks({
    required String? self,
    required String? html,
    required String? photos,
    required String? likes,
    required String? portfolio,
    required String? following,
    required String? followers,
  }) = _UserLinks;

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


<|start_filename|>lib/models/access_token.dart<|end_filename|>
import 'package:freezed_annotation/freezed_annotation.dart';

part 'access_token.freezed.dart';
part 'access_token.g.dart';

@freezed
class AccessToken with _$AccessToken {
  factory AccessToken({
    required String access_token,
    required String token_type,
    required String scope,
    required int created_at,
  }) = _AccessToken;

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


<|start_filename|>lib/models/collection.freezed.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND
// 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

part of 'collection.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 informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

Collection _$CollectionFromJson(Map<String, dynamic> json) {
  return _Collection.fromJson(json);
}

/// @nodoc
class _$CollectionTearOff {
  const _$CollectionTearOff();

  _Collection call(
      {required String? id,
      required String? title,
      required String? description,
      required DateTime? published_at,
      required DateTime? last_collected_at,
      required DateTime? updated_at,
      required bool curated,
      required bool featured,
      required int? total_photos,
      required bool private,
      required String? share_key,
      required List<Tag> tags,
      required CollectionLinks links,
      required User user,
      required Photo cover_photo,
      required List<PreviewPhoto> preview_photos}) {
    return _Collection(
      id: id,
      title: title,
      description: description,
      published_at: published_at,
      last_collected_at: last_collected_at,
      updated_at: updated_at,
      curated: curated,
      featured: featured,
      total_photos: total_photos,
      private: private,
      share_key: share_key,
      tags: tags,
      links: links,
      user: user,
      cover_photo: cover_photo,
      preview_photos: preview_photos,
    );
  }

  Collection fromJson(Map<String, Object> json) {
    return Collection.fromJson(json);
  }
}

/// @nodoc
const $Collection = _$CollectionTearOff();

/// @nodoc
mixin _$Collection {
  String? get id => throw _privateConstructorUsedError;
  String? get title => throw _privateConstructorUsedError;
  String? get description => throw _privateConstructorUsedError;
  DateTime? get published_at => throw _privateConstructorUsedError;
  DateTime? get last_collected_at => throw _privateConstructorUsedError;
  DateTime? get updated_at => throw _privateConstructorUsedError;
  bool get curated => throw _privateConstructorUsedError;
  bool get featured => throw _privateConstructorUsedError;
  int? get total_photos => throw _privateConstructorUsedError;
  bool get private => throw _privateConstructorUsedError;
  String? get share_key => throw _privateConstructorUsedError;
  List<Tag> get tags => throw _privateConstructorUsedError;
  CollectionLinks get links => throw _privateConstructorUsedError;
  User get user => throw _privateConstructorUsedError;
  Photo get cover_photo => throw _privateConstructorUsedError;
  List<PreviewPhoto> get preview_photos => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $CollectionCopyWith<$Res> {
  factory $CollectionCopyWith(
          Collection value, $Res Function(Collection) then) =
      _$CollectionCopyWithImpl<$Res>;
  $Res call(
      {String? id,
      String? title,
      String? description,
      DateTime? published_at,
      DateTime? last_collected_at,
      DateTime? updated_at,
      bool curated,
      bool featured,
      int? total_photos,
      bool private,
      String? share_key,
      List<Tag> tags,
      CollectionLinks links,
      User user,
      Photo cover_photo,
      List<PreviewPhoto> preview_photos});

  $CollectionLinksCopyWith<$Res> get links;
  $UserCopyWith<$Res> get user;
  $PhotoCopyWith<$Res> get cover_photo;
}

/// @nodoc
class _$CollectionCopyWithImpl<$Res> implements $CollectionCopyWith<$Res> {
  _$CollectionCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? id = freezed,
    Object? title = freezed,
    Object? description = freezed,
    Object? published_at = freezed,
    Object? last_collected_at = freezed,
    Object? updated_at = freezed,
    Object? curated = freezed,
    Object? featured = freezed,
    Object? total_photos = freezed,
    Object? private = freezed,
    Object? share_key = freezed,
    Object? tags = freezed,
    Object? links = freezed,
    Object? user = freezed,
    Object? cover_photo = freezed,
    Object? preview_photos = freezed,
  }) {
    return _then(_value.copyWith(
      id: id == freezed
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String?,
      title: title == freezed
          ? _value.title
          : title // ignore: cast_nullable_to_non_nullable
              as String?,
      description: description == freezed
          ? _value.description
          : description // ignore: cast_nullable_to_non_nullable
              as String?,
      published_at: published_at == freezed
          ? _value.published_at
          : published_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      last_collected_at: last_collected_at == freezed
          ? _value.last_collected_at
          : last_collected_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      updated_at: updated_at == freezed
          ? _value.updated_at
          : updated_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      curated: curated == freezed
          ? _value.curated
          : curated // ignore: cast_nullable_to_non_nullable
              as bool,
      featured: featured == freezed
          ? _value.featured
          : featured // ignore: cast_nullable_to_non_nullable
              as bool,
      total_photos: total_photos == freezed
          ? _value.total_photos
          : total_photos // ignore: cast_nullable_to_non_nullable
              as int?,
      private: private == freezed
          ? _value.private
          : private // ignore: cast_nullable_to_non_nullable
              as bool,
      share_key: share_key == freezed
          ? _value.share_key
          : share_key // ignore: cast_nullable_to_non_nullable
              as String?,
      tags: tags == freezed
          ? _value.tags
          : tags // ignore: cast_nullable_to_non_nullable
              as List<Tag>,
      links: links == freezed
          ? _value.links
          : links // ignore: cast_nullable_to_non_nullable
              as CollectionLinks,
      user: user == freezed
          ? _value.user
          : user // ignore: cast_nullable_to_non_nullable
              as User,
      cover_photo: cover_photo == freezed
          ? _value.cover_photo
          : cover_photo // ignore: cast_nullable_to_non_nullable
              as Photo,
      preview_photos: preview_photos == freezed
          ? _value.preview_photos
          : preview_photos // ignore: cast_nullable_to_non_nullable
              as List<PreviewPhoto>,
    ));
  }

  @override
  $CollectionLinksCopyWith<$Res> get links {
    return $CollectionLinksCopyWith<$Res>(_value.links, (value) {
      return _then(_value.copyWith(links: value));
    });
  }

  @override
  $UserCopyWith<$Res> get user {
    return $UserCopyWith<$Res>(_value.user, (value) {
      return _then(_value.copyWith(user: value));
    });
  }

  @override
  $PhotoCopyWith<$Res> get cover_photo {
    return $PhotoCopyWith<$Res>(_value.cover_photo, (value) {
      return _then(_value.copyWith(cover_photo: value));
    });
  }
}

/// @nodoc
abstract class _$CollectionCopyWith<$Res> implements $CollectionCopyWith<$Res> {
  factory _$CollectionCopyWith(
          _Collection value, $Res Function(_Collection) then) =
      __$CollectionCopyWithImpl<$Res>;
  @override
  $Res call(
      {String? id,
      String? title,
      String? description,
      DateTime? published_at,
      DateTime? last_collected_at,
      DateTime? updated_at,
      bool curated,
      bool featured,
      int? total_photos,
      bool private,
      String? share_key,
      List<Tag> tags,
      CollectionLinks links,
      User user,
      Photo cover_photo,
      List<PreviewPhoto> preview_photos});

  @override
  $CollectionLinksCopyWith<$Res> get links;
  @override
  $UserCopyWith<$Res> get user;
  @override
  $PhotoCopyWith<$Res> get cover_photo;
}

/// @nodoc
class __$CollectionCopyWithImpl<$Res> extends _$CollectionCopyWithImpl<$Res>
    implements _$CollectionCopyWith<$Res> {
  __$CollectionCopyWithImpl(
      _Collection _value, $Res Function(_Collection) _then)
      : super(_value, (v) => _then(v as _Collection));

  @override
  _Collection get _value => super._value as _Collection;

  @override
  $Res call({
    Object? id = freezed,
    Object? title = freezed,
    Object? description = freezed,
    Object? published_at = freezed,
    Object? last_collected_at = freezed,
    Object? updated_at = freezed,
    Object? curated = freezed,
    Object? featured = freezed,
    Object? total_photos = freezed,
    Object? private = freezed,
    Object? share_key = freezed,
    Object? tags = freezed,
    Object? links = freezed,
    Object? user = freezed,
    Object? cover_photo = freezed,
    Object? preview_photos = freezed,
  }) {
    return _then(_Collection(
      id: id == freezed
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String?,
      title: title == freezed
          ? _value.title
          : title // ignore: cast_nullable_to_non_nullable
              as String?,
      description: description == freezed
          ? _value.description
          : description // ignore: cast_nullable_to_non_nullable
              as String?,
      published_at: published_at == freezed
          ? _value.published_at
          : published_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      last_collected_at: last_collected_at == freezed
          ? _value.last_collected_at
          : last_collected_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      updated_at: updated_at == freezed
          ? _value.updated_at
          : updated_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      curated: curated == freezed
          ? _value.curated
          : curated // ignore: cast_nullable_to_non_nullable
              as bool,
      featured: featured == freezed
          ? _value.featured
          : featured // ignore: cast_nullable_to_non_nullable
              as bool,
      total_photos: total_photos == freezed
          ? _value.total_photos
          : total_photos // ignore: cast_nullable_to_non_nullable
              as int?,
      private: private == freezed
          ? _value.private
          : private // ignore: cast_nullable_to_non_nullable
              as bool,
      share_key: share_key == freezed
          ? _value.share_key
          : share_key // ignore: cast_nullable_to_non_nullable
              as String?,
      tags: tags == freezed
          ? _value.tags
          : tags // ignore: cast_nullable_to_non_nullable
              as List<Tag>,
      links: links == freezed
          ? _value.links
          : links // ignore: cast_nullable_to_non_nullable
              as CollectionLinks,
      user: user == freezed
          ? _value.user
          : user // ignore: cast_nullable_to_non_nullable
              as User,
      cover_photo: cover_photo == freezed
          ? _value.cover_photo
          : cover_photo // ignore: cast_nullable_to_non_nullable
              as Photo,
      preview_photos: preview_photos == freezed
          ? _value.preview_photos
          : preview_photos // ignore: cast_nullable_to_non_nullable
              as List<PreviewPhoto>,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_Collection implements _Collection {
  _$_Collection(
      {required this.id,
      required this.title,
      required this.description,
      required this.published_at,
      required this.last_collected_at,
      required this.updated_at,
      required this.curated,
      required this.featured,
      required this.total_photos,
      required this.private,
      required this.share_key,
      required this.tags,
      required this.links,
      required this.user,
      required this.cover_photo,
      required this.preview_photos});

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

  @override
  final String? id;
  @override
  final String? title;
  @override
  final String? description;
  @override
  final DateTime? published_at;
  @override
  final DateTime? last_collected_at;
  @override
  final DateTime? updated_at;
  @override
  final bool curated;
  @override
  final bool featured;
  @override
  final int? total_photos;
  @override
  final bool private;
  @override
  final String? share_key;
  @override
  final List<Tag> tags;
  @override
  final CollectionLinks links;
  @override
  final User user;
  @override
  final Photo cover_photo;
  @override
  final List<PreviewPhoto> preview_photos;

  @override
  String toString() {
    return 'Collection(id: $id, title: $title, description: $description, published_at: $published_at, last_collected_at: $last_collected_at, updated_at: $updated_at, curated: $curated, featured: $featured, total_photos: $total_photos, private: $private, share_key: $share_key, tags: $tags, links: $links, user: $user, cover_photo: $cover_photo, preview_photos: $preview_photos)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _Collection &&
            (identical(other.id, id) ||
                const DeepCollectionEquality().equals(other.id, id)) &&
            (identical(other.title, title) ||
                const DeepCollectionEquality().equals(other.title, title)) &&
            (identical(other.description, description) ||
                const DeepCollectionEquality()
                    .equals(other.description, description)) &&
            (identical(other.published_at, published_at) ||
                const DeepCollectionEquality()
                    .equals(other.published_at, published_at)) &&
            (identical(other.last_collected_at, last_collected_at) ||
                const DeepCollectionEquality()
                    .equals(other.last_collected_at, last_collected_at)) &&
            (identical(other.updated_at, updated_at) ||
                const DeepCollectionEquality()
                    .equals(other.updated_at, updated_at)) &&
            (identical(other.curated, curated) ||
                const DeepCollectionEquality()
                    .equals(other.curated, curated)) &&
            (identical(other.featured, featured) ||
                const DeepCollectionEquality()
                    .equals(other.featured, featured)) &&
            (identical(other.total_photos, total_photos) ||
                const DeepCollectionEquality()
                    .equals(other.total_photos, total_photos)) &&
            (identical(other.private, private) ||
                const DeepCollectionEquality()
                    .equals(other.private, private)) &&
            (identical(other.share_key, share_key) ||
                const DeepCollectionEquality()
                    .equals(other.share_key, share_key)) &&
            (identical(other.tags, tags) ||
                const DeepCollectionEquality().equals(other.tags, tags)) &&
            (identical(other.links, links) ||
                const DeepCollectionEquality().equals(other.links, links)) &&
            (identical(other.user, user) ||
                const DeepCollectionEquality().equals(other.user, user)) &&
            (identical(other.cover_photo, cover_photo) ||
                const DeepCollectionEquality()
                    .equals(other.cover_photo, cover_photo)) &&
            (identical(other.preview_photos, preview_photos) ||
                const DeepCollectionEquality()
                    .equals(other.preview_photos, preview_photos)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(id) ^
      const DeepCollectionEquality().hash(title) ^
      const DeepCollectionEquality().hash(description) ^
      const DeepCollectionEquality().hash(published_at) ^
      const DeepCollectionEquality().hash(last_collected_at) ^
      const DeepCollectionEquality().hash(updated_at) ^
      const DeepCollectionEquality().hash(curated) ^
      const DeepCollectionEquality().hash(featured) ^
      const DeepCollectionEquality().hash(total_photos) ^
      const DeepCollectionEquality().hash(private) ^
      const DeepCollectionEquality().hash(share_key) ^
      const DeepCollectionEquality().hash(tags) ^
      const DeepCollectionEquality().hash(links) ^
      const DeepCollectionEquality().hash(user) ^
      const DeepCollectionEquality().hash(cover_photo) ^
      const DeepCollectionEquality().hash(preview_photos);

  @JsonKey(ignore: true)
  @override
  _$CollectionCopyWith<_Collection> get copyWith =>
      __$CollectionCopyWithImpl<_Collection>(this, _$identity);

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

abstract class _Collection implements Collection {
  factory _Collection(
      {required String? id,
      required String? title,
      required String? description,
      required DateTime? published_at,
      required DateTime? last_collected_at,
      required DateTime? updated_at,
      required bool curated,
      required bool featured,
      required int? total_photos,
      required bool private,
      required String? share_key,
      required List<Tag> tags,
      required CollectionLinks links,
      required User user,
      required Photo cover_photo,
      required List<PreviewPhoto> preview_photos}) = _$_Collection;

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

  @override
  String? get id => throw _privateConstructorUsedError;
  @override
  String? get title => throw _privateConstructorUsedError;
  @override
  String? get description => throw _privateConstructorUsedError;
  @override
  DateTime? get published_at => throw _privateConstructorUsedError;
  @override
  DateTime? get last_collected_at => throw _privateConstructorUsedError;
  @override
  DateTime? get updated_at => throw _privateConstructorUsedError;
  @override
  bool get curated => throw _privateConstructorUsedError;
  @override
  bool get featured => throw _privateConstructorUsedError;
  @override
  int? get total_photos => throw _privateConstructorUsedError;
  @override
  bool get private => throw _privateConstructorUsedError;
  @override
  String? get share_key => throw _privateConstructorUsedError;
  @override
  List<Tag> get tags => throw _privateConstructorUsedError;
  @override
  CollectionLinks get links => throw _privateConstructorUsedError;
  @override
  User get user => throw _privateConstructorUsedError;
  @override
  Photo get cover_photo => throw _privateConstructorUsedError;
  @override
  List<PreviewPhoto> get preview_photos => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$CollectionCopyWith<_Collection> get copyWith =>
      throw _privateConstructorUsedError;
}

CollectionLinks _$CollectionLinksFromJson(Map<String, dynamic> json) {
  return _CollectionLinks.fromJson(json);
}

/// @nodoc
class _$CollectionLinksTearOff {
  const _$CollectionLinksTearOff();

  _CollectionLinks call(
      {required String? self,
      required String? html,
      required String? photos,
      required String? related}) {
    return _CollectionLinks(
      self: self,
      html: html,
      photos: photos,
      related: related,
    );
  }

  CollectionLinks fromJson(Map<String, Object> json) {
    return CollectionLinks.fromJson(json);
  }
}

/// @nodoc
const $CollectionLinks = _$CollectionLinksTearOff();

/// @nodoc
mixin _$CollectionLinks {
  String? get self => throw _privateConstructorUsedError;
  String? get html => throw _privateConstructorUsedError;
  String? get photos => throw _privateConstructorUsedError;
  String? get related => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $CollectionLinksCopyWith<$Res> {
  factory $CollectionLinksCopyWith(
          CollectionLinks value, $Res Function(CollectionLinks) then) =
      _$CollectionLinksCopyWithImpl<$Res>;
  $Res call({String? self, String? html, String? photos, String? related});
}

/// @nodoc
class _$CollectionLinksCopyWithImpl<$Res>
    implements $CollectionLinksCopyWith<$Res> {
  _$CollectionLinksCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? self = freezed,
    Object? html = freezed,
    Object? photos = freezed,
    Object? related = freezed,
  }) {
    return _then(_value.copyWith(
      self: self == freezed
          ? _value.self
          : self // ignore: cast_nullable_to_non_nullable
              as String?,
      html: html == freezed
          ? _value.html
          : html // ignore: cast_nullable_to_non_nullable
              as String?,
      photos: photos == freezed
          ? _value.photos
          : photos // ignore: cast_nullable_to_non_nullable
              as String?,
      related: related == freezed
          ? _value.related
          : related // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

/// @nodoc
abstract class _$CollectionLinksCopyWith<$Res>
    implements $CollectionLinksCopyWith<$Res> {
  factory _$CollectionLinksCopyWith(
          _CollectionLinks value, $Res Function(_CollectionLinks) then) =
      __$CollectionLinksCopyWithImpl<$Res>;
  @override
  $Res call({String? self, String? html, String? photos, String? related});
}

/// @nodoc
class __$CollectionLinksCopyWithImpl<$Res>
    extends _$CollectionLinksCopyWithImpl<$Res>
    implements _$CollectionLinksCopyWith<$Res> {
  __$CollectionLinksCopyWithImpl(
      _CollectionLinks _value, $Res Function(_CollectionLinks) _then)
      : super(_value, (v) => _then(v as _CollectionLinks));

  @override
  _CollectionLinks get _value => super._value as _CollectionLinks;

  @override
  $Res call({
    Object? self = freezed,
    Object? html = freezed,
    Object? photos = freezed,
    Object? related = freezed,
  }) {
    return _then(_CollectionLinks(
      self: self == freezed
          ? _value.self
          : self // ignore: cast_nullable_to_non_nullable
              as String?,
      html: html == freezed
          ? _value.html
          : html // ignore: cast_nullable_to_non_nullable
              as String?,
      photos: photos == freezed
          ? _value.photos
          : photos // ignore: cast_nullable_to_non_nullable
              as String?,
      related: related == freezed
          ? _value.related
          : related // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_CollectionLinks implements _CollectionLinks {
  _$_CollectionLinks(
      {required this.self,
      required this.html,
      required this.photos,
      required this.related});

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

  @override
  final String? self;
  @override
  final String? html;
  @override
  final String? photos;
  @override
  final String? related;

  @override
  String toString() {
    return 'CollectionLinks(self: $self, html: $html, photos: $photos, related: $related)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _CollectionLinks &&
            (identical(other.self, self) ||
                const DeepCollectionEquality().equals(other.self, self)) &&
            (identical(other.html, html) ||
                const DeepCollectionEquality().equals(other.html, html)) &&
            (identical(other.photos, photos) ||
                const DeepCollectionEquality().equals(other.photos, photos)) &&
            (identical(other.related, related) ||
                const DeepCollectionEquality().equals(other.related, related)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(self) ^
      const DeepCollectionEquality().hash(html) ^
      const DeepCollectionEquality().hash(photos) ^
      const DeepCollectionEquality().hash(related);

  @JsonKey(ignore: true)
  @override
  _$CollectionLinksCopyWith<_CollectionLinks> get copyWith =>
      __$CollectionLinksCopyWithImpl<_CollectionLinks>(this, _$identity);

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

abstract class _CollectionLinks implements CollectionLinks {
  factory _CollectionLinks(
      {required String? self,
      required String? html,
      required String? photos,
      required String? related}) = _$_CollectionLinks;

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

  @override
  String? get self => throw _privateConstructorUsedError;
  @override
  String? get html => throw _privateConstructorUsedError;
  @override
  String? get photos => throw _privateConstructorUsedError;
  @override
  String? get related => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$CollectionLinksCopyWith<_CollectionLinks> get copyWith =>
      throw _privateConstructorUsedError;
}

PreviewPhoto _$PreviewPhotoFromJson(Map<String, dynamic> json) {
  return _PreviewPhoto.fromJson(json);
}

/// @nodoc
class _$PreviewPhotoTearOff {
  const _$PreviewPhotoTearOff();

  _PreviewPhoto call(
      {required String? id,
      required DateTime? created_at,
      required DateTime? updated_at,
      required String? blur_hash,
      required Urls urls}) {
    return _PreviewPhoto(
      id: id,
      created_at: created_at,
      updated_at: updated_at,
      blur_hash: blur_hash,
      urls: urls,
    );
  }

  PreviewPhoto fromJson(Map<String, Object> json) {
    return PreviewPhoto.fromJson(json);
  }
}

/// @nodoc
const $PreviewPhoto = _$PreviewPhotoTearOff();

/// @nodoc
mixin _$PreviewPhoto {
  String? get id => throw _privateConstructorUsedError;
  DateTime? get created_at => throw _privateConstructorUsedError;
  DateTime? get updated_at => throw _privateConstructorUsedError;
  String? get blur_hash => throw _privateConstructorUsedError;
  Urls get urls => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PreviewPhotoCopyWith<$Res> {
  factory $PreviewPhotoCopyWith(
          PreviewPhoto value, $Res Function(PreviewPhoto) then) =
      _$PreviewPhotoCopyWithImpl<$Res>;
  $Res call(
      {String? id,
      DateTime? created_at,
      DateTime? updated_at,
      String? blur_hash,
      Urls urls});

  $UrlsCopyWith<$Res> get urls;
}

/// @nodoc
class _$PreviewPhotoCopyWithImpl<$Res> implements $PreviewPhotoCopyWith<$Res> {
  _$PreviewPhotoCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? id = freezed,
    Object? created_at = freezed,
    Object? updated_at = freezed,
    Object? blur_hash = freezed,
    Object? urls = freezed,
  }) {
    return _then(_value.copyWith(
      id: id == freezed
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String?,
      created_at: created_at == freezed
          ? _value.created_at
          : created_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      updated_at: updated_at == freezed
          ? _value.updated_at
          : updated_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      blur_hash: blur_hash == freezed
          ? _value.blur_hash
          : blur_hash // ignore: cast_nullable_to_non_nullable
              as String?,
      urls: urls == freezed
          ? _value.urls
          : urls // ignore: cast_nullable_to_non_nullable
              as Urls,
    ));
  }

  @override
  $UrlsCopyWith<$Res> get urls {
    return $UrlsCopyWith<$Res>(_value.urls, (value) {
      return _then(_value.copyWith(urls: value));
    });
  }
}

/// @nodoc
abstract class _$PreviewPhotoCopyWith<$Res>
    implements $PreviewPhotoCopyWith<$Res> {
  factory _$PreviewPhotoCopyWith(
          _PreviewPhoto value, $Res Function(_PreviewPhoto) then) =
      __$PreviewPhotoCopyWithImpl<$Res>;
  @override
  $Res call(
      {String? id,
      DateTime? created_at,
      DateTime? updated_at,
      String? blur_hash,
      Urls urls});

  @override
  $UrlsCopyWith<$Res> get urls;
}

/// @nodoc
class __$PreviewPhotoCopyWithImpl<$Res> extends _$PreviewPhotoCopyWithImpl<$Res>
    implements _$PreviewPhotoCopyWith<$Res> {
  __$PreviewPhotoCopyWithImpl(
      _PreviewPhoto _value, $Res Function(_PreviewPhoto) _then)
      : super(_value, (v) => _then(v as _PreviewPhoto));

  @override
  _PreviewPhoto get _value => super._value as _PreviewPhoto;

  @override
  $Res call({
    Object? id = freezed,
    Object? created_at = freezed,
    Object? updated_at = freezed,
    Object? blur_hash = freezed,
    Object? urls = freezed,
  }) {
    return _then(_PreviewPhoto(
      id: id == freezed
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String?,
      created_at: created_at == freezed
          ? _value.created_at
          : created_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      updated_at: updated_at == freezed
          ? _value.updated_at
          : updated_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      blur_hash: blur_hash == freezed
          ? _value.blur_hash
          : blur_hash // ignore: cast_nullable_to_non_nullable
              as String?,
      urls: urls == freezed
          ? _value.urls
          : urls // ignore: cast_nullable_to_non_nullable
              as Urls,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_PreviewPhoto implements _PreviewPhoto {
  _$_PreviewPhoto(
      {required this.id,
      required this.created_at,
      required this.updated_at,
      required this.blur_hash,
      required this.urls});

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

  @override
  final String? id;
  @override
  final DateTime? created_at;
  @override
  final DateTime? updated_at;
  @override
  final String? blur_hash;
  @override
  final Urls urls;

  @override
  String toString() {
    return 'PreviewPhoto(id: $id, created_at: $created_at, updated_at: $updated_at, blur_hash: $blur_hash, urls: $urls)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _PreviewPhoto &&
            (identical(other.id, id) ||
                const DeepCollectionEquality().equals(other.id, id)) &&
            (identical(other.created_at, created_at) ||
                const DeepCollectionEquality()
                    .equals(other.created_at, created_at)) &&
            (identical(other.updated_at, updated_at) ||
                const DeepCollectionEquality()
                    .equals(other.updated_at, updated_at)) &&
            (identical(other.blur_hash, blur_hash) ||
                const DeepCollectionEquality()
                    .equals(other.blur_hash, blur_hash)) &&
            (identical(other.urls, urls) ||
                const DeepCollectionEquality().equals(other.urls, urls)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(id) ^
      const DeepCollectionEquality().hash(created_at) ^
      const DeepCollectionEquality().hash(updated_at) ^
      const DeepCollectionEquality().hash(blur_hash) ^
      const DeepCollectionEquality().hash(urls);

  @JsonKey(ignore: true)
  @override
  _$PreviewPhotoCopyWith<_PreviewPhoto> get copyWith =>
      __$PreviewPhotoCopyWithImpl<_PreviewPhoto>(this, _$identity);

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

abstract class _PreviewPhoto implements PreviewPhoto {
  factory _PreviewPhoto(
      {required String? id,
      required DateTime? created_at,
      required DateTime? updated_at,
      required String? blur_hash,
      required Urls urls}) = _$_PreviewPhoto;

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

  @override
  String? get id => throw _privateConstructorUsedError;
  @override
  DateTime? get created_at => throw _privateConstructorUsedError;
  @override
  DateTime? get updated_at => throw _privateConstructorUsedError;
  @override
  String? get blur_hash => throw _privateConstructorUsedError;
  @override
  Urls get urls => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$PreviewPhotoCopyWith<_PreviewPhoto> get copyWith =>
      throw _privateConstructorUsedError;
}

Tag _$TagFromJson(Map<String, dynamic> json) {
  return _Tag.fromJson(json);
}

/// @nodoc
class _$TagTearOff {
  const _$TagTearOff();

  _Tag call({required String? title}) {
    return _Tag(
      title: title,
    );
  }

  Tag fromJson(Map<String, Object> json) {
    return Tag.fromJson(json);
  }
}

/// @nodoc
const $Tag = _$TagTearOff();

/// @nodoc
mixin _$Tag {
  String? get title => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $TagCopyWith<$Res> {
  factory $TagCopyWith(Tag value, $Res Function(Tag) then) =
      _$TagCopyWithImpl<$Res>;
  $Res call({String? title});
}

/// @nodoc
class _$TagCopyWithImpl<$Res> implements $TagCopyWith<$Res> {
  _$TagCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? title = freezed,
  }) {
    return _then(_value.copyWith(
      title: title == freezed
          ? _value.title
          : title // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

/// @nodoc
abstract class _$TagCopyWith<$Res> implements $TagCopyWith<$Res> {
  factory _$TagCopyWith(_Tag value, $Res Function(_Tag) then) =
      __$TagCopyWithImpl<$Res>;
  @override
  $Res call({String? title});
}

/// @nodoc
class __$TagCopyWithImpl<$Res> extends _$TagCopyWithImpl<$Res>
    implements _$TagCopyWith<$Res> {
  __$TagCopyWithImpl(_Tag _value, $Res Function(_Tag) _then)
      : super(_value, (v) => _then(v as _Tag));

  @override
  _Tag get _value => super._value as _Tag;

  @override
  $Res call({
    Object? title = freezed,
  }) {
    return _then(_Tag(
      title: title == freezed
          ? _value.title
          : title // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_Tag implements _Tag {
  _$_Tag({required this.title});

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

  @override
  final String? title;

  @override
  String toString() {
    return 'Tag(title: $title)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _Tag &&
            (identical(other.title, title) ||
                const DeepCollectionEquality().equals(other.title, title)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^ const DeepCollectionEquality().hash(title);

  @JsonKey(ignore: true)
  @override
  _$TagCopyWith<_Tag> get copyWith =>
      __$TagCopyWithImpl<_Tag>(this, _$identity);

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

abstract class _Tag implements Tag {
  factory _Tag({required String? title}) = _$_Tag;

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

  @override
  String? get title => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$TagCopyWith<_Tag> get copyWith => throw _privateConstructorUsedError;
}


<|start_filename|>lib/models/links.g.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'links.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

_$_PhotoLinks _$_$_PhotoLinksFromJson(Map<String, dynamic> json) {
  return _$_PhotoLinks(
    self: json['self'] as String?,
    html: json['html'] as String?,
    download: json['download'] as String?,
    download_location: json['download_location'] as String?,
  );
}

Map<String, dynamic> _$_$_PhotoLinksToJson(_$_PhotoLinks instance) =>
    <String, dynamic>{
      'self': instance.self,
      'html': instance.html,
      'download': instance.download,
      'download_location': instance.download_location,
    };

_$_UserLinks _$_$_UserLinksFromJson(Map<String, dynamic> json) {
  return _$_UserLinks(
    self: json['self'] as String?,
    html: json['html'] as String?,
    photos: json['photos'] as String?,
    likes: json['likes'] as String?,
    portfolio: json['portfolio'] as String?,
    following: json['following'] as String?,
    followers: json['followers'] as String?,
  );
}

Map<String, dynamic> _$_$_UserLinksToJson(_$_UserLinks instance) =>
    <String, dynamic>{
      'self': instance.self,
      'html': instance.html,
      'photos': instance.photos,
      'likes': instance.likes,
      'portfolio': instance.portfolio,
      'following': instance.following,
      'followers': instance.followers,
    };


<|start_filename|>lib/models/photo.freezed.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND
// 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

part of 'photo.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 informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

Photo _$PhotoFromJson(Map<String, dynamic> json) {
  return _Photo.fromJson(json);
}

/// @nodoc
class _$PhotoTearOff {
  const _$PhotoTearOff();

  _Photo call(
      {required String? id,
      required DateTime? created_at,
      required DateTime? updated_at,
      required int? width,
      required int? height,
      required String? color,
      required String? blur_hash,
      required dynamic? description,
      required Urls urls,
      required PhotoLinks links,
      required List<dynamic> categories,
      required int? likes,
      required bool? liked_by_user,
      required User user}) {
    return _Photo(
      id: id,
      created_at: created_at,
      updated_at: updated_at,
      width: width,
      height: height,
      color: color,
      blur_hash: blur_hash,
      description: description,
      urls: urls,
      links: links,
      categories: categories,
      likes: likes,
      liked_by_user: liked_by_user,
      user: user,
    );
  }

  Photo fromJson(Map<String, Object> json) {
    return Photo.fromJson(json);
  }
}

/// @nodoc
const $Photo = _$PhotoTearOff();

/// @nodoc
mixin _$Photo {
  String? get id => throw _privateConstructorUsedError;
  DateTime? get created_at => throw _privateConstructorUsedError;
  DateTime? get updated_at => throw _privateConstructorUsedError;
  int? get width => throw _privateConstructorUsedError;
  int? get height => throw _privateConstructorUsedError;
  String? get color => throw _privateConstructorUsedError;
  String? get blur_hash => throw _privateConstructorUsedError;
  dynamic? get description => throw _privateConstructorUsedError;
  Urls get urls => throw _privateConstructorUsedError;
  PhotoLinks get links => throw _privateConstructorUsedError;
  List<dynamic> get categories => throw _privateConstructorUsedError;
  int? get likes => throw _privateConstructorUsedError;
  bool? get liked_by_user => throw _privateConstructorUsedError;
  User get user => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PhotoCopyWith<$Res> {
  factory $PhotoCopyWith(Photo value, $Res Function(Photo) then) =
      _$PhotoCopyWithImpl<$Res>;
  $Res call(
      {String? id,
      DateTime? created_at,
      DateTime? updated_at,
      int? width,
      int? height,
      String? color,
      String? blur_hash,
      dynamic? description,
      Urls urls,
      PhotoLinks links,
      List<dynamic> categories,
      int? likes,
      bool? liked_by_user,
      User user});

  $UrlsCopyWith<$Res> get urls;
  $PhotoLinksCopyWith<$Res> get links;
  $UserCopyWith<$Res> get user;
}

/// @nodoc
class _$PhotoCopyWithImpl<$Res> implements $PhotoCopyWith<$Res> {
  _$PhotoCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? id = freezed,
    Object? created_at = freezed,
    Object? updated_at = freezed,
    Object? width = freezed,
    Object? height = freezed,
    Object? color = freezed,
    Object? blur_hash = freezed,
    Object? description = freezed,
    Object? urls = freezed,
    Object? links = freezed,
    Object? categories = freezed,
    Object? likes = freezed,
    Object? liked_by_user = freezed,
    Object? user = freezed,
  }) {
    return _then(_value.copyWith(
      id: id == freezed
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String?,
      created_at: created_at == freezed
          ? _value.created_at
          : created_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      updated_at: updated_at == freezed
          ? _value.updated_at
          : updated_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      width: width == freezed
          ? _value.width
          : width // ignore: cast_nullable_to_non_nullable
              as int?,
      height: height == freezed
          ? _value.height
          : height // ignore: cast_nullable_to_non_nullable
              as int?,
      color: color == freezed
          ? _value.color
          : color // ignore: cast_nullable_to_non_nullable
              as String?,
      blur_hash: blur_hash == freezed
          ? _value.blur_hash
          : blur_hash // ignore: cast_nullable_to_non_nullable
              as String?,
      description: description == freezed
          ? _value.description
          : description // ignore: cast_nullable_to_non_nullable
              as dynamic?,
      urls: urls == freezed
          ? _value.urls
          : urls // ignore: cast_nullable_to_non_nullable
              as Urls,
      links: links == freezed
          ? _value.links
          : links // ignore: cast_nullable_to_non_nullable
              as PhotoLinks,
      categories: categories == freezed
          ? _value.categories
          : categories // ignore: cast_nullable_to_non_nullable
              as List<dynamic>,
      likes: likes == freezed
          ? _value.likes
          : likes // ignore: cast_nullable_to_non_nullable
              as int?,
      liked_by_user: liked_by_user == freezed
          ? _value.liked_by_user
          : liked_by_user // ignore: cast_nullable_to_non_nullable
              as bool?,
      user: user == freezed
          ? _value.user
          : user // ignore: cast_nullable_to_non_nullable
              as User,
    ));
  }

  @override
  $UrlsCopyWith<$Res> get urls {
    return $UrlsCopyWith<$Res>(_value.urls, (value) {
      return _then(_value.copyWith(urls: value));
    });
  }

  @override
  $PhotoLinksCopyWith<$Res> get links {
    return $PhotoLinksCopyWith<$Res>(_value.links, (value) {
      return _then(_value.copyWith(links: value));
    });
  }

  @override
  $UserCopyWith<$Res> get user {
    return $UserCopyWith<$Res>(_value.user, (value) {
      return _then(_value.copyWith(user: value));
    });
  }
}

/// @nodoc
abstract class _$PhotoCopyWith<$Res> implements $PhotoCopyWith<$Res> {
  factory _$PhotoCopyWith(_Photo value, $Res Function(_Photo) then) =
      __$PhotoCopyWithImpl<$Res>;
  @override
  $Res call(
      {String? id,
      DateTime? created_at,
      DateTime? updated_at,
      int? width,
      int? height,
      String? color,
      String? blur_hash,
      dynamic? description,
      Urls urls,
      PhotoLinks links,
      List<dynamic> categories,
      int? likes,
      bool? liked_by_user,
      User user});

  @override
  $UrlsCopyWith<$Res> get urls;
  @override
  $PhotoLinksCopyWith<$Res> get links;
  @override
  $UserCopyWith<$Res> get user;
}

/// @nodoc
class __$PhotoCopyWithImpl<$Res> extends _$PhotoCopyWithImpl<$Res>
    implements _$PhotoCopyWith<$Res> {
  __$PhotoCopyWithImpl(_Photo _value, $Res Function(_Photo) _then)
      : super(_value, (v) => _then(v as _Photo));

  @override
  _Photo get _value => super._value as _Photo;

  @override
  $Res call({
    Object? id = freezed,
    Object? created_at = freezed,
    Object? updated_at = freezed,
    Object? width = freezed,
    Object? height = freezed,
    Object? color = freezed,
    Object? blur_hash = freezed,
    Object? description = freezed,
    Object? urls = freezed,
    Object? links = freezed,
    Object? categories = freezed,
    Object? likes = freezed,
    Object? liked_by_user = freezed,
    Object? user = freezed,
  }) {
    return _then(_Photo(
      id: id == freezed
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String?,
      created_at: created_at == freezed
          ? _value.created_at
          : created_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      updated_at: updated_at == freezed
          ? _value.updated_at
          : updated_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      width: width == freezed
          ? _value.width
          : width // ignore: cast_nullable_to_non_nullable
              as int?,
      height: height == freezed
          ? _value.height
          : height // ignore: cast_nullable_to_non_nullable
              as int?,
      color: color == freezed
          ? _value.color
          : color // ignore: cast_nullable_to_non_nullable
              as String?,
      blur_hash: blur_hash == freezed
          ? _value.blur_hash
          : blur_hash // ignore: cast_nullable_to_non_nullable
              as String?,
      description: description == freezed
          ? _value.description
          : description // ignore: cast_nullable_to_non_nullable
              as dynamic?,
      urls: urls == freezed
          ? _value.urls
          : urls // ignore: cast_nullable_to_non_nullable
              as Urls,
      links: links == freezed
          ? _value.links
          : links // ignore: cast_nullable_to_non_nullable
              as PhotoLinks,
      categories: categories == freezed
          ? _value.categories
          : categories // ignore: cast_nullable_to_non_nullable
              as List<dynamic>,
      likes: likes == freezed
          ? _value.likes
          : likes // ignore: cast_nullable_to_non_nullable
              as int?,
      liked_by_user: liked_by_user == freezed
          ? _value.liked_by_user
          : liked_by_user // ignore: cast_nullable_to_non_nullable
              as bool?,
      user: user == freezed
          ? _value.user
          : user // ignore: cast_nullable_to_non_nullable
              as User,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_Photo implements _Photo {
  _$_Photo(
      {required this.id,
      required this.created_at,
      required this.updated_at,
      required this.width,
      required this.height,
      required this.color,
      required this.blur_hash,
      required this.description,
      required this.urls,
      required this.links,
      required this.categories,
      required this.likes,
      required this.liked_by_user,
      required this.user});

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

  @override
  final String? id;
  @override
  final DateTime? created_at;
  @override
  final DateTime? updated_at;
  @override
  final int? width;
  @override
  final int? height;
  @override
  final String? color;
  @override
  final String? blur_hash;
  @override
  final dynamic? description;
  @override
  final Urls urls;
  @override
  final PhotoLinks links;
  @override
  final List<dynamic> categories;
  @override
  final int? likes;
  @override
  final bool? liked_by_user;
  @override
  final User user;

  @override
  String toString() {
    return 'Photo(id: $id, created_at: $created_at, updated_at: $updated_at, width: $width, height: $height, color: $color, blur_hash: $blur_hash, description: $description, urls: $urls, links: $links, categories: $categories, likes: $likes, liked_by_user: $liked_by_user, user: $user)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _Photo &&
            (identical(other.id, id) ||
                const DeepCollectionEquality().equals(other.id, id)) &&
            (identical(other.created_at, created_at) ||
                const DeepCollectionEquality()
                    .equals(other.created_at, created_at)) &&
            (identical(other.updated_at, updated_at) ||
                const DeepCollectionEquality()
                    .equals(other.updated_at, updated_at)) &&
            (identical(other.width, width) ||
                const DeepCollectionEquality().equals(other.width, width)) &&
            (identical(other.height, height) ||
                const DeepCollectionEquality().equals(other.height, height)) &&
            (identical(other.color, color) ||
                const DeepCollectionEquality().equals(other.color, color)) &&
            (identical(other.blur_hash, blur_hash) ||
                const DeepCollectionEquality()
                    .equals(other.blur_hash, blur_hash)) &&
            (identical(other.description, description) ||
                const DeepCollectionEquality()
                    .equals(other.description, description)) &&
            (identical(other.urls, urls) ||
                const DeepCollectionEquality().equals(other.urls, urls)) &&
            (identical(other.links, links) ||
                const DeepCollectionEquality().equals(other.links, links)) &&
            (identical(other.categories, categories) ||
                const DeepCollectionEquality()
                    .equals(other.categories, categories)) &&
            (identical(other.likes, likes) ||
                const DeepCollectionEquality().equals(other.likes, likes)) &&
            (identical(other.liked_by_user, liked_by_user) ||
                const DeepCollectionEquality()
                    .equals(other.liked_by_user, liked_by_user)) &&
            (identical(other.user, user) ||
                const DeepCollectionEquality().equals(other.user, user)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(id) ^
      const DeepCollectionEquality().hash(created_at) ^
      const DeepCollectionEquality().hash(updated_at) ^
      const DeepCollectionEquality().hash(width) ^
      const DeepCollectionEquality().hash(height) ^
      const DeepCollectionEquality().hash(color) ^
      const DeepCollectionEquality().hash(blur_hash) ^
      const DeepCollectionEquality().hash(description) ^
      const DeepCollectionEquality().hash(urls) ^
      const DeepCollectionEquality().hash(links) ^
      const DeepCollectionEquality().hash(categories) ^
      const DeepCollectionEquality().hash(likes) ^
      const DeepCollectionEquality().hash(liked_by_user) ^
      const DeepCollectionEquality().hash(user);

  @JsonKey(ignore: true)
  @override
  _$PhotoCopyWith<_Photo> get copyWith =>
      __$PhotoCopyWithImpl<_Photo>(this, _$identity);

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

abstract class _Photo implements Photo {
  factory _Photo(
      {required String? id,
      required DateTime? created_at,
      required DateTime? updated_at,
      required int? width,
      required int? height,
      required String? color,
      required String? blur_hash,
      required dynamic? description,
      required Urls urls,
      required PhotoLinks links,
      required List<dynamic> categories,
      required int? likes,
      required bool? liked_by_user,
      required User user}) = _$_Photo;

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

  @override
  String? get id => throw _privateConstructorUsedError;
  @override
  DateTime? get created_at => throw _privateConstructorUsedError;
  @override
  DateTime? get updated_at => throw _privateConstructorUsedError;
  @override
  int? get width => throw _privateConstructorUsedError;
  @override
  int? get height => throw _privateConstructorUsedError;
  @override
  String? get color => throw _privateConstructorUsedError;
  @override
  String? get blur_hash => throw _privateConstructorUsedError;
  @override
  dynamic? get description => throw _privateConstructorUsedError;
  @override
  Urls get urls => throw _privateConstructorUsedError;
  @override
  PhotoLinks get links => throw _privateConstructorUsedError;
  @override
  List<dynamic> get categories => throw _privateConstructorUsedError;
  @override
  int? get likes => throw _privateConstructorUsedError;
  @override
  bool? get liked_by_user => throw _privateConstructorUsedError;
  @override
  User get user => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$PhotoCopyWith<_Photo> get copyWith => throw _privateConstructorUsedError;
}


<|start_filename|>lib/models/search.g.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'search.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

_$_SearchDetails _$_$_SearchDetailsFromJson(Map<String, dynamic> json) {
  return _$_SearchDetails(
    total: json['total'] as int,
    totalPages: json['totalPages'] as int,
    results: (json['results'] as List<dynamic>?)
        ?.map((e) => Photo.fromJson(e as Map<String, dynamic>))
        .toList(),
  );
}

Map<String, dynamic> _$_$_SearchDetailsToJson(_$_SearchDetails instance) =>
    <String, dynamic>{
      'total': instance.total,
      'totalPages': instance.totalPages,
      'results': instance.results,
    };


<|start_filename|>lib/models/photo_details.freezed.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND
// 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

part of 'photo_details.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 informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

PhotoDetails _$PhotoDetailsFromJson(Map<String, dynamic> json) {
  return _PhotoDetails.fromJson(json);
}

/// @nodoc
class _$PhotoDetailsTearOff {
  const _$PhotoDetailsTearOff();

  _PhotoDetails call(
      {required String? id,
      required DateTime? created_at,
      required DateTime? updated_at,
      required int? width,
      required int? height,
      required String? color,
      required String? blur_hash,
      required Urls? urls,
      required PhotoLinks? links,
      required Exif? exif,
      required User? user,
      required int? likes,
      required int? views,
      required int? downloads}) {
    return _PhotoDetails(
      id: id,
      created_at: created_at,
      updated_at: updated_at,
      width: width,
      height: height,
      color: color,
      blur_hash: blur_hash,
      urls: urls,
      links: links,
      exif: exif,
      user: user,
      likes: likes,
      views: views,
      downloads: downloads,
    );
  }

  PhotoDetails fromJson(Map<String, Object> json) {
    return PhotoDetails.fromJson(json);
  }
}

/// @nodoc
const $PhotoDetails = _$PhotoDetailsTearOff();

/// @nodoc
mixin _$PhotoDetails {
  String? get id => throw _privateConstructorUsedError;
  DateTime? get created_at => throw _privateConstructorUsedError;
  DateTime? get updated_at => throw _privateConstructorUsedError;
  int? get width => throw _privateConstructorUsedError;
  int? get height => throw _privateConstructorUsedError;
  String? get color => throw _privateConstructorUsedError;
  String? get blur_hash => throw _privateConstructorUsedError;
  Urls? get urls => throw _privateConstructorUsedError;
  PhotoLinks? get links => throw _privateConstructorUsedError;
  Exif? get exif => throw _privateConstructorUsedError;
  User? get user => throw _privateConstructorUsedError;
  int? get likes => throw _privateConstructorUsedError;
  int? get views => throw _privateConstructorUsedError;
  int? get downloads => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PhotoDetailsCopyWith<$Res> {
  factory $PhotoDetailsCopyWith(
          PhotoDetails value, $Res Function(PhotoDetails) then) =
      _$PhotoDetailsCopyWithImpl<$Res>;
  $Res call(
      {String? id,
      DateTime? created_at,
      DateTime? updated_at,
      int? width,
      int? height,
      String? color,
      String? blur_hash,
      Urls? urls,
      PhotoLinks? links,
      Exif? exif,
      User? user,
      int? likes,
      int? views,
      int? downloads});

  $UrlsCopyWith<$Res>? get urls;
  $PhotoLinksCopyWith<$Res>? get links;
  $ExifCopyWith<$Res>? get exif;
  $UserCopyWith<$Res>? get user;
}

/// @nodoc
class _$PhotoDetailsCopyWithImpl<$Res> implements $PhotoDetailsCopyWith<$Res> {
  _$PhotoDetailsCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? id = freezed,
    Object? created_at = freezed,
    Object? updated_at = freezed,
    Object? width = freezed,
    Object? height = freezed,
    Object? color = freezed,
    Object? blur_hash = freezed,
    Object? urls = freezed,
    Object? links = freezed,
    Object? exif = freezed,
    Object? user = freezed,
    Object? likes = freezed,
    Object? views = freezed,
    Object? downloads = freezed,
  }) {
    return _then(_value.copyWith(
      id: id == freezed
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String?,
      created_at: created_at == freezed
          ? _value.created_at
          : created_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      updated_at: updated_at == freezed
          ? _value.updated_at
          : updated_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      width: width == freezed
          ? _value.width
          : width // ignore: cast_nullable_to_non_nullable
              as int?,
      height: height == freezed
          ? _value.height
          : height // ignore: cast_nullable_to_non_nullable
              as int?,
      color: color == freezed
          ? _value.color
          : color // ignore: cast_nullable_to_non_nullable
              as String?,
      blur_hash: blur_hash == freezed
          ? _value.blur_hash
          : blur_hash // ignore: cast_nullable_to_non_nullable
              as String?,
      urls: urls == freezed
          ? _value.urls
          : urls // ignore: cast_nullable_to_non_nullable
              as Urls?,
      links: links == freezed
          ? _value.links
          : links // ignore: cast_nullable_to_non_nullable
              as PhotoLinks?,
      exif: exif == freezed
          ? _value.exif
          : exif // ignore: cast_nullable_to_non_nullable
              as Exif?,
      user: user == freezed
          ? _value.user
          : user // ignore: cast_nullable_to_non_nullable
              as User?,
      likes: likes == freezed
          ? _value.likes
          : likes // ignore: cast_nullable_to_non_nullable
              as int?,
      views: views == freezed
          ? _value.views
          : views // ignore: cast_nullable_to_non_nullable
              as int?,
      downloads: downloads == freezed
          ? _value.downloads
          : downloads // ignore: cast_nullable_to_non_nullable
              as int?,
    ));
  }

  @override
  $UrlsCopyWith<$Res>? get urls {
    if (_value.urls == null) {
      return null;
    }

    return $UrlsCopyWith<$Res>(_value.urls!, (value) {
      return _then(_value.copyWith(urls: value));
    });
  }

  @override
  $PhotoLinksCopyWith<$Res>? get links {
    if (_value.links == null) {
      return null;
    }

    return $PhotoLinksCopyWith<$Res>(_value.links!, (value) {
      return _then(_value.copyWith(links: value));
    });
  }

  @override
  $ExifCopyWith<$Res>? get exif {
    if (_value.exif == null) {
      return null;
    }

    return $ExifCopyWith<$Res>(_value.exif!, (value) {
      return _then(_value.copyWith(exif: value));
    });
  }

  @override
  $UserCopyWith<$Res>? get user {
    if (_value.user == null) {
      return null;
    }

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

/// @nodoc
abstract class _$PhotoDetailsCopyWith<$Res>
    implements $PhotoDetailsCopyWith<$Res> {
  factory _$PhotoDetailsCopyWith(
          _PhotoDetails value, $Res Function(_PhotoDetails) then) =
      __$PhotoDetailsCopyWithImpl<$Res>;
  @override
  $Res call(
      {String? id,
      DateTime? created_at,
      DateTime? updated_at,
      int? width,
      int? height,
      String? color,
      String? blur_hash,
      Urls? urls,
      PhotoLinks? links,
      Exif? exif,
      User? user,
      int? likes,
      int? views,
      int? downloads});

  @override
  $UrlsCopyWith<$Res>? get urls;
  @override
  $PhotoLinksCopyWith<$Res>? get links;
  @override
  $ExifCopyWith<$Res>? get exif;
  @override
  $UserCopyWith<$Res>? get user;
}

/// @nodoc
class __$PhotoDetailsCopyWithImpl<$Res> extends _$PhotoDetailsCopyWithImpl<$Res>
    implements _$PhotoDetailsCopyWith<$Res> {
  __$PhotoDetailsCopyWithImpl(
      _PhotoDetails _value, $Res Function(_PhotoDetails) _then)
      : super(_value, (v) => _then(v as _PhotoDetails));

  @override
  _PhotoDetails get _value => super._value as _PhotoDetails;

  @override
  $Res call({
    Object? id = freezed,
    Object? created_at = freezed,
    Object? updated_at = freezed,
    Object? width = freezed,
    Object? height = freezed,
    Object? color = freezed,
    Object? blur_hash = freezed,
    Object? urls = freezed,
    Object? links = freezed,
    Object? exif = freezed,
    Object? user = freezed,
    Object? likes = freezed,
    Object? views = freezed,
    Object? downloads = freezed,
  }) {
    return _then(_PhotoDetails(
      id: id == freezed
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as String?,
      created_at: created_at == freezed
          ? _value.created_at
          : created_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      updated_at: updated_at == freezed
          ? _value.updated_at
          : updated_at // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      width: width == freezed
          ? _value.width
          : width // ignore: cast_nullable_to_non_nullable
              as int?,
      height: height == freezed
          ? _value.height
          : height // ignore: cast_nullable_to_non_nullable
              as int?,
      color: color == freezed
          ? _value.color
          : color // ignore: cast_nullable_to_non_nullable
              as String?,
      blur_hash: blur_hash == freezed
          ? _value.blur_hash
          : blur_hash // ignore: cast_nullable_to_non_nullable
              as String?,
      urls: urls == freezed
          ? _value.urls
          : urls // ignore: cast_nullable_to_non_nullable
              as Urls?,
      links: links == freezed
          ? _value.links
          : links // ignore: cast_nullable_to_non_nullable
              as PhotoLinks?,
      exif: exif == freezed
          ? _value.exif
          : exif // ignore: cast_nullable_to_non_nullable
              as Exif?,
      user: user == freezed
          ? _value.user
          : user // ignore: cast_nullable_to_non_nullable
              as User?,
      likes: likes == freezed
          ? _value.likes
          : likes // ignore: cast_nullable_to_non_nullable
              as int?,
      views: views == freezed
          ? _value.views
          : views // ignore: cast_nullable_to_non_nullable
              as int?,
      downloads: downloads == freezed
          ? _value.downloads
          : downloads // ignore: cast_nullable_to_non_nullable
              as int?,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_PhotoDetails implements _PhotoDetails {
  _$_PhotoDetails(
      {required this.id,
      required this.created_at,
      required this.updated_at,
      required this.width,
      required this.height,
      required this.color,
      required this.blur_hash,
      required this.urls,
      required this.links,
      required this.exif,
      required this.user,
      required this.likes,
      required this.views,
      required this.downloads});

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

  @override
  final String? id;
  @override
  final DateTime? created_at;
  @override
  final DateTime? updated_at;
  @override
  final int? width;
  @override
  final int? height;
  @override
  final String? color;
  @override
  final String? blur_hash;
  @override
  final Urls? urls;
  @override
  final PhotoLinks? links;
  @override
  final Exif? exif;
  @override
  final User? user;
  @override
  final int? likes;
  @override
  final int? views;
  @override
  final int? downloads;

  @override
  String toString() {
    return 'PhotoDetails(id: $id, created_at: $created_at, updated_at: $updated_at, width: $width, height: $height, color: $color, blur_hash: $blur_hash, urls: $urls, links: $links, exif: $exif, user: $user, likes: $likes, views: $views, downloads: $downloads)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _PhotoDetails &&
            (identical(other.id, id) ||
                const DeepCollectionEquality().equals(other.id, id)) &&
            (identical(other.created_at, created_at) ||
                const DeepCollectionEquality()
                    .equals(other.created_at, created_at)) &&
            (identical(other.updated_at, updated_at) ||
                const DeepCollectionEquality()
                    .equals(other.updated_at, updated_at)) &&
            (identical(other.width, width) ||
                const DeepCollectionEquality().equals(other.width, width)) &&
            (identical(other.height, height) ||
                const DeepCollectionEquality().equals(other.height, height)) &&
            (identical(other.color, color) ||
                const DeepCollectionEquality().equals(other.color, color)) &&
            (identical(other.blur_hash, blur_hash) ||
                const DeepCollectionEquality()
                    .equals(other.blur_hash, blur_hash)) &&
            (identical(other.urls, urls) ||
                const DeepCollectionEquality().equals(other.urls, urls)) &&
            (identical(other.links, links) ||
                const DeepCollectionEquality().equals(other.links, links)) &&
            (identical(other.exif, exif) ||
                const DeepCollectionEquality().equals(other.exif, exif)) &&
            (identical(other.user, user) ||
                const DeepCollectionEquality().equals(other.user, user)) &&
            (identical(other.likes, likes) ||
                const DeepCollectionEquality().equals(other.likes, likes)) &&
            (identical(other.views, views) ||
                const DeepCollectionEquality().equals(other.views, views)) &&
            (identical(other.downloads, downloads) ||
                const DeepCollectionEquality()
                    .equals(other.downloads, downloads)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(id) ^
      const DeepCollectionEquality().hash(created_at) ^
      const DeepCollectionEquality().hash(updated_at) ^
      const DeepCollectionEquality().hash(width) ^
      const DeepCollectionEquality().hash(height) ^
      const DeepCollectionEquality().hash(color) ^
      const DeepCollectionEquality().hash(blur_hash) ^
      const DeepCollectionEquality().hash(urls) ^
      const DeepCollectionEquality().hash(links) ^
      const DeepCollectionEquality().hash(exif) ^
      const DeepCollectionEquality().hash(user) ^
      const DeepCollectionEquality().hash(likes) ^
      const DeepCollectionEquality().hash(views) ^
      const DeepCollectionEquality().hash(downloads);

  @JsonKey(ignore: true)
  @override
  _$PhotoDetailsCopyWith<_PhotoDetails> get copyWith =>
      __$PhotoDetailsCopyWithImpl<_PhotoDetails>(this, _$identity);

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

abstract class _PhotoDetails implements PhotoDetails {
  factory _PhotoDetails(
      {required String? id,
      required DateTime? created_at,
      required DateTime? updated_at,
      required int? width,
      required int? height,
      required String? color,
      required String? blur_hash,
      required Urls? urls,
      required PhotoLinks? links,
      required Exif? exif,
      required User? user,
      required int? likes,
      required int? views,
      required int? downloads}) = _$_PhotoDetails;

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

  @override
  String? get id => throw _privateConstructorUsedError;
  @override
  DateTime? get created_at => throw _privateConstructorUsedError;
  @override
  DateTime? get updated_at => throw _privateConstructorUsedError;
  @override
  int? get width => throw _privateConstructorUsedError;
  @override
  int? get height => throw _privateConstructorUsedError;
  @override
  String? get color => throw _privateConstructorUsedError;
  @override
  String? get blur_hash => throw _privateConstructorUsedError;
  @override
  Urls? get urls => throw _privateConstructorUsedError;
  @override
  PhotoLinks? get links => throw _privateConstructorUsedError;
  @override
  Exif? get exif => throw _privateConstructorUsedError;
  @override
  User? get user => throw _privateConstructorUsedError;
  @override
  int? get likes => throw _privateConstructorUsedError;
  @override
  int? get views => throw _privateConstructorUsedError;
  @override
  int? get downloads => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$PhotoDetailsCopyWith<_PhotoDetails> get copyWith =>
      throw _privateConstructorUsedError;
}

Exif _$ExifFromJson(Map<String, dynamic> json) {
  return _Exif.fromJson(json);
}

/// @nodoc
class _$ExifTearOff {
  const _$ExifTearOff();

  _Exif call(
      {required String? make,
      required String? model,
      required String? exposure_time,
      required String? aperture,
      required String? focal_length,
      required int? iso}) {
    return _Exif(
      make: make,
      model: model,
      exposure_time: exposure_time,
      aperture: aperture,
      focal_length: focal_length,
      iso: iso,
    );
  }

  Exif fromJson(Map<String, Object> json) {
    return Exif.fromJson(json);
  }
}

/// @nodoc
const $Exif = _$ExifTearOff();

/// @nodoc
mixin _$Exif {
  String? get make => throw _privateConstructorUsedError;
  String? get model => throw _privateConstructorUsedError;
  String? get exposure_time => throw _privateConstructorUsedError;
  String? get aperture => throw _privateConstructorUsedError;
  String? get focal_length => throw _privateConstructorUsedError;
  int? get iso => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ExifCopyWith<$Res> {
  factory $ExifCopyWith(Exif value, $Res Function(Exif) then) =
      _$ExifCopyWithImpl<$Res>;
  $Res call(
      {String? make,
      String? model,
      String? exposure_time,
      String? aperture,
      String? focal_length,
      int? iso});
}

/// @nodoc
class _$ExifCopyWithImpl<$Res> implements $ExifCopyWith<$Res> {
  _$ExifCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? make = freezed,
    Object? model = freezed,
    Object? exposure_time = freezed,
    Object? aperture = freezed,
    Object? focal_length = freezed,
    Object? iso = freezed,
  }) {
    return _then(_value.copyWith(
      make: make == freezed
          ? _value.make
          : make // ignore: cast_nullable_to_non_nullable
              as String?,
      model: model == freezed
          ? _value.model
          : model // ignore: cast_nullable_to_non_nullable
              as String?,
      exposure_time: exposure_time == freezed
          ? _value.exposure_time
          : exposure_time // ignore: cast_nullable_to_non_nullable
              as String?,
      aperture: aperture == freezed
          ? _value.aperture
          : aperture // ignore: cast_nullable_to_non_nullable
              as String?,
      focal_length: focal_length == freezed
          ? _value.focal_length
          : focal_length // ignore: cast_nullable_to_non_nullable
              as String?,
      iso: iso == freezed
          ? _value.iso
          : iso // ignore: cast_nullable_to_non_nullable
              as int?,
    ));
  }
}

/// @nodoc
abstract class _$ExifCopyWith<$Res> implements $ExifCopyWith<$Res> {
  factory _$ExifCopyWith(_Exif value, $Res Function(_Exif) then) =
      __$ExifCopyWithImpl<$Res>;
  @override
  $Res call(
      {String? make,
      String? model,
      String? exposure_time,
      String? aperture,
      String? focal_length,
      int? iso});
}

/// @nodoc
class __$ExifCopyWithImpl<$Res> extends _$ExifCopyWithImpl<$Res>
    implements _$ExifCopyWith<$Res> {
  __$ExifCopyWithImpl(_Exif _value, $Res Function(_Exif) _then)
      : super(_value, (v) => _then(v as _Exif));

  @override
  _Exif get _value => super._value as _Exif;

  @override
  $Res call({
    Object? make = freezed,
    Object? model = freezed,
    Object? exposure_time = freezed,
    Object? aperture = freezed,
    Object? focal_length = freezed,
    Object? iso = freezed,
  }) {
    return _then(_Exif(
      make: make == freezed
          ? _value.make
          : make // ignore: cast_nullable_to_non_nullable
              as String?,
      model: model == freezed
          ? _value.model
          : model // ignore: cast_nullable_to_non_nullable
              as String?,
      exposure_time: exposure_time == freezed
          ? _value.exposure_time
          : exposure_time // ignore: cast_nullable_to_non_nullable
              as String?,
      aperture: aperture == freezed
          ? _value.aperture
          : aperture // ignore: cast_nullable_to_non_nullable
              as String?,
      focal_length: focal_length == freezed
          ? _value.focal_length
          : focal_length // ignore: cast_nullable_to_non_nullable
              as String?,
      iso: iso == freezed
          ? _value.iso
          : iso // ignore: cast_nullable_to_non_nullable
              as int?,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_Exif implements _Exif {
  _$_Exif(
      {required this.make,
      required this.model,
      required this.exposure_time,
      required this.aperture,
      required this.focal_length,
      required this.iso});

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

  @override
  final String? make;
  @override
  final String? model;
  @override
  final String? exposure_time;
  @override
  final String? aperture;
  @override
  final String? focal_length;
  @override
  final int? iso;

  @override
  String toString() {
    return 'Exif(make: $make, model: $model, exposure_time: $exposure_time, aperture: $aperture, focal_length: $focal_length, iso: $iso)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _Exif &&
            (identical(other.make, make) ||
                const DeepCollectionEquality().equals(other.make, make)) &&
            (identical(other.model, model) ||
                const DeepCollectionEquality().equals(other.model, model)) &&
            (identical(other.exposure_time, exposure_time) ||
                const DeepCollectionEquality()
                    .equals(other.exposure_time, exposure_time)) &&
            (identical(other.aperture, aperture) ||
                const DeepCollectionEquality()
                    .equals(other.aperture, aperture)) &&
            (identical(other.focal_length, focal_length) ||
                const DeepCollectionEquality()
                    .equals(other.focal_length, focal_length)) &&
            (identical(other.iso, iso) ||
                const DeepCollectionEquality().equals(other.iso, iso)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(make) ^
      const DeepCollectionEquality().hash(model) ^
      const DeepCollectionEquality().hash(exposure_time) ^
      const DeepCollectionEquality().hash(aperture) ^
      const DeepCollectionEquality().hash(focal_length) ^
      const DeepCollectionEquality().hash(iso);

  @JsonKey(ignore: true)
  @override
  _$ExifCopyWith<_Exif> get copyWith =>
      __$ExifCopyWithImpl<_Exif>(this, _$identity);

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

abstract class _Exif implements Exif {
  factory _Exif(
      {required String? make,
      required String? model,
      required String? exposure_time,
      required String? aperture,
      required String? focal_length,
      required int? iso}) = _$_Exif;

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

  @override
  String? get make => throw _privateConstructorUsedError;
  @override
  String? get model => throw _privateConstructorUsedError;
  @override
  String? get exposure_time => throw _privateConstructorUsedError;
  @override
  String? get aperture => throw _privateConstructorUsedError;
  @override
  String? get focal_length => throw _privateConstructorUsedError;
  @override
  int? get iso => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$ExifCopyWith<_Exif> get copyWith => throw _privateConstructorUsedError;
}


<|start_filename|>lib/models/access_token.g.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'access_token.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

_$_AccessToken _$_$_AccessTokenFromJson(Map<String, dynamic> json) {
  return _$_AccessToken(
    access_token: json['access_token'] as String,
    token_type: json['token_type'] as String,
    scope: json['scope'] as String,
    created_at: json['created_at'] as int,
  );
}

Map<String, dynamic> _$_$_AccessTokenToJson(_$_AccessToken instance) =>
    <String, dynamic>{
      'access_token': instance.access_token,
      'token_type': instance.token_type,
      'scope': instance.scope,
      'created_at': instance.created_at,
    };


<|start_filename|>lib/models/search.freezed.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND
// 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

part of 'search.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 informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

SearchDetails _$SearchDetailsFromJson(Map<String, dynamic> json) {
  return _SearchDetails.fromJson(json);
}

/// @nodoc
class _$SearchDetailsTearOff {
  const _$SearchDetailsTearOff();

  _SearchDetails call(
      {required int total,
      required int totalPages,
      required List<Photo>? results}) {
    return _SearchDetails(
      total: total,
      totalPages: totalPages,
      results: results,
    );
  }

  SearchDetails fromJson(Map<String, Object> json) {
    return SearchDetails.fromJson(json);
  }
}

/// @nodoc
const $SearchDetails = _$SearchDetailsTearOff();

/// @nodoc
mixin _$SearchDetails {
  int get total => throw _privateConstructorUsedError;
  int get totalPages => throw _privateConstructorUsedError;
  List<Photo>? get results => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $SearchDetailsCopyWith<$Res> {
  factory $SearchDetailsCopyWith(
          SearchDetails value, $Res Function(SearchDetails) then) =
      _$SearchDetailsCopyWithImpl<$Res>;
  $Res call({int total, int totalPages, List<Photo>? results});
}

/// @nodoc
class _$SearchDetailsCopyWithImpl<$Res>
    implements $SearchDetailsCopyWith<$Res> {
  _$SearchDetailsCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? total = freezed,
    Object? totalPages = freezed,
    Object? results = freezed,
  }) {
    return _then(_value.copyWith(
      total: total == freezed
          ? _value.total
          : total // ignore: cast_nullable_to_non_nullable
              as int,
      totalPages: totalPages == freezed
          ? _value.totalPages
          : totalPages // ignore: cast_nullable_to_non_nullable
              as int,
      results: results == freezed
          ? _value.results
          : results // ignore: cast_nullable_to_non_nullable
              as List<Photo>?,
    ));
  }
}

/// @nodoc
abstract class _$SearchDetailsCopyWith<$Res>
    implements $SearchDetailsCopyWith<$Res> {
  factory _$SearchDetailsCopyWith(
          _SearchDetails value, $Res Function(_SearchDetails) then) =
      __$SearchDetailsCopyWithImpl<$Res>;
  @override
  $Res call({int total, int totalPages, List<Photo>? results});
}

/// @nodoc
class __$SearchDetailsCopyWithImpl<$Res>
    extends _$SearchDetailsCopyWithImpl<$Res>
    implements _$SearchDetailsCopyWith<$Res> {
  __$SearchDetailsCopyWithImpl(
      _SearchDetails _value, $Res Function(_SearchDetails) _then)
      : super(_value, (v) => _then(v as _SearchDetails));

  @override
  _SearchDetails get _value => super._value as _SearchDetails;

  @override
  $Res call({
    Object? total = freezed,
    Object? totalPages = freezed,
    Object? results = freezed,
  }) {
    return _then(_SearchDetails(
      total: total == freezed
          ? _value.total
          : total // ignore: cast_nullable_to_non_nullable
              as int,
      totalPages: totalPages == freezed
          ? _value.totalPages
          : totalPages // ignore: cast_nullable_to_non_nullable
              as int,
      results: results == freezed
          ? _value.results
          : results // ignore: cast_nullable_to_non_nullable
              as List<Photo>?,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_SearchDetails implements _SearchDetails {
  _$_SearchDetails(
      {required this.total, required this.totalPages, required this.results});

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

  @override
  final int total;
  @override
  final int totalPages;
  @override
  final List<Photo>? results;

  @override
  String toString() {
    return 'SearchDetails(total: $total, totalPages: $totalPages, results: $results)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _SearchDetails &&
            (identical(other.total, total) ||
                const DeepCollectionEquality().equals(other.total, total)) &&
            (identical(other.totalPages, totalPages) ||
                const DeepCollectionEquality()
                    .equals(other.totalPages, totalPages)) &&
            (identical(other.results, results) ||
                const DeepCollectionEquality().equals(other.results, results)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(total) ^
      const DeepCollectionEquality().hash(totalPages) ^
      const DeepCollectionEquality().hash(results);

  @JsonKey(ignore: true)
  @override
  _$SearchDetailsCopyWith<_SearchDetails> get copyWith =>
      __$SearchDetailsCopyWithImpl<_SearchDetails>(this, _$identity);

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

abstract class _SearchDetails implements SearchDetails {
  factory _SearchDetails(
      {required int total,
      required int totalPages,
      required List<Photo>? results}) = _$_SearchDetails;

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

  @override
  int get total => throw _privateConstructorUsedError;
  @override
  int get totalPages => throw _privateConstructorUsedError;
  @override
  List<Photo>? get results => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$SearchDetailsCopyWith<_SearchDetails> get copyWith =>
      throw _privateConstructorUsedError;
}


<|start_filename|>lib/models/urls.freezed.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND
// 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

part of 'urls.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 informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

Urls _$UrlsFromJson(Map<String, dynamic> json) {
  return _Urls.fromJson(json);
}

/// @nodoc
class _$UrlsTearOff {
  const _$UrlsTearOff();

  _Urls call(
      {required String raw,
      required String full,
      required String regular,
      required String small,
      required String thumb}) {
    return _Urls(
      raw: raw,
      full: full,
      regular: regular,
      small: small,
      thumb: thumb,
    );
  }

  Urls fromJson(Map<String, Object> json) {
    return Urls.fromJson(json);
  }
}

/// @nodoc
const $Urls = _$UrlsTearOff();

/// @nodoc
mixin _$Urls {
  String get raw => throw _privateConstructorUsedError;
  String get full => throw _privateConstructorUsedError;
  String get regular => throw _privateConstructorUsedError;
  String get small => throw _privateConstructorUsedError;
  String get thumb => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $UrlsCopyWith<$Res> {
  factory $UrlsCopyWith(Urls value, $Res Function(Urls) then) =
      _$UrlsCopyWithImpl<$Res>;
  $Res call(
      {String raw, String full, String regular, String small, String thumb});
}

/// @nodoc
class _$UrlsCopyWithImpl<$Res> implements $UrlsCopyWith<$Res> {
  _$UrlsCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? raw = freezed,
    Object? full = freezed,
    Object? regular = freezed,
    Object? small = freezed,
    Object? thumb = freezed,
  }) {
    return _then(_value.copyWith(
      raw: raw == freezed
          ? _value.raw
          : raw // ignore: cast_nullable_to_non_nullable
              as String,
      full: full == freezed
          ? _value.full
          : full // ignore: cast_nullable_to_non_nullable
              as String,
      regular: regular == freezed
          ? _value.regular
          : regular // ignore: cast_nullable_to_non_nullable
              as String,
      small: small == freezed
          ? _value.small
          : small // ignore: cast_nullable_to_non_nullable
              as String,
      thumb: thumb == freezed
          ? _value.thumb
          : thumb // ignore: cast_nullable_to_non_nullable
              as String,
    ));
  }
}

/// @nodoc
abstract class _$UrlsCopyWith<$Res> implements $UrlsCopyWith<$Res> {
  factory _$UrlsCopyWith(_Urls value, $Res Function(_Urls) then) =
      __$UrlsCopyWithImpl<$Res>;
  @override
  $Res call(
      {String raw, String full, String regular, String small, String thumb});
}

/// @nodoc
class __$UrlsCopyWithImpl<$Res> extends _$UrlsCopyWithImpl<$Res>
    implements _$UrlsCopyWith<$Res> {
  __$UrlsCopyWithImpl(_Urls _value, $Res Function(_Urls) _then)
      : super(_value, (v) => _then(v as _Urls));

  @override
  _Urls get _value => super._value as _Urls;

  @override
  $Res call({
    Object? raw = freezed,
    Object? full = freezed,
    Object? regular = freezed,
    Object? small = freezed,
    Object? thumb = freezed,
  }) {
    return _then(_Urls(
      raw: raw == freezed
          ? _value.raw
          : raw // ignore: cast_nullable_to_non_nullable
              as String,
      full: full == freezed
          ? _value.full
          : full // ignore: cast_nullable_to_non_nullable
              as String,
      regular: regular == freezed
          ? _value.regular
          : regular // ignore: cast_nullable_to_non_nullable
              as String,
      small: small == freezed
          ? _value.small
          : small // ignore: cast_nullable_to_non_nullable
              as String,
      thumb: thumb == freezed
          ? _value.thumb
          : thumb // ignore: cast_nullable_to_non_nullable
              as String,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_Urls implements _Urls {
  _$_Urls(
      {required this.raw,
      required this.full,
      required this.regular,
      required this.small,
      required this.thumb});

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

  @override
  final String raw;
  @override
  final String full;
  @override
  final String regular;
  @override
  final String small;
  @override
  final String thumb;

  @override
  String toString() {
    return 'Urls(raw: $raw, full: $full, regular: $regular, small: $small, thumb: $thumb)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _Urls &&
            (identical(other.raw, raw) ||
                const DeepCollectionEquality().equals(other.raw, raw)) &&
            (identical(other.full, full) ||
                const DeepCollectionEquality().equals(other.full, full)) &&
            (identical(other.regular, regular) ||
                const DeepCollectionEquality()
                    .equals(other.regular, regular)) &&
            (identical(other.small, small) ||
                const DeepCollectionEquality().equals(other.small, small)) &&
            (identical(other.thumb, thumb) ||
                const DeepCollectionEquality().equals(other.thumb, thumb)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(raw) ^
      const DeepCollectionEquality().hash(full) ^
      const DeepCollectionEquality().hash(regular) ^
      const DeepCollectionEquality().hash(small) ^
      const DeepCollectionEquality().hash(thumb);

  @JsonKey(ignore: true)
  @override
  _$UrlsCopyWith<_Urls> get copyWith =>
      __$UrlsCopyWithImpl<_Urls>(this, _$identity);

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

abstract class _Urls implements Urls {
  factory _Urls(
      {required String raw,
      required String full,
      required String regular,
      required String small,
      required String thumb}) = _$_Urls;

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

  @override
  String get raw => throw _privateConstructorUsedError;
  @override
  String get full => throw _privateConstructorUsedError;
  @override
  String get regular => throw _privateConstructorUsedError;
  @override
  String get small => throw _privateConstructorUsedError;
  @override
  String get thumb => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$UrlsCopyWith<_Urls> get copyWith => throw _privateConstructorUsedError;
}


<|start_filename|>lib/models/links.freezed.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND
// 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

part of 'links.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 informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

PhotoLinks _$PhotoLinksFromJson(Map<String, dynamic> json) {
  return _PhotoLinks.fromJson(json);
}

/// @nodoc
class _$PhotoLinksTearOff {
  const _$PhotoLinksTearOff();

  _PhotoLinks call(
      {required String? self,
      required String? html,
      required String? download,
      required String? download_location}) {
    return _PhotoLinks(
      self: self,
      html: html,
      download: download,
      download_location: download_location,
    );
  }

  PhotoLinks fromJson(Map<String, Object> json) {
    return PhotoLinks.fromJson(json);
  }
}

/// @nodoc
const $PhotoLinks = _$PhotoLinksTearOff();

/// @nodoc
mixin _$PhotoLinks {
  String? get self => throw _privateConstructorUsedError;
  String? get html => throw _privateConstructorUsedError;
  String? get download => throw _privateConstructorUsedError;
  String? get download_location => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PhotoLinksCopyWith<$Res> {
  factory $PhotoLinksCopyWith(
          PhotoLinks value, $Res Function(PhotoLinks) then) =
      _$PhotoLinksCopyWithImpl<$Res>;
  $Res call(
      {String? self,
      String? html,
      String? download,
      String? download_location});
}

/// @nodoc
class _$PhotoLinksCopyWithImpl<$Res> implements $PhotoLinksCopyWith<$Res> {
  _$PhotoLinksCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? self = freezed,
    Object? html = freezed,
    Object? download = freezed,
    Object? download_location = freezed,
  }) {
    return _then(_value.copyWith(
      self: self == freezed
          ? _value.self
          : self // ignore: cast_nullable_to_non_nullable
              as String?,
      html: html == freezed
          ? _value.html
          : html // ignore: cast_nullable_to_non_nullable
              as String?,
      download: download == freezed
          ? _value.download
          : download // ignore: cast_nullable_to_non_nullable
              as String?,
      download_location: download_location == freezed
          ? _value.download_location
          : download_location // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

/// @nodoc
abstract class _$PhotoLinksCopyWith<$Res> implements $PhotoLinksCopyWith<$Res> {
  factory _$PhotoLinksCopyWith(
          _PhotoLinks value, $Res Function(_PhotoLinks) then) =
      __$PhotoLinksCopyWithImpl<$Res>;
  @override
  $Res call(
      {String? self,
      String? html,
      String? download,
      String? download_location});
}

/// @nodoc
class __$PhotoLinksCopyWithImpl<$Res> extends _$PhotoLinksCopyWithImpl<$Res>
    implements _$PhotoLinksCopyWith<$Res> {
  __$PhotoLinksCopyWithImpl(
      _PhotoLinks _value, $Res Function(_PhotoLinks) _then)
      : super(_value, (v) => _then(v as _PhotoLinks));

  @override
  _PhotoLinks get _value => super._value as _PhotoLinks;

  @override
  $Res call({
    Object? self = freezed,
    Object? html = freezed,
    Object? download = freezed,
    Object? download_location = freezed,
  }) {
    return _then(_PhotoLinks(
      self: self == freezed
          ? _value.self
          : self // ignore: cast_nullable_to_non_nullable
              as String?,
      html: html == freezed
          ? _value.html
          : html // ignore: cast_nullable_to_non_nullable
              as String?,
      download: download == freezed
          ? _value.download
          : download // ignore: cast_nullable_to_non_nullable
              as String?,
      download_location: download_location == freezed
          ? _value.download_location
          : download_location // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_PhotoLinks implements _PhotoLinks {
  _$_PhotoLinks(
      {required this.self,
      required this.html,
      required this.download,
      required this.download_location});

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

  @override
  final String? self;
  @override
  final String? html;
  @override
  final String? download;
  @override
  final String? download_location;

  @override
  String toString() {
    return 'PhotoLinks(self: $self, html: $html, download: $download, download_location: $download_location)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _PhotoLinks &&
            (identical(other.self, self) ||
                const DeepCollectionEquality().equals(other.self, self)) &&
            (identical(other.html, html) ||
                const DeepCollectionEquality().equals(other.html, html)) &&
            (identical(other.download, download) ||
                const DeepCollectionEquality()
                    .equals(other.download, download)) &&
            (identical(other.download_location, download_location) ||
                const DeepCollectionEquality()
                    .equals(other.download_location, download_location)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(self) ^
      const DeepCollectionEquality().hash(html) ^
      const DeepCollectionEquality().hash(download) ^
      const DeepCollectionEquality().hash(download_location);

  @JsonKey(ignore: true)
  @override
  _$PhotoLinksCopyWith<_PhotoLinks> get copyWith =>
      __$PhotoLinksCopyWithImpl<_PhotoLinks>(this, _$identity);

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

abstract class _PhotoLinks implements PhotoLinks {
  factory _PhotoLinks(
      {required String? self,
      required String? html,
      required String? download,
      required String? download_location}) = _$_PhotoLinks;

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

  @override
  String? get self => throw _privateConstructorUsedError;
  @override
  String? get html => throw _privateConstructorUsedError;
  @override
  String? get download => throw _privateConstructorUsedError;
  @override
  String? get download_location => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$PhotoLinksCopyWith<_PhotoLinks> get copyWith =>
      throw _privateConstructorUsedError;
}

UserLinks _$UserLinksFromJson(Map<String, dynamic> json) {
  return _UserLinks.fromJson(json);
}

/// @nodoc
class _$UserLinksTearOff {
  const _$UserLinksTearOff();

  _UserLinks call(
      {required String? self,
      required String? html,
      required String? photos,
      required String? likes,
      required String? portfolio,
      required String? following,
      required String? followers}) {
    return _UserLinks(
      self: self,
      html: html,
      photos: photos,
      likes: likes,
      portfolio: portfolio,
      following: following,
      followers: followers,
    );
  }

  UserLinks fromJson(Map<String, Object> json) {
    return UserLinks.fromJson(json);
  }
}

/// @nodoc
const $UserLinks = _$UserLinksTearOff();

/// @nodoc
mixin _$UserLinks {
  String? get self => throw _privateConstructorUsedError;
  String? get html => throw _privateConstructorUsedError;
  String? get photos => throw _privateConstructorUsedError;
  String? get likes => throw _privateConstructorUsedError;
  String? get portfolio => throw _privateConstructorUsedError;
  String? get following => throw _privateConstructorUsedError;
  String? get followers => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $UserLinksCopyWith<$Res> {
  factory $UserLinksCopyWith(UserLinks value, $Res Function(UserLinks) then) =
      _$UserLinksCopyWithImpl<$Res>;
  $Res call(
      {String? self,
      String? html,
      String? photos,
      String? likes,
      String? portfolio,
      String? following,
      String? followers});
}

/// @nodoc
class _$UserLinksCopyWithImpl<$Res> implements $UserLinksCopyWith<$Res> {
  _$UserLinksCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? self = freezed,
    Object? html = freezed,
    Object? photos = freezed,
    Object? likes = freezed,
    Object? portfolio = freezed,
    Object? following = freezed,
    Object? followers = freezed,
  }) {
    return _then(_value.copyWith(
      self: self == freezed
          ? _value.self
          : self // ignore: cast_nullable_to_non_nullable
              as String?,
      html: html == freezed
          ? _value.html
          : html // ignore: cast_nullable_to_non_nullable
              as String?,
      photos: photos == freezed
          ? _value.photos
          : photos // ignore: cast_nullable_to_non_nullable
              as String?,
      likes: likes == freezed
          ? _value.likes
          : likes // ignore: cast_nullable_to_non_nullable
              as String?,
      portfolio: portfolio == freezed
          ? _value.portfolio
          : portfolio // ignore: cast_nullable_to_non_nullable
              as String?,
      following: following == freezed
          ? _value.following
          : following // ignore: cast_nullable_to_non_nullable
              as String?,
      followers: followers == freezed
          ? _value.followers
          : followers // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

/// @nodoc
abstract class _$UserLinksCopyWith<$Res> implements $UserLinksCopyWith<$Res> {
  factory _$UserLinksCopyWith(
          _UserLinks value, $Res Function(_UserLinks) then) =
      __$UserLinksCopyWithImpl<$Res>;
  @override
  $Res call(
      {String? self,
      String? html,
      String? photos,
      String? likes,
      String? portfolio,
      String? following,
      String? followers});
}

/// @nodoc
class __$UserLinksCopyWithImpl<$Res> extends _$UserLinksCopyWithImpl<$Res>
    implements _$UserLinksCopyWith<$Res> {
  __$UserLinksCopyWithImpl(_UserLinks _value, $Res Function(_UserLinks) _then)
      : super(_value, (v) => _then(v as _UserLinks));

  @override
  _UserLinks get _value => super._value as _UserLinks;

  @override
  $Res call({
    Object? self = freezed,
    Object? html = freezed,
    Object? photos = freezed,
    Object? likes = freezed,
    Object? portfolio = freezed,
    Object? following = freezed,
    Object? followers = freezed,
  }) {
    return _then(_UserLinks(
      self: self == freezed
          ? _value.self
          : self // ignore: cast_nullable_to_non_nullable
              as String?,
      html: html == freezed
          ? _value.html
          : html // ignore: cast_nullable_to_non_nullable
              as String?,
      photos: photos == freezed
          ? _value.photos
          : photos // ignore: cast_nullable_to_non_nullable
              as String?,
      likes: likes == freezed
          ? _value.likes
          : likes // ignore: cast_nullable_to_non_nullable
              as String?,
      portfolio: portfolio == freezed
          ? _value.portfolio
          : portfolio // ignore: cast_nullable_to_non_nullable
              as String?,
      following: following == freezed
          ? _value.following
          : following // ignore: cast_nullable_to_non_nullable
              as String?,
      followers: followers == freezed
          ? _value.followers
          : followers // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_UserLinks implements _UserLinks {
  _$_UserLinks(
      {required this.self,
      required this.html,
      required this.photos,
      required this.likes,
      required this.portfolio,
      required this.following,
      required this.followers});

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

  @override
  final String? self;
  @override
  final String? html;
  @override
  final String? photos;
  @override
  final String? likes;
  @override
  final String? portfolio;
  @override
  final String? following;
  @override
  final String? followers;

  @override
  String toString() {
    return 'UserLinks(self: $self, html: $html, photos: $photos, likes: $likes, portfolio: $portfolio, following: $following, followers: $followers)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _UserLinks &&
            (identical(other.self, self) ||
                const DeepCollectionEquality().equals(other.self, self)) &&
            (identical(other.html, html) ||
                const DeepCollectionEquality().equals(other.html, html)) &&
            (identical(other.photos, photos) ||
                const DeepCollectionEquality().equals(other.photos, photos)) &&
            (identical(other.likes, likes) ||
                const DeepCollectionEquality().equals(other.likes, likes)) &&
            (identical(other.portfolio, portfolio) ||
                const DeepCollectionEquality()
                    .equals(other.portfolio, portfolio)) &&
            (identical(other.following, following) ||
                const DeepCollectionEquality()
                    .equals(other.following, following)) &&
            (identical(other.followers, followers) ||
                const DeepCollectionEquality()
                    .equals(other.followers, followers)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(self) ^
      const DeepCollectionEquality().hash(html) ^
      const DeepCollectionEquality().hash(photos) ^
      const DeepCollectionEquality().hash(likes) ^
      const DeepCollectionEquality().hash(portfolio) ^
      const DeepCollectionEquality().hash(following) ^
      const DeepCollectionEquality().hash(followers);

  @JsonKey(ignore: true)
  @override
  _$UserLinksCopyWith<_UserLinks> get copyWith =>
      __$UserLinksCopyWithImpl<_UserLinks>(this, _$identity);

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

abstract class _UserLinks implements UserLinks {
  factory _UserLinks(
      {required String? self,
      required String? html,
      required String? photos,
      required String? likes,
      required String? portfolio,
      required String? following,
      required String? followers}) = _$_UserLinks;

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

  @override
  String? get self => throw _privateConstructorUsedError;
  @override
  String? get html => throw _privateConstructorUsedError;
  @override
  String? get photos => throw _privateConstructorUsedError;
  @override
  String? get likes => throw _privateConstructorUsedError;
  @override
  String? get portfolio => throw _privateConstructorUsedError;
  @override
  String? get following => throw _privateConstructorUsedError;
  @override
  String? get followers => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$UserLinksCopyWith<_UserLinks> get copyWith =>
      throw _privateConstructorUsedError;
}


<|start_filename|>lib/models/access_token.freezed.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND
// 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

part of 'access_token.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 informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

AccessToken _$AccessTokenFromJson(Map<String, dynamic> json) {
  return _AccessToken.fromJson(json);
}

/// @nodoc
class _$AccessTokenTearOff {
  const _$AccessTokenTearOff();

  _AccessToken call(
      {required String access_token,
      required String token_type,
      required String scope,
      required int created_at}) {
    return _AccessToken(
      access_token: access_token,
      token_type: token_type,
      scope: scope,
      created_at: created_at,
    );
  }

  AccessToken fromJson(Map<String, Object> json) {
    return AccessToken.fromJson(json);
  }
}

/// @nodoc
const $AccessToken = _$AccessTokenTearOff();

/// @nodoc
mixin _$AccessToken {
  String get access_token => throw _privateConstructorUsedError;
  String get token_type => throw _privateConstructorUsedError;
  String get scope => throw _privateConstructorUsedError;
  int get created_at => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $AccessTokenCopyWith<$Res> {
  factory $AccessTokenCopyWith(
          AccessToken value, $Res Function(AccessToken) then) =
      _$AccessTokenCopyWithImpl<$Res>;
  $Res call(
      {String access_token, String token_type, String scope, int created_at});
}

/// @nodoc
class _$AccessTokenCopyWithImpl<$Res> implements $AccessTokenCopyWith<$Res> {
  _$AccessTokenCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? access_token = freezed,
    Object? token_type = freezed,
    Object? scope = freezed,
    Object? created_at = freezed,
  }) {
    return _then(_value.copyWith(
      access_token: access_token == freezed
          ? _value.access_token
          : access_token // ignore: cast_nullable_to_non_nullable
              as String,
      token_type: token_type == freezed
          ? _value.token_type
          : token_type // ignore: cast_nullable_to_non_nullable
              as String,
      scope: scope == freezed
          ? _value.scope
          : scope // ignore: cast_nullable_to_non_nullable
              as String,
      created_at: created_at == freezed
          ? _value.created_at
          : created_at // ignore: cast_nullable_to_non_nullable
              as int,
    ));
  }
}

/// @nodoc
abstract class _$AccessTokenCopyWith<$Res>
    implements $AccessTokenCopyWith<$Res> {
  factory _$AccessTokenCopyWith(
          _AccessToken value, $Res Function(_AccessToken) then) =
      __$AccessTokenCopyWithImpl<$Res>;
  @override
  $Res call(
      {String access_token, String token_type, String scope, int created_at});
}

/// @nodoc
class __$AccessTokenCopyWithImpl<$Res> extends _$AccessTokenCopyWithImpl<$Res>
    implements _$AccessTokenCopyWith<$Res> {
  __$AccessTokenCopyWithImpl(
      _AccessToken _value, $Res Function(_AccessToken) _then)
      : super(_value, (v) => _then(v as _AccessToken));

  @override
  _AccessToken get _value => super._value as _AccessToken;

  @override
  $Res call({
    Object? access_token = freezed,
    Object? token_type = freezed,
    Object? scope = freezed,
    Object? created_at = freezed,
  }) {
    return _then(_AccessToken(
      access_token: access_token == freezed
          ? _value.access_token
          : access_token // ignore: cast_nullable_to_non_nullable
              as String,
      token_type: token_type == freezed
          ? _value.token_type
          : token_type // ignore: cast_nullable_to_non_nullable
              as String,
      scope: scope == freezed
          ? _value.scope
          : scope // ignore: cast_nullable_to_non_nullable
              as String,
      created_at: created_at == freezed
          ? _value.created_at
          : created_at // ignore: cast_nullable_to_non_nullable
              as int,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_AccessToken implements _AccessToken {
  _$_AccessToken(
      {required this.access_token,
      required this.token_type,
      required this.scope,
      required this.created_at});

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

  @override
  final String access_token;
  @override
  final String token_type;
  @override
  final String scope;
  @override
  final int created_at;

  @override
  String toString() {
    return 'AccessToken(access_token: $access_token, token_type: $token_type, scope: $scope, created_at: $created_at)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _AccessToken &&
            (identical(other.access_token, access_token) ||
                const DeepCollectionEquality()
                    .equals(other.access_token, access_token)) &&
            (identical(other.token_type, token_type) ||
                const DeepCollectionEquality()
                    .equals(other.token_type, token_type)) &&
            (identical(other.scope, scope) ||
                const DeepCollectionEquality().equals(other.scope, scope)) &&
            (identical(other.created_at, created_at) ||
                const DeepCollectionEquality()
                    .equals(other.created_at, created_at)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(access_token) ^
      const DeepCollectionEquality().hash(token_type) ^
      const DeepCollectionEquality().hash(scope) ^
      const DeepCollectionEquality().hash(created_at);

  @JsonKey(ignore: true)
  @override
  _$AccessTokenCopyWith<_AccessToken> get copyWith =>
      __$AccessTokenCopyWithImpl<_AccessToken>(this, _$identity);

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

abstract class _AccessToken implements AccessToken {
  factory _AccessToken(
      {required String access_token,
      required String token_type,
      required String scope,
      required int created_at}) = _$_AccessToken;

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

  @override
  String get access_token => throw _privateConstructorUsedError;
  @override
  String get token_type => throw _privateConstructorUsedError;
  @override
  String get scope => throw _privateConstructorUsedError;
  @override
  int get created_at => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$AccessTokenCopyWith<_AccessToken> get copyWith =>
      throw _privateConstructorUsedError;
}


<|start_filename|>lib/models/photo.g.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'photo.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

_$_Photo _$_$_PhotoFromJson(Map<String, dynamic> json) {
  return _$_Photo(
    id: json['id'] as String?,
    created_at: json['created_at'] == null
        ? null
        : DateTime.parse(json['created_at'] as String),
    updated_at: json['updated_at'] == null
        ? null
        : DateTime.parse(json['updated_at'] as String),
    width: json['width'] as int?,
    height: json['height'] as int?,
    color: json['color'] as String?,
    blur_hash: json['blur_hash'] as String?,
    description: json['description'],
    urls: Urls.fromJson(json['urls'] as Map<String, dynamic>),
    links: PhotoLinks.fromJson(json['links'] as Map<String, dynamic>),
    categories: json['categories'] as List<dynamic>,
    likes: json['likes'] as int?,
    liked_by_user: json['liked_by_user'] as bool?,
    user: User.fromJson(json['user'] as Map<String, dynamic>),
  );
}

Map<String, dynamic> _$_$_PhotoToJson(_$_Photo instance) => <String, dynamic>{
      'id': instance.id,
      'created_at': instance.created_at?.toIso8601String(),
      'updated_at': instance.updated_at?.toIso8601String(),
      'width': instance.width,
      'height': instance.height,
      'color': instance.color,
      'blur_hash': instance.blur_hash,
      'description': instance.description,
      'urls': instance.urls,
      'links': instance.links,
      'categories': instance.categories,
      'likes': instance.likes,
      'liked_by_user': instance.liked_by_user,
      'user': instance.user,
    };


<|start_filename|>lib/models/profile.freezed.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND
// 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

part of 'profile.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 informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

ProfileImage _$ProfileImageFromJson(Map<String, dynamic> json) {
  return _ProfileImage.fromJson(json);
}

/// @nodoc
class _$ProfileImageTearOff {
  const _$ProfileImageTearOff();

  _ProfileImage call(
      {required String? small,
      required String? medium,
      required String? large}) {
    return _ProfileImage(
      small: small,
      medium: medium,
      large: large,
    );
  }

  ProfileImage fromJson(Map<String, Object> json) {
    return ProfileImage.fromJson(json);
  }
}

/// @nodoc
const $ProfileImage = _$ProfileImageTearOff();

/// @nodoc
mixin _$ProfileImage {
  String? get small => throw _privateConstructorUsedError;
  String? get medium => throw _privateConstructorUsedError;
  String? get large => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfileImageCopyWith<$Res> {
  factory $ProfileImageCopyWith(
          ProfileImage value, $Res Function(ProfileImage) then) =
      _$ProfileImageCopyWithImpl<$Res>;
  $Res call({String? small, String? medium, String? large});
}

/// @nodoc
class _$ProfileImageCopyWithImpl<$Res> implements $ProfileImageCopyWith<$Res> {
  _$ProfileImageCopyWithImpl(this._value, this._then);

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

  @override
  $Res call({
    Object? small = freezed,
    Object? medium = freezed,
    Object? large = freezed,
  }) {
    return _then(_value.copyWith(
      small: small == freezed
          ? _value.small
          : small // ignore: cast_nullable_to_non_nullable
              as String?,
      medium: medium == freezed
          ? _value.medium
          : medium // ignore: cast_nullable_to_non_nullable
              as String?,
      large: large == freezed
          ? _value.large
          : large // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

/// @nodoc
abstract class _$ProfileImageCopyWith<$Res>
    implements $ProfileImageCopyWith<$Res> {
  factory _$ProfileImageCopyWith(
          _ProfileImage value, $Res Function(_ProfileImage) then) =
      __$ProfileImageCopyWithImpl<$Res>;
  @override
  $Res call({String? small, String? medium, String? large});
}

/// @nodoc
class __$ProfileImageCopyWithImpl<$Res> extends _$ProfileImageCopyWithImpl<$Res>
    implements _$ProfileImageCopyWith<$Res> {
  __$ProfileImageCopyWithImpl(
      _ProfileImage _value, $Res Function(_ProfileImage) _then)
      : super(_value, (v) => _then(v as _ProfileImage));

  @override
  _ProfileImage get _value => super._value as _ProfileImage;

  @override
  $Res call({
    Object? small = freezed,
    Object? medium = freezed,
    Object? large = freezed,
  }) {
    return _then(_ProfileImage(
      small: small == freezed
          ? _value.small
          : small // ignore: cast_nullable_to_non_nullable
              as String?,
      medium: medium == freezed
          ? _value.medium
          : medium // ignore: cast_nullable_to_non_nullable
              as String?,
      large: large == freezed
          ? _value.large
          : large // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

@JsonSerializable()

/// @nodoc
class _$_ProfileImage implements _ProfileImage {
  _$_ProfileImage(
      {required this.small, required this.medium, required this.large});

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

  @override
  final String? small;
  @override
  final String? medium;
  @override
  final String? large;

  @override
  String toString() {
    return 'ProfileImage(small: $small, medium: $medium, large: $large)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is _ProfileImage &&
            (identical(other.small, small) ||
                const DeepCollectionEquality().equals(other.small, small)) &&
            (identical(other.medium, medium) ||
                const DeepCollectionEquality().equals(other.medium, medium)) &&
            (identical(other.large, large) ||
                const DeepCollectionEquality().equals(other.large, large)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^
      const DeepCollectionEquality().hash(small) ^
      const DeepCollectionEquality().hash(medium) ^
      const DeepCollectionEquality().hash(large);

  @JsonKey(ignore: true)
  @override
  _$ProfileImageCopyWith<_ProfileImage> get copyWith =>
      __$ProfileImageCopyWithImpl<_ProfileImage>(this, _$identity);

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

abstract class _ProfileImage implements ProfileImage {
  factory _ProfileImage(
      {required String? small,
      required String? medium,
      required String? large}) = _$_ProfileImage;

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

  @override
  String? get small => throw _privateConstructorUsedError;
  @override
  String? get medium => throw _privateConstructorUsedError;
  @override
  String? get large => throw _privateConstructorUsedError;
  @override
  @JsonKey(ignore: true)
  _$ProfileImageCopyWith<_ProfileImage> get copyWith =>
      throw _privateConstructorUsedError;
}


<|start_filename|>lib/models/collection.g.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'collection.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

_$_Collection _$_$_CollectionFromJson(Map<String, dynamic> json) {
  return _$_Collection(
    id: json['id'] as String?,
    title: json['title'] as String?,
    description: json['description'] as String?,
    published_at: json['published_at'] == null
        ? null
        : DateTime.parse(json['published_at'] as String),
    last_collected_at: json['last_collected_at'] == null
        ? null
        : DateTime.parse(json['last_collected_at'] as String),
    updated_at: json['updated_at'] == null
        ? null
        : DateTime.parse(json['updated_at'] as String),
    curated: json['curated'] as bool,
    featured: json['featured'] as bool,
    total_photos: json['total_photos'] as int?,
    private: json['private'] as bool,
    share_key: json['share_key'] as String?,
    tags: (json['tags'] as List<dynamic>)
        .map((e) => Tag.fromJson(e as Map<String, dynamic>))
        .toList(),
    links: CollectionLinks.fromJson(json['links'] as Map<String, dynamic>),
    user: User.fromJson(json['user'] as Map<String, dynamic>),
    cover_photo: Photo.fromJson(json['cover_photo'] as Map<String, dynamic>),
    preview_photos: (json['preview_photos'] as List<dynamic>)
        .map((e) => PreviewPhoto.fromJson(e as Map<String, dynamic>))
        .toList(),
  );
}

Map<String, dynamic> _$_$_CollectionToJson(_$_Collection instance) =>
    <String, dynamic>{
      'id': instance.id,
      'title': instance.title,
      'description': instance.description,
      'published_at': instance.published_at?.toIso8601String(),
      'last_collected_at': instance.last_collected_at?.toIso8601String(),
      'updated_at': instance.updated_at?.toIso8601String(),
      'curated': instance.curated,
      'featured': instance.featured,
      'total_photos': instance.total_photos,
      'private': instance.private,
      'share_key': instance.share_key,
      'tags': instance.tags,
      'links': instance.links,
      'user': instance.user,
      'cover_photo': instance.cover_photo,
      'preview_photos': instance.preview_photos,
    };

_$_CollectionLinks _$_$_CollectionLinksFromJson(Map<String, dynamic> json) {
  return _$_CollectionLinks(
    self: json['self'] as String?,
    html: json['html'] as String?,
    photos: json['photos'] as String?,
    related: json['related'] as String?,
  );
}

Map<String, dynamic> _$_$_CollectionLinksToJson(_$_CollectionLinks instance) =>
    <String, dynamic>{
      'self': instance.self,
      'html': instance.html,
      'photos': instance.photos,
      'related': instance.related,
    };

_$_PreviewPhoto _$_$_PreviewPhotoFromJson(Map<String, dynamic> json) {
  return _$_PreviewPhoto(
    id: json['id'] as String?,
    created_at: json['created_at'] == null
        ? null
        : DateTime.parse(json['created_at'] as String),
    updated_at: json['updated_at'] == null
        ? null
        : DateTime.parse(json['updated_at'] as String),
    blur_hash: json['blur_hash'] as String?,
    urls: Urls.fromJson(json['urls'] as Map<String, dynamic>),
  );
}

Map<String, dynamic> _$_$_PreviewPhotoToJson(_$_PreviewPhoto instance) =>
    <String, dynamic>{
      'id': instance.id,
      'created_at': instance.created_at?.toIso8601String(),
      'updated_at': instance.updated_at?.toIso8601String(),
      'blur_hash': instance.blur_hash,
      'urls': instance.urls,
    };

_$_Tag _$_$_TagFromJson(Map<String, dynamic> json) {
  return _$_Tag(
    title: json['title'] as String?,
  );
}

Map<String, dynamic> _$_$_TagToJson(_$_Tag instance) => <String, dynamic>{
      'title': instance.title,
    };


<|start_filename|>lib/models/user.g.dart<|end_filename|>
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'user.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

_$_User _$_$_UserFromJson(Map<String, dynamic> json) {
  return _$_User(
    id: json['id'] as String?,
    updated_at: json['updated_at'] == null
        ? null
        : DateTime.parse(json['updated_at'] as String),
    username: json['username'] as String?,
    name: json['name'] as String?,
    first_name: json['first_name'] as String?,
    links: UserLinks.fromJson(json['links'] as Map<String, dynamic>),
    profile_image:
        ProfileImage.fromJson(json['profile_image'] as Map<String, dynamic>),
  );
}

Map<String, dynamic> _$_$_UserToJson(_$_User instance) => <String, dynamic>{
      'id': instance.id,
      'updated_at': instance.updated_at?.toIso8601String(),
      'username': instance.username,
      'name': instance.name,
      'first_name': instance.first_name,
      'links': instance.links,
      'profile_image': instance.profile_image,
    };
