feat: add pagination to get bookings endpoints [v2] (#21173)

* feat: add pagination to get bookings endpoints [v2]

* add decorators for pagination

* fix: ensure correct values

* code review comment

* fixup! code review comment
This commit is contained in:
Morgan
2025-05-12 10:09:56 +02:00
committed by GitHub
parent 1277f5e9f7
commit 77054d92df
10 changed files with 242 additions and 13 deletions
+64 -1
View File
@@ -1617,6 +1617,7 @@
"description": "The number of items to return",
"example": 10,
"schema": {
"default": 100,
"type": "number"
}
},
@@ -1627,6 +1628,7 @@
"description": "The number of items to skip",
"example": 0,
"schema": {
"default": 0,
"type": "number"
}
},
@@ -5357,6 +5359,7 @@
"description": "The number of items to return",
"example": 10,
"schema": {
"default": 100,
"type": "number"
}
},
@@ -5367,6 +5370,7 @@
"description": "The number of items to skip",
"example": 0,
"schema": {
"default": 0,
"type": "number"
}
}
@@ -6666,6 +6670,7 @@
"description": "The number of items to return",
"example": 10,
"schema": {
"default": 100,
"type": "number"
}
},
@@ -6676,6 +6681,7 @@
"description": "The number of items to skip",
"example": 0,
"schema": {
"default": 0,
"type": "number"
}
},
@@ -22123,6 +22129,60 @@
},
"required": ["status", "data"]
},
"PaginationMetaDto": {
"type": "object",
"properties": {
"totalItems": {
"type": "number",
"minimum": 0,
"description": "The total number of items available across all pages, matching the query criteria.",
"example": 123
},
"remainingItems": {
"type": "number",
"minimum": 0,
"description": "The number of items remaining to be fetched *after* the current page. Calculated as: `totalItems - (skip + itemsPerPage)`.",
"example": 103
},
"itemsPerPage": {
"type": "number",
"minimum": 1,
"description": "The maximum number of items requested per page.",
"example": 10
},
"currentPage": {
"type": "number",
"minimum": 1,
"description": "The current page number being returned.",
"example": 2
},
"totalPages": {
"type": "number",
"minimum": 0,
"description": "The total number of pages available.",
"example": 13
},
"hasNextPage": {
"type": "boolean",
"description": "Indicates if there is a subsequent page available after the current one.",
"example": true
},
"hasPreviousPage": {
"type": "boolean",
"description": "Indicates if there is a preceding page available before the current one.",
"example": true
}
},
"required": [
"totalItems",
"remainingItems",
"itemsPerPage",
"currentPage",
"totalPages",
"hasNextPage",
"hasPreviousPage"
]
},
"GetBookingsOutput_2024_08_13": {
"type": "object",
"properties": {
@@ -22151,11 +22211,14 @@
},
"description": "Array of booking data, which can contain either BookingOutput objects or RecurringBookingOutput objects"
},
"pagination": {
"$ref": "#/components/schemas/PaginationMetaDto"
},
"error": {
"type": "object"
}
},
"required": ["status", "data"]
"required": ["status", "data", "pagination"]
},
"RescheduleBookingInput_2024_08_13": {
"type": "object",