pagination_model.dart 927 B

123456789101112131415161718192021222324252627282930313233343536
  1. class PaginatedData<T> {
  2. final List<T> list;
  3. final int page;
  4. final int size;
  5. final int total;
  6. final int totalPages;
  7. final bool hasNext;
  8. final bool hasPrevious;
  9. const PaginatedData({
  10. required this.list,
  11. required this.page,
  12. required this.size,
  13. required this.total,
  14. this.totalPages = 0,
  15. this.hasNext = false,
  16. this.hasPrevious = false,
  17. });
  18. factory PaginatedData.fromJson(
  19. Map<String, dynamic> json,
  20. T Function(Map<String, dynamic>) fromJsonT,
  21. ) {
  22. return PaginatedData(
  23. list: (json['list'] as List<dynamic>)
  24. .map((e) => fromJsonT(e as Map<String, dynamic>))
  25. .toList(),
  26. page: json['page'] as int,
  27. size: json['size'] as int,
  28. total: json['total'] as int,
  29. totalPages: json['totalPages'] as int? ?? 0,
  30. hasNext: json['hasNext'] as bool? ?? false,
  31. hasPrevious: json['hasPrevious'] as bool? ?? false,
  32. );
  33. }
  34. }