export interface PageParams { page: number; limit: number; skip: number; } export function parsePage(query: Record): PageParams { const page = Math.max(1, parseInt(String(query.page ?? "1"), 10) || 1); const limit = Math.min(100, Math.max(1, parseInt(String(query.limit ?? "20"), 10) || 20)); return { page, limit, skip: (page - 1) * limit }; } export function paginatedResponse( data: T[], total: number, { page, limit }: PageParams ) { return { data, pagination: { page, limit, total, totalPages: Math.ceil(total / limit), }, }; }