From 15eeaf7c8189b9dd8d605d93913b14ccb28e520b Mon Sep 17 00:00:00 2001 From: Chin Yee Wen Date: Thu, 13 Aug 2026 15:12:30 +0800 Subject: [PATCH] fix: totalItems/totalPages missing from PagingData JSON serialization --- .../src/main/kotlin/ai/neuon/utility/paging/PagingData.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/src/main/kotlin/ai/neuon/utility/paging/PagingData.kt b/core/src/main/kotlin/ai/neuon/utility/paging/PagingData.kt index 5e445a7..af55b69 100644 --- a/core/src/main/kotlin/ai/neuon/utility/paging/PagingData.kt +++ b/core/src/main/kotlin/ai/neuon/utility/paging/PagingData.kt @@ -26,7 +26,7 @@ import kotlin.math.roundToLong * ## buildPagingJsonObject * - Serializes the pagination metadata into JSON format: * - "config" → Contains the current page index and page size. - * - "page" → Can include the total number of pages if totalItemsCount is set. + * - "page" → Includes "totalItems" and "totalPages" when totalItemsCount is set. */ data class PagingData( val i: Int, val pageSize: Int, val totalItemsCount: Long? = null, @@ -52,13 +52,15 @@ data class PagingData( put("size", JsonPrimitive(pageSize)) } putJsonObject("page") { - totalItemsCount?.also { itemCount -> - max( + totalItemsCount?.let { itemCount -> + val totalPages = max( 1, ceil( itemCount.toFloat() .div(pageSize) ).roundToLong() ) + put("totalItems", JsonPrimitive(itemCount)) + put("totalPages", JsonPrimitive(totalPages)) } } }