Files
qvyun/backend/app/requests/pagination.go
2025-01-10 16:54:33 +08:00

31 lines
595 B
Go

package requests
import "github.com/samber/lo"
type Pager struct {
Pagination `json:",inline"`
Total int64 `json:"total"`
Items interface{} `json:"items"`
}
type Pagination struct {
Page int64 `json:"page" form:"page" query:"page"`
Limit int64 `json:"limit" form:"limit" query:"limit"`
}
func (filter *Pagination) Offset() int64 {
return (filter.Page - 1) * filter.Limit
}
func (filter *Pagination) Format() *Pagination {
if filter.Page <= 0 {
filter.Page = 1
}
if !lo.Contains([]int64{10, 20, 50, 100}, filter.Limit) {
filter.Limit = 10
}
return filter
}