(
// Migration isn't being done right now, to allow a revert if needed
const legacyAppsData = {
stripe: {
- enabled: eventType.price > 0,
+ enabled: !!eventType.price,
// Price default is 0 in DB. So, it would always be non nullish.
price: eventType.price,
// Currency default is "usd" in DB.So, it would also be available always
diff --git a/packages/features/eventtypes/components/EventTypeDescription.tsx b/packages/features/eventtypes/components/EventTypeDescription.tsx
index 26e6688b35..fa43ff6482 100644
--- a/packages/features/eventtypes/components/EventTypeDescription.tsx
+++ b/packages/features/eventtypes/components/EventTypeDescription.tsx
@@ -4,6 +4,7 @@ import { useMemo } from "react";
import type { z } from "zod";
import { classNames, parseRecurringEvent } from "@calcom/lib";
+import getPaymentAppData from "@calcom/lib/getPaymentAppData";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { baseEventTypeSelect } from "@calcom/prisma";
import type { EventTypeModel } from "@calcom/prisma/zod";
@@ -37,6 +38,8 @@ export const EventTypeDescription = ({
[eventType.recurringEvent]
);
+ const paymentAppData = getPaymentAppData(eventType);
+
return (
<>
@@ -89,13 +92,13 @@ export const EventTypeDescription = ({
)}
- {eventType.price > 0 && (
+ {paymentAppData.enabled && (
{new Intl.NumberFormat(i18n.language, {
style: "currency",
- currency: eventType.currency,
- }).format(eventType.price / 100)}
+ currency: paymentAppData.currency,
+ }).format(paymentAppData.price / 100)}
)}
diff --git a/packages/trpc/server/routers/viewer/bookings.tsx b/packages/trpc/server/routers/viewer/bookings.tsx
index e3c08d29ee..fccc6460ed 100644
--- a/packages/trpc/server/routers/viewer/bookings.tsx
+++ b/packages/trpc/server/routers/viewer/bookings.tsx
@@ -23,7 +23,7 @@ import { isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib";
import logger from "@calcom/lib/logger";
import { getTranslation } from "@calcom/lib/server";
import { bookingMinimalSelect } from "@calcom/prisma";
-import { bookingConfirmPatchBodySchema } from "@calcom/prisma/zod-utils";
+import { bookingConfirmPatchBodySchema, EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
import type { AdditionalInformation, CalendarEvent, Person } from "@calcom/types/Calendar";
import { TRPCError } from "@trpc/server";
@@ -252,6 +252,8 @@ export const bookingsRouter = router({
eventName: true,
price: true,
recurringEvent: true,
+ currency: true,
+ metadata: true,
team: {
select: {
name: true,
@@ -365,6 +367,9 @@ export const bookingsRouter = router({
eventType: {
...booking.eventType,
recurringEvent: parseRecurringEvent(booking.eventType?.recurringEvent),
+ price: booking.eventType?.price || 0,
+ currency: booking.eventType?.currency || "usd",
+ metadata: EventTypeMetaDataSchema.parse(booking.eventType?.metadata || {}),
},
startTime: booking.startTime.toISOString(),
endTime: booking.endTime.toISOString(),
diff --git a/packages/trpc/server/routers/viewer/eventTypes.ts b/packages/trpc/server/routers/viewer/eventTypes.ts
index 5aad1143db..6efdf2132e 100644
--- a/packages/trpc/server/routers/viewer/eventTypes.ts
+++ b/packages/trpc/server/routers/viewer/eventTypes.ts
@@ -7,7 +7,6 @@ import { z } from "zod";
import getAppKeysFromSlug from "@calcom/app-store/_utils/getAppKeysFromSlug";
import type { LocationObject } from "@calcom/app-store/locations";
import { DailyLocationType } from "@calcom/app-store/locations";
-import { stripeDataSchema } from "@calcom/app-store/stripepayment/lib/server";
import getApps, { getAppFromLocationValue, getAppFromSlug } from "@calcom/app-store/utils";
import updateChildrenEventTypes from "@calcom/features/ee/managed-event-types/lib/handleChildrenEventTypes";
import { validateIntervalLimitOrder } from "@calcom/lib";
@@ -647,27 +646,6 @@ export const eventTypesRouter = router({
};
}
- if (input?.price || input.metadata?.apps?.stripe?.price) {
- data.price = input.price || input.metadata?.apps?.stripe?.price;
- const paymentCredential = await ctx.prisma.credential.findFirst({
- where: {
- userId: ctx.user.id,
- type: {
- contains: "_payment",
- },
- },
- select: {
- type: true,
- key: true,
- },
- });
-
- if (paymentCredential?.type === "stripe_payment") {
- const { default_currency } = stripeDataSchema.parse(paymentCredential.key);
- data.currency = default_currency;
- }
- }
-
const connectedLink = await ctx.prisma.hashedLink.findFirst({
where: {
eventTypeId: input.id,