26 lines
691 B
Go
26 lines
691 B
Go
package utils
|
|
|
|
import "math"
|
|
|
|
type PageViewModel struct {
|
|
Total int `json:"total"`
|
|
PageNumber int `json:"pageNumber"`
|
|
PageSize int `json:"pageSize"`
|
|
TotalPages int `json:"totalPages"`
|
|
HasPrevious bool `json:"hasPrevious"`
|
|
HasNext bool `json:"hasNext"`
|
|
}
|
|
|
|
// NewPageViewModel creates a new PageViewModel with calculated fields
|
|
func NewPageViewModel(count, pageNumber, pageSize int) *PageViewModel {
|
|
totalPages := int(math.Ceil(float64(count) / float64(pageSize)))
|
|
|
|
return &PageViewModel{
|
|
Total: count,
|
|
PageNumber: pageNumber,
|
|
PageSize: pageSize,
|
|
TotalPages: totalPages,
|
|
HasPrevious: pageNumber > 1,
|
|
HasNext: pageNumber < totalPages,
|
|
}
|
|
}
|