Sink/schemas/query.ts
ccbikai af5724f3c1 feat: add configurable list query limit
Extracts list query limit into runtime configuration
Updates default pagination limit in query schema

Makes the list query limit configurable across the application rather than hardcoding it to 500, improving flexibility for different deployment scenarios.
2024-12-25 12:14:38 +08:00

27 lines
905 B
TypeScript

import { z } from 'zod'
const listQueryLimit = +useRuntimeConfig().listQueryLimit
export const QuerySchema = z.object({
id: z.string().optional(),
startAt: z.coerce.number().int().safe().optional(),
endAt: z.coerce.number().int().safe().optional(),
url: z.string().optional(),
slug: z.string().optional(),
referer: z.string().optional(),
country: z.string().optional(),
region: z.string().optional(),
city: z.string().optional(),
timezone: z.string().optional(),
language: z.string().optional(),
os: z.string().optional(),
browser: z.string().optional(),
browserType: z.string().optional(),
device: z.string().optional(),
deviceType: z.string().optional(),
limit: z.coerce.number().int().safe().default(listQueryLimit),
})
export const FilterSchema = QuerySchema.omit({ id: true, startAt: true, endAt: true, limit: true }).extend({
index1: z.string().optional(),
})