function getAttendeesPage
getAttendeesPage(unnamed 0: { listingIds: number[] | null; sort: AttendeeSort; page: number; }): Promise<AttendeesPage>

Pagination counts ATTENDEES, not booking lines, so a grouped attendee row carries their complete listings list and never splits across a page boundary. listingIds decides WHICH attendees match, and the returned rows still cover all of a matched attendee's listings.

An order by id works because AUTOINCREMENT ids are unique and always rise. Each page is therefore deterministic. One extra attendee reports hasNext without a second count query. PII stays encrypted, so decrypt with decryptAttendees first.

Parameters

unnamed 0: { listingIds: number[] | null; sort: AttendeeSort; page: number; }

Return Type

Promise<AttendeesPage>

Usage

import { getAttendeesPage } from "docs/database.ts";