jobs-monorepo/internal/utils/pagination.go
2026-01-26 17:33:48 +05:00

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,
}
}