diff --git a/packages/prisma/zod-utils.ts b/packages/prisma/zod-utils.ts index 114387d79a..44d9202f75 100644 --- a/packages/prisma/zod-utils.ts +++ b/packages/prisma/zod-utils.ts @@ -58,6 +58,20 @@ export const recurringEventType = z }) .nullable(); +// dayjs iso parsing is very buggy - cant use :( - turns ISO string into Date object +export const iso8601 = z.string().transform((val, ctx) => { + const time = Date.parse(val); + if (!time) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: "Invalid ISO Date", + }); + } + const d = new Date(); + d.setTime(time); + return d; +}); + export const bookingLimitsType = z .object({ PER_DAY: z.number().optional(),