import 'package:flutter/foundation.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; import 'teaser_image.dart'; part 'news.freezed.dart'; part 'news.g.dart'; @freezed class News with _$News { const factory News({ String? title, TeaserImage? teaserImage, TeaserImage? brandingImage, String? date, String? type, }) = _News; factory News.fromJson(Map json) => _$NewsFromJson(json); } // old manual implementation: // final String sophoraId; // final String externalId; // final String title; // final TeaserImage? teaserImage; // final TeaserImage? brandingImage; // final String date; // final String updateCheckUrl; // final int regionId; // final String details; // final String detailsweb; // final String shareURL; // final String topline; // final String firstSentence; // final String type; // News({ // required this.sophoraId, // required this.externalId, // required this.title, // this.teaserImage, // this.brandingImage, // required this.date, // required this.updateCheckUrl, // required this.regionId, // required this.details, // required this.detailsweb, // required this.shareURL, // required this.topline, // required this.firstSentence, // required this.type, // }); // News copyWith({ // String? sophoraId, // String? externalId, // String? title, // TeaserImage? teaserImage, // TeaserImage? brandingImage, // String? date, // String? updateCheckUrl, // int? regionId, // String? details, // String? detailsweb, // String? shareURL, // String? topline, // String? firstSentence, // String? type, // }) { // return News( // sophoraId: sophoraId ?? this.sophoraId, // externalId: externalId ?? this.externalId, // title: title ?? this.title, // teaserImage: teaserImage ?? this.teaserImage, // brandingImage: brandingImage ?? this.brandingImage, // date: date ?? this.date, // updateCheckUrl: updateCheckUrl ?? this.updateCheckUrl, // regionId: regionId ?? this.regionId, // details: details ?? this.details, // detailsweb: detailsweb ?? this.detailsweb, // shareURL: shareURL ?? this.shareURL, // topline: topline ?? this.topline, // firstSentence: firstSentence ?? this.firstSentence, // type: type ?? this.type, // ); // } // Map toMap() { // return { // 'sophoraId': sophoraId, // 'externalId': externalId, // 'title': title, // 'teaserImage': teaserImage?.toMap(), // 'brandingImage': brandingImage?.toMap(), // 'date': date, // 'updateCheckUrl': updateCheckUrl, // 'regionId': regionId, // 'details': details, // 'detailsweb': detailsweb, // 'shareURL': shareURL, // 'topline': topline, // 'firstSentence': firstSentence, // 'type': type, // }; // } // factory News.fromMap(Map map) { // return News( // sophoraId: map['sophoraId'] ?? '', // externalId: map['externalId'] ?? '', // title: map['title'] ?? '', // teaserImage: map['teaserImage'] != null // ? TeaserImage.fromMap(map['teaserImage']) // : null, // brandingImage: map['brandingImage'] != null // ? TeaserImage.fromMap(map['brandingImage']) // : null, // date: map['date'] ?? '', // updateCheckUrl: map['updateCheckUrl'] ?? '', // regionId: map['regionId']?.toInt() ?? 0, // details: map['details'] ?? '', // detailsweb: map['detailsweb'] ?? '', // shareURL: map['shareURL'] ?? '', // topline: map['topline'] ?? '', // firstSentence: map['firstSentence'] ?? '', // type: map['type'] ?? '', // ); // } // String toJson() => json.encode(toMap()); // factory News.fromJson(String source) => News.fromMap(json.decode(source)); // }