diff --git a/packages/app-store/stripepayment/lib/PaymentService.ts b/packages/app-store/stripepayment/lib/PaymentService.ts index 567c545d94..6a2aae856f 100644 --- a/packages/app-store/stripepayment/lib/PaymentService.ts +++ b/packages/app-store/stripepayment/lib/PaymentService.ts @@ -358,8 +358,8 @@ export class PaymentService implements IAbstractPaymentService { paymentData: Payment, eventTypeMetadata?: EventTypeMetadata ): Promise { - const attendeesToEmail = event.attendeeSeatId - ? event.attendees.filter(attendee => attendee.bookingSeat?.referenceUid === event.attendeeSeatId) + const attendeesToEmail = event.attendeeSeatId + ? event.attendees.filter((attendee) => attendee.bookingSeat?.referenceUid === event.attendeeSeatId) : event.attendees; await sendAwaitingPaymentEmailAndSMS( diff --git a/packages/features/bookings/lib/handleSeats/create/createNewSeat.ts b/packages/features/bookings/lib/handleSeats/create/createNewSeat.ts index d0380b39f6..7d58b7e887 100644 --- a/packages/features/bookings/lib/handleSeats/create/createNewSeat.ts +++ b/packages/features/bookings/lib/handleSeats/create/createNewSeat.ts @@ -48,8 +48,6 @@ const createNewSeat = async ( return { ...attendee, language: { translate: tAttendees, locale: attendeeLanguage ?? "en" } }; }); - evt = { ...evt, attendees: [...bookingAttendees, invitee[0]] }; - if ( eventType.seatsPerTimeSlot && eventType.seatsPerTimeSlot <= seatedBooking.attendees.filter((attendee) => !!attendee.bookingSeat).length @@ -76,9 +74,6 @@ const createNewSeat = async ( where: { uid: seatedBooking.uid, }, - include: { - attendees: true, - }, data: { attendees: { create: { @@ -108,8 +103,16 @@ const createNewSeat = async ( }, }); - evt.attendeeSeatId = attendeeUniqueId; + const newBookingSeat = await prisma.bookingSeat.findUnique({ + where: { + referenceUid: attendeeUniqueId, + }, + }); + const attendeeWithSeat = { ...inviteeToAdd, bookingSeat: newBookingSeat ?? null }; + + evt = { ...evt, attendees: [...bookingAttendees, attendeeWithSeat] }; + evt.attendeeSeatId = attendeeUniqueId; const newSeat = seatedBooking.attendees.length !== 0; /** diff --git a/packages/features/bookings/lib/handleSeats/types.d.ts b/packages/features/bookings/lib/handleSeats/types.d.ts index 3ffa7ae3d2..40a1692e29 100644 --- a/packages/features/bookings/lib/handleSeats/types.d.ts +++ b/packages/features/bookings/lib/handleSeats/types.d.ts @@ -9,6 +9,18 @@ import type { NewBookingEventType } from "../handleNewBooking/getEventTypesFromD import type { OriginalRescheduledBooking } from "../handleNewBooking/originalRescheduledBookingUtils"; export type BookingSeat = Prisma.BookingSeatGetPayload<{ include: { booking: true; attendee: true } }> | null; +export type Invitee = { + email: string; + name: string; + firstName: string; + lastName: string; + timeZone: string; + phoneNumber?: string; + language: { + translate: TFunction; + locale: string; + }; +}[]; export type NewSeatedBookingObject = { rescheduleUid: string | undefined;