paginate method

  1. @override
Future<Map<String, dynamic>> paginate({
  1. int perPage = 15,
  2. List<String> columns = const ['*'],
  3. String? pageName,
  4. int? page,
})
override

Implementation

@override
Future<Map<String, dynamic>> paginate({
  int perPage = 15,
  List<String> columns = const ['*'],
  String? pageName,
  int? page,
}) async {
  int currentPage = page ?? 1;
  int total = await count();
  final lastPage = (total / perPage).ceil();
  final offset = (currentPage - 1) * perPage;
  super.take(perPage).skip(offset);
  final pageData = await get();
  final isFirst = currentPage == 1;
  final isLast = currentPage == lastPage;
  final hasMore = currentPage < lastPage;

  return PaginatedResult(
          data: pageData,
          currentPage: currentPage,
          perPage: perPage,
          total: total,
          lastPage: lastPage,
          isFirst: isFirst,
          isLast: isLast,
          hasMore: hasMore)
      .toMap();
}