package data import "gorm.io/gorm" func paginationLimitOffset(page, size, maxSize int) (limit, offset int) { limit = size if maxSize > 0 && size > maxSize { limit = maxSize } if limit <= 0 { return 0, 0 } if page <= 0 { page = 1 } return limit, (page - 1) * limit } func applyPagination(db *gorm.DB, page, size, maxSize int) *gorm.DB { limit, offset := paginationLimitOffset(page, size, maxSize) if limit == 0 { return db } return db.Offset(offset).Limit(limit) } func applyRequiredPagination(db *gorm.DB, page, size, maxSize int) *gorm.DB { limit, offset := paginationLimitOffset(page, size, maxSize) return db.Offset(offset).Limit(limit) }