diff --git a/apps/web/modules/event-types/views/event-types-listing-view.tsx b/apps/web/modules/event-types/views/event-types-listing-view.tsx
index 192783d562..0e9c6bcfb7 100644
--- a/apps/web/modules/event-types/views/event-types-listing-view.tsx
+++ b/apps/web/modules/event-types/views/event-types-listing-view.tsx
@@ -166,11 +166,7 @@ const Item = ({ type, group, readOnly }: { type: EventType; group: EventTypeGrou
return readOnly ? (
{content()}
-
+
) : (
diff --git a/packages/features/eventtypes/components/EventTypeDescription.tsx b/packages/features/eventtypes/components/EventTypeDescription.tsx
index f22e2a0ca7..b54cce64b8 100644
--- a/packages/features/eventtypes/components/EventTypeDescription.tsx
+++ b/packages/features/eventtypes/components/EventTypeDescription.tsx
@@ -16,11 +16,10 @@ import { Clock, Users, RefreshCw, Clipboard, Plus, User, Lock } from "@calcom/ui
export type EventTypeDescriptionProps = {
eventType: Pick<
z.infer,
- Exclude | "metadata"
+ Exclude | "metadata" | "seatsPerTimeSlot"
> & {
descriptionAsSafeHTML?: string | null;
recurringEvent: Prisma.JsonValue;
- seatsPerTimeSlot?: number;
};
className?: string;
shortenDescription?: boolean;
diff --git a/packages/lib/server/eventTypeSelect.ts b/packages/lib/server/eventTypeSelect.ts
new file mode 100644
index 0000000000..ddc51e6557
--- /dev/null
+++ b/packages/lib/server/eventTypeSelect.ts
@@ -0,0 +1,45 @@
+import { Prisma } from "@calcom/prisma/client";
+
+export const eventTypeSelect = Prisma.validator()({
+ id: true,
+ teamId: true,
+ schedulingType: true,
+ userId: true,
+ metadata: true,
+ description: true,
+ hidden: true,
+ slug: true,
+ length: true,
+ title: true,
+ requiresConfirmation: true,
+ position: true,
+ offsetStart: true,
+ profileId: true,
+ eventName: true,
+ parentId: true,
+ timeZone: true,
+ periodType: true,
+ periodStartDate: true,
+ periodEndDate: true,
+ periodDays: true,
+ periodCountCalendarDays: true,
+ lockTimeZoneToggleOnBookingPage: true,
+ requiresBookerEmailVerification: true,
+ disableGuests: true,
+ hideCalendarNotes: true,
+ minimumBookingNotice: true,
+ beforeEventBuffer: true,
+ afterEventBuffer: true,
+ seatsPerTimeSlot: true,
+ onlyShowFirstAvailableSlot: true,
+ seatsShowAttendees: true,
+ seatsShowAvailabilityCount: true,
+ scheduleId: true,
+ price: true,
+ currency: true,
+ slotInterval: true,
+ successRedirectUrl: true,
+ isInstantEvent: true,
+ assignAllTeamMembers: true,
+ recurringEvent: true,
+});
diff --git a/packages/lib/server/repository/eventType.ts b/packages/lib/server/repository/eventType.ts
index bfa48b3f5b..184425bce8 100644
--- a/packages/lib/server/repository/eventType.ts
+++ b/packages/lib/server/repository/eventType.ts
@@ -6,6 +6,7 @@ import { prisma } from "@calcom/prisma";
import type { Ensure } from "@calcom/types/utils";
import { safeStringify } from "../../safeStringify";
+import { eventTypeSelect } from "../eventTypeSelect";
import { LookupTarget, ProfileRepository } from "./profile";
const log = logger.getSubLogger({ prefix: ["repository/eventType"] });
@@ -99,12 +100,15 @@ export class EventTypeRepository {
if (!upId) return [];
const lookupTarget = ProfileRepository.getLookupTarget(upId);
const profileId = lookupTarget.type === LookupTarget.User ? null : lookupTarget.id;
- const include = {
+ const select = {
+ ...eventTypeSelect,
// TODO: As required by getByViewHandler - Make it configurable
team: {
- include: {
+ select: {
+ id: true,
eventTypes: {
- include: {
+ select: {
+ id: true,
users: { select: userSelect },
},
},
@@ -140,7 +144,7 @@ export class EventTypeRepository {
userId: lookupTarget.id,
...where,
},
- include,
+ select,
orderBy,
});
}
@@ -164,7 +168,7 @@ export class EventTypeRepository {
],
...where,
},
- include,
+ select,
orderBy,
});
} else {
@@ -172,7 +176,7 @@ export class EventTypeRepository {
where: {
profileId,
},
- include,
+ select,
orderBy,
});
}
diff --git a/packages/lib/server/repository/membership.ts b/packages/lib/server/repository/membership.ts
index a607552ea4..1825617e1f 100644
--- a/packages/lib/server/repository/membership.ts
+++ b/packages/lib/server/repository/membership.ts
@@ -4,6 +4,7 @@ import { Prisma } from "@calcom/prisma/client";
import logger from "../../logger";
import { safeStringify } from "../../safeStringify";
+import { eventTypeSelect } from "../eventTypeSelect";
import { LookupTarget, ProfileRepository } from "./profile";
const log = logger.getSubLogger({ prefix: ["repository/membership"] });
@@ -103,11 +104,14 @@ export class MembershipRepository {
select: teamParentSelect,
},
eventTypes: {
- include: {
+ select: {
+ ...eventTypeSelect,
team: {
- include: {
+ select: {
+ id: true,
eventTypes: {
- include: {
+ select: {
+ id: true,
users: { select: userSelect },
},
},
diff --git a/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts b/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts
index 75b84bd399..d0422a96d8 100644
--- a/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts
+++ b/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts
@@ -115,7 +115,7 @@ export const getByViewerHandler = async ({ ctx, input }: GetByViewerOptions) =>
})
)
),
- metadata: eventType.metadata ? EventTypeMetaDataSchema.parse(eventType.metadata) : undefined,
+ metadata: eventType.metadata ? EventTypeMetaDataSchema.parse(eventType.metadata) : null,
children: await Promise.all(
(eventType.children || []).map(async (c) => ({
...c,