Files
calendso/packages/prisma/zod-utils.ts
sean-brydon 7fd149fd2e Users Phone Number Option (#2669)
* Users Phone Number Option

* Implemented improvments

* Add validation to form

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-05-16 09:50:12 -06:00

29 lines
971 B
TypeScript

import { Frequency as RRuleFrequency } from "rrule";
import { z } from "zod";
import { LocationType } from "@calcom/core/location";
import { slugify } from "@calcom/lib/slugify";
export const eventTypeLocations = z.array(
z.object({
type: z.nativeEnum(LocationType),
address: z.string().optional(),
link: z.string().url().optional(),
hostPhoneNumber: z.string().optional(),
})
);
// Matching RRule.Options: rrule/dist/esm/src/types.d.ts
export const recurringEvent = z.object({
dtstart: z.date().optional(),
interval: z.number().optional(),
count: z.number().optional(),
freq: z.nativeEnum(RRuleFrequency).optional(),
until: z.date().optional(),
tzid: z.string().optional(),
});
export const eventTypeSlug = z.string().transform((val) => slugify(val.trim()));
export const stringToDate = z.string().transform((a) => new Date(a));
export const stringOrNumber = z.union([z.string().transform((v) => parseInt(v, 10)), z.number().int()]);