class NewsItem { final int id; final String title; final String url; final String snippet; final String source; final DateTime? publishedAt; final List 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 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?) ?.cast() .toList() ?? [], reaction: json['reaction'] as String?, ); }