summaryrefslogtreecommitdiff
path: root/lib/models/album.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/models/album.dart')
-rw-r--r--lib/models/album.dart37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/models/album.dart b/lib/models/album.dart
new file mode 100644
index 0000000..a7a0f91
--- /dev/null
+++ b/lib/models/album.dart
@@ -0,0 +1,37 @@
+class Album {
+ final String title;
+ final String firstReleaseDate;
+ final List<dynamic>? secondaryTypes;
+ final String primaryTypeId;
+ final String id;
+ final String primaryType;
+ final List<dynamic>? secondaryTypeIds;
+ final String disambiguation;
+
+ Uri get coverUri =>
+ Uri.parse('https://coverartarchive.org/release-group/$id/front');
+
+ const Album({
+ required this.title,
+ required this.firstReleaseDate,
+ required this.secondaryTypes,
+ required this.primaryTypeId,
+ required this.id,
+ required this.primaryType,
+ required this.secondaryTypeIds,
+ required this.disambiguation,
+ });
+
+ factory Album.fromMap(Map<String, dynamic> map) {
+ return Album(
+ title: map["title"],
+ firstReleaseDate: map["first-release-date"],
+ secondaryTypes: map["secondary-types"],
+ primaryTypeId: map["primary-type-id"],
+ id: map["id"],
+ primaryType: map["primary-type"],
+ secondaryTypeIds: map["secondary-types-id"],
+ disambiguation: map["disambiguation"],
+ );
+ }
+}