package utils

type OffsetPaginationError struct {
	Page     int
	Pages    int
	NextPage int
	LastPage int
}

func (p *OffsetPaginationError) Error() string {
	return "Not an error, just for offsetbased pagination."
}

func NewOffsetPaginationError(page int, pages int) error {
	var nextPage int
	if page+1 <= pages {
		nextPage = page + 1
	} else {
		nextPage = -1
	}

	return &OffsetPaginationError{Page: page, Pages: pages, NextPage: nextPage, LastPage: page - 1}
}

type KeysetPaginationError struct {
	Key         int
	NextKey     int
	PreviousKey int
}

func (p *KeysetPaginationError) Error() string {
	return "Not an error, just for Keysetbased pagination."
}

func NewKeysetPaginationError(key int, next int, previous int) error {
	return &KeysetPaginationError{Key: key, NextKey: next, PreviousKey: previous}
}
