diff --git a/apps/web/server/routers/viewer/eventTypes.tsx b/apps/web/server/routers/viewer/eventTypes.tsx index b6519406d2..53c0dd7508 100644 --- a/apps/web/server/routers/viewer/eventTypes.tsx +++ b/apps/web/server/routers/viewer/eventTypes.tsx @@ -8,7 +8,7 @@ import { _EventTypeModel, } from "@calcom/prisma/zod"; import { stringOrNumber } from "@calcom/prisma/zod-utils"; -import { createEventTypeInput } from "@calcom/prisma/zod/eventtypeCustom"; +import { createEventTypeInput } from "@calcom/prisma/zod-utils"; import { createProtectedRouter } from "@server/createRouter"; import { viewerRouter } from "@server/routers/viewer"; diff --git a/package.json b/package.json index 6dad566a7e..604e84734a 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "lint": "turbo run lint", "pre-commit": "lint-staged", "prepare": "husky install", + "postinstall": "yarn workspace @calcom/prisma generate-schemas", "start": "turbo run start --scope=\"@calcom/web\"", "test": "turbo run test", "test-playwright": "yarn playwright test", diff --git a/packages/prisma/zod-utils.ts b/packages/prisma/zod-utils.ts index 7fb41fb191..a5cd9f009f 100644 --- a/packages/prisma/zod-utils.ts +++ b/packages/prisma/zod-utils.ts @@ -3,6 +3,8 @@ import { z } from "zod"; import { LocationType } from "@calcom/lib/location"; import { slugify } from "@calcom/lib/slugify"; +import { _EventTypeModel } from "./zod/eventtype"; + export const eventTypeLocations = z.array( z.object({ type: z.nativeEnum(LocationType), address: z.string().optional() }) ); @@ -10,3 +12,19 @@ export const eventTypeLocations = z.array( 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()]); + +const createEventTypeBaseInput = _EventTypeModel + .pick({ + title: true, + slug: true, + description: true, + length: true, + teamId: true, + schedulingType: true, + }) + .refine((data) => (data.teamId ? data.teamId && data.schedulingType : true), { + path: ["schedulingType"], + message: "You must select a scheduling type for team events", + }); + +export const createEventTypeInput = createEventTypeBaseInput; diff --git a/turbo.json b/turbo.json index 7b1121aa19..cfb7b89f25 100644 --- a/turbo.json +++ b/turbo.json @@ -54,6 +54,9 @@ ], "outputs": [".next/**"] }, + "@calcom/web#dev": { + "dependsOn": ["@calcom/prisma#build"] + }, "@calcom/web#dx": { "dependsOn": ["@calcom/prisma#dx"] },