export function pagination(page = 1, limit = 20) {
  const safePage = Math.max(1, Number(page) || 1);
  const safeLimit = Math.min(100, Math.max(1, Number(limit) || 20));
  return { page: safePage, limit: safeLimit, skip: (safePage - 1) * safeLimit };
}

export function safeSort<T extends string>(sortBy: string | undefined, sortOrder: string | undefined, allowed: readonly T[]) {
  const field = allowed.includes(sortBy as T) ? (sortBy as T) : allowed[0];
  const order = sortOrder?.toLowerCase() === 'asc' ? 'asc' : 'desc';
  return { [field]: order } as Record<T, 'asc' | 'desc'>;
}
