import { z } from 'zod';

export const paginationMetadataSchema = z.object({
  nextCursor: z.string().optional(),
  hasMore: z.boolean().optional(),
  limit: z.number(),
});

export const paginatedResponseSchema = <T extends z.ZodTypeAny>(itemSchema: T) => {
  return z.object({
    data: z.array(itemSchema),
    meta: paginationMetadataSchema,
  });
};
