import { WebhookTriggerEvents } from '@prisma/client'; import { z } from 'zod'; export const ZGetTeamWebhooksRequestSchema = z.object({ teamId: z.number(), }); export type TGetTeamWebhooksRequestSchema = z.infer; export const ZCreateWebhookRequestSchema = z.object({ webhookUrl: z.string().url(), eventTriggers: z .array(z.nativeEnum(WebhookTriggerEvents)) .min(1, { message: 'At least one event trigger is required' }), secret: z.string().nullable(), enabled: z.boolean(), teamId: z.number(), }); export type TCreateWebhookFormSchema = z.infer; export const ZGetWebhookByIdRequestSchema = z.object({ id: z.string(), teamId: z.number(), }); export type TGetWebhookByIdRequestSchema = z.infer; export const ZEditWebhookRequestSchema = ZCreateWebhookRequestSchema.extend({ id: z.string(), }); export type TEditWebhookRequestSchema = z.infer; export const ZDeleteWebhookRequestSchema = z.object({ id: z.string(), teamId: z.number(), }); export type TDeleteWebhookRequestSchema = z.infer; export const ZTriggerTestWebhookRequestSchema = z.object({ id: z.string(), event: z.nativeEnum(WebhookTriggerEvents), teamId: z.number(), }); export type TTriggerTestWebhookRequestSchema = z.infer;