package models // PageInfo carries pagination state for templates. type PageInfo struct { CurrentPage int TotalPages int PostsPerPage int } // HasPrevious returns true if there is a previous page. func (p PageInfo) HasPrevious() bool { return p.CurrentPage > 1 } // HasNext returns true if there is a next page. func (p PageInfo) HasNext() bool { return p.CurrentPage < p.TotalPages } // PreviousPage returns the previous page number. func (p PageInfo) PreviousPage() int { return p.CurrentPage - 1 } // NextPage returns the next page number. func (p PageInfo) NextPage() int { return p.CurrentPage + 1 } // Pages returns a slice of page numbers for rendering numbered pagination. func (p PageInfo) Pages() []int { pages := make([]int, p.TotalPages) for i := range pages { pages[i] = i + 1 } return pages }