package service

import "gorm.io/gorm"

func Paginate(current, size int64) func(db *gorm.DB) *gorm.DB {
	// 如果页码是-1,就不分页👋
	if current == -1 {
		return func(db *gorm.DB) *gorm.DB {
			return db
		}
	}
	// 分页
	return func(db *gorm.DB) *gorm.DB {
		if current == 0 {
			current = 1
		}
		if size < 1 {
			size = 10
		}
		// 计算偏移量
		offset := (current - 1) * size
		// 返回组装结果
		return db.Offset(int(offset)).Limit(int(size))
	}
}