summaryrefslogtreecommitdiff
path: root/lib/models/album.dart
blob: a7a0f9118385f7e4bf9623ba7088aa5b0657cf19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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"],
    );
  }
}