@@ -6,9 +6,9 @@ namespace BookStore.ApiService.Models;
66public record PagedRequest
77{
88 /// <summary>
9- /// Maximum number of items allowed per page
9+ /// Default page number (1-based)
1010 /// </summary>
11- public const int MaxPageSize = 100 ;
11+ public const int DefaultPage = 1 ;
1212
1313 /// <summary>
1414 /// Page number (1-based)
@@ -21,18 +21,19 @@ public record PagedRequest
2121 public int ? PageSize { get ; init ; }
2222
2323 /// <summary>
24- /// Validates and normalizes pagination parameters
24+ /// Validates and normalizes pagination parameters using configuration options
2525 /// </summary>
26- public PagedRequest Normalize ( )
26+ public PagedRequest Normalize ( PaginationOptions options )
2727 {
28- var page = int . Max ( 1 , Page ?? 1 ) ;
29- var pageSize = int . Clamp ( PageSize ?? 20 , 1 , MaxPageSize ) ;
28+ var page = int . Max ( DefaultPage , Page ?? DefaultPage ) ;
29+ var pageSize = int . Clamp ( PageSize ?? options . DefaultPageSize , 1 , options . MaxPageSize ) ;
3030
3131 return this with { Page = page , PageSize = pageSize } ;
3232 }
3333
3434 /// <summary>
35- /// Calculates the number of items to skip
35+ /// Calculates the number of items to skip using configuration options
3636 /// </summary>
37- public int Skip => ( ( Page ?? 1 ) - 1 ) * ( PageSize ?? 20 ) ;
37+ public int GetSkip ( PaginationOptions options ) =>
38+ ( ( Page ?? DefaultPage ) - 1 ) * ( PageSize ?? options . DefaultPageSize ) ;
3839}
0 commit comments