import z from "zod/v4"; import { schemaTitle } from "../utils.js"; export const DEFAULT_LIMIT = 50; export const Total = z.coerce.number().int().min(0); export const Limit = z.coerce.number().int().min(0); export const pageOptions = ( schema: T, cursor: C, ) => z .object({ limit: Limit.default(DEFAULT_LIMIT), cursor: cursor.optional(), }) .meta({ title: `${schemaTitle(schema)}PageOptions`, }); export const paginated = (item: T) => z .object({ total: Total, limit: Limit, items: z.array(item), }) .meta({ title: `${schemaTitle(item)}s`, });