forked from ebhomengo/niki
36 lines
710 B
Go
36 lines
710 B
Go
package postgres
|
|
|
|
import "time"
|
|
|
|
type RequestPagination struct {
|
|
PageNumber int64 `json:"page_number"`
|
|
LastTimeStamp time.Time `json:"last_time_stamp"`
|
|
}
|
|
|
|
type ResponsePagination struct {
|
|
PageNumber int64 `json:"page_number"`
|
|
PageSize int64 `json:"page_size"`
|
|
ShowableNextPagesNum int64 `json:"showable_next_pages_num"`
|
|
}
|
|
|
|
type DBPagination struct {
|
|
LastTimeStamp time.Time
|
|
PageNumber int64
|
|
MaxNextPages int64
|
|
PageSize int64
|
|
}
|
|
|
|
func ComputeNextPages(listLen int64, pageSize int64, maxNextPages int64) int64 {
|
|
|
|
pages := float64(listLen) / float64(pageSize)
|
|
|
|
for i := maxNextPages - 1; i >= 0; i-- {
|
|
if pages > float64(i) {
|
|
return i + 1
|
|
}
|
|
}
|
|
|
|
return 0
|
|
|
|
}
|