<% 
// Helper function: clone existing query and replace params
function buildQuery(newParams) {
  const merged = { ...(typeof query !== 'undefined' && query ? query : {}), ...newParams };
  return Object.entries(merged)
    .map(([key, val]) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`)
    .join('&');
}
%>
<% if(total>0){%>
<div class="d-flex justify-content-between mt-4">
  <h6>Total records: <%= total %></h6>
  <nav>
    <ul class="pagination pagination-sm">
      <!-- Previous -->
      <li class="page-item <%= page <= 1 ? 'disabled' : '' %>">
        <a class="page-link" 
           href="<%= url %>?<%= buildQuery({ page: page - 1, limit }) %>" 
           aria-label="Previous">
          <span aria-hidden="true">&laquo;</span>
        </a>
      </li>

      <!-- Page Numbers -->
      <% for (let i = 1; i <= totalPages; i++) { %>
        <li class="page-item <%= page === i ? 'active' : '' %>">
          <a class="page-link" 
             href="<%= url %>?<%= buildQuery({ page: i, limit }) %>">
            <%= i %>
          </a>
        </li>
      <% } %>

      <!-- Next -->
      <li class="page-item <%= page >= totalPages ? 'disabled' : '' %>">
        <a class="page-link" 
           href="<%= url %>?<%= buildQuery({ page: page + 1, limit }) %>" 
           aria-label="Next">
          <span aria-hidden="true">&raquo;</span>
        </a>
      </li>
    </ul>
  </nav>
</div>
<% } %>