diff options
Diffstat (limited to 'lib/models/album.dart')
-rw-r--r-- | lib/models/album.dart | 37 |
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"], + ); + } +} |