import 'package:freezed_annotation/freezed_annotation.dart';

part 'teaser_image_url.freezed.dart';
part 'teaser_image_url.g.dart';

@freezed
class TeaserImageUrl with _$TeaserImageUrl {
  const factory TeaserImageUrl({
    String? imageurl,
  }) = _TeaserImageUrl;

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

// old manual implementation:

// class TeaserImageUrl {
//   final String imageurl;

//   TeaserImageUrl({
//     required this.imageurl,
//   });

//   TeaserImageUrl copyWith({
//     String? imageurl,
//   }) {
//     return TeaserImageUrl(
//       imageurl: imageurl ?? this.imageurl,
//     );
//   }

//   Map<String, dynamic> toMap() {
//     return {
//       'imageurl': imageurl,
//     };
//   }

//   factory TeaserImageUrl.fromMap(Map<String, dynamic> map) {
//     return TeaserImageUrl(
//       imageurl: map['imageurl'] ?? '',
//     );
//   }

//   String toJson() => json.encode(toMap());

//   factory TeaserImageUrl.fromJson(String source) =>
//       TeaserImageUrl.fromMap(json.decode(source));

//   @override
//   String toString() => 'TeaserImageUrl(imageurl: $imageurl)';

//   @override
//   bool operator ==(Object other) {
//     if (identical(this, other)) return true;

//     return other is TeaserImageUrl && other.imageurl == imageurl;
//   }

//   @override
//   int get hashCode => imageurl.hashCode;
// }
