fluffychat/lib/pangea/payload_client/paginated_response.dart
Wilson d4e58d2827
feat: integrate course translation group (#4209)
* integrate course translation group

* Update lib/pangea/payload_client/models/course_plan/cms_course_plan_translation_group.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* formatting

---------

Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: ggurdin <ggurdin@gmail.com>
2025-10-01 09:15:26 -04:00

43 lines
1.2 KiB
Dart

/// Response model for paginated results from PayloadCMS
class PayloadPaginatedResponse<T> {
final List<T> docs;
final int totalDocs;
final int limit;
final int page;
final int totalPages;
final bool hasNextPage;
final bool hasPrevPage;
final int? nextPage;
final int? prevPage;
PayloadPaginatedResponse({
required this.docs,
required this.totalDocs,
required this.limit,
required this.page,
required this.totalPages,
required this.hasNextPage,
required this.hasPrevPage,
this.nextPage,
this.prevPage,
});
factory PayloadPaginatedResponse.fromJson(
Map<String, dynamic> json,
T Function(Map<String, dynamic>) fromJsonT,
) {
return PayloadPaginatedResponse<T>(
docs: (json['docs'] as List<dynamic>)
.map((e) => fromJsonT(e as Map<String, dynamic>))
.toList(),
totalDocs: json['totalDocs'] as int,
limit: json['limit'] as int,
page: json['page'] as int,
totalPages: json['totalPages'] as int,
hasNextPage: json['hasNextPage'] as bool,
hasPrevPage: json['hasPrevPage'] as bool,
nextPage: json['nextPage'] as int?,
prevPage: json['prevPage'] as int?,
);
}
}