The class and its file (lib/models/source.dart) follow the glossary term. Persisted JSON keys are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
31 lines
693 B
Dart
31 lines
693 B
Dart
import 'source.dart';
|
|
|
|
class Article {
|
|
const Article({
|
|
required this.title,
|
|
required this.link,
|
|
required this.source,
|
|
this.published,
|
|
this.excerpt = '',
|
|
this.contentHtml = '',
|
|
this.imageUrl,
|
|
this.author,
|
|
});
|
|
|
|
final String title;
|
|
final String link;
|
|
final Source source;
|
|
final DateTime? published;
|
|
|
|
/// Short plain-text teaser from the feed (description / summary).
|
|
final String excerpt;
|
|
|
|
/// Full article HTML if the feed ships it (content:encoded / atom content).
|
|
final String contentHtml;
|
|
final String? imageUrl;
|
|
final String? author;
|
|
|
|
/// The link is unique enough to identify an article across refreshes.
|
|
String get id => link;
|
|
}
|