import { z } from 'zod'; import { WebhookEventName } from './enums.js'; import { PaginationQuery } from './pagination.js'; export const CreateWebhookSubscriptionRequest = z.object({ url: z.string().url().max(2048), events: z.array(WebhookEventName).min(1), active: z.boolean().optional(), }); export type CreateWebhookSubscriptionRequest = z.infer; export const UpdateWebhookSubscriptionRequest = z .object({ url: z.string().url().max(2048).optional(), events: z.array(WebhookEventName).min(1).optional(), active: z.boolean().optional(), }) .refine((v) => Object.keys(v).length > 0, { message: 'At least one field required' }); export type UpdateWebhookSubscriptionRequest = z.infer; export const WebhookSubscriptionListQuery = PaginationQuery.extend({ active: z .union([z.literal('true'), z.literal('false'), z.boolean()]) .transform((v) => v === true || v === 'true') .optional(), }); export type WebhookSubscriptionListQuery = z.infer;