38 lines
1.0 KiB
Dart
38 lines
1.0 KiB
Dart
class NewsItem {
|
|
final int id;
|
|
final String title;
|
|
final String url;
|
|
final String snippet;
|
|
final String source;
|
|
final DateTime? publishedAt;
|
|
final List<String> topics;
|
|
final String? reaction;
|
|
|
|
const NewsItem({
|
|
required this.id,
|
|
required this.title,
|
|
required this.url,
|
|
required this.snippet,
|
|
required this.source,
|
|
this.publishedAt,
|
|
required this.topics,
|
|
this.reaction,
|
|
});
|
|
|
|
factory NewsItem.fromJson(Map<String, dynamic> json) => NewsItem(
|
|
id: json['id'] as int,
|
|
title: json['title'] as String? ?? '',
|
|
url: json['url'] as String? ?? '',
|
|
snippet: json['snippet'] as String? ?? '',
|
|
source: json['source'] as String? ?? '',
|
|
publishedAt: json['published_at'] != null
|
|
? DateTime.tryParse(json['published_at'] as String)
|
|
: null,
|
|
topics: (json['topics'] as List<dynamic>?)
|
|
?.cast<String>()
|
|
.toList() ??
|
|
[],
|
|
reaction: json['reaction'] as String?,
|
|
);
|
|
}
|