-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathpaginated_news.dart
62 lines (52 loc) · 1.59 KB
/
paginated_news.dart
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// Project imports:
import 'package:notredame/features/ets/events/api-client/models/news.dart';
class PaginatedNews {
/// Page Number
final int pageNumber;
/// Page Size
final int pageSize;
/// Total Pages
final int totalPages;
/// Total Records
final int totalRecords;
/// News
final List<News> news;
PaginatedNews(
{required this.pageNumber,
required this.pageSize,
required this.totalPages,
required this.totalRecords,
required this.news});
factory PaginatedNews.fromJson(Map<String, dynamic> map) => PaginatedNews(
pageNumber: map['pageNumber'] as int,
pageSize: map['pageSize'] as int,
totalPages: map['totalPages'] as int,
totalRecords: map['totalRecords'] as int,
news: (map['data'] as List<dynamic>)
.map((e) => News.fromJson(e as Map<String, dynamic>))
.toList());
Map<String, dynamic> toJson() => {
'pageNumber': pageNumber,
'pageSize': pageSize,
'totalPages': totalPages,
'totalRecords': totalRecords,
'data': news,
};
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is PaginatedNews &&
runtimeType == other.runtimeType &&
pageNumber == other.pageNumber &&
pageSize == other.pageSize &&
totalPages == other.totalPages &&
totalRecords == other.totalRecords &&
news == other.news;
@override
int get hashCode =>
pageNumber.hashCode ^
pageSize.hashCode ^
totalPages.hashCode ^
totalRecords.hashCode ^
news.hashCode;
}