import { p as prisma, K as WebhookTriggerEvents } from "./orgDomains-eTg-cjth.js";
import { p as prepareNoShowTrigger, c as calculateMaxStartTime, s as sendWebhookPayload, l as log } from "./common-ZH6tNnxb.js";
const markAllGuestNoshowInBooking = async ({
  bookingId,
  hostsThatJoinedTheCall
}) => {
  try {
    const hostsThatJoinedTheCallEmails = hostsThatJoinedTheCall.map((h) => h.email);
    await prisma.attendee.updateMany({
      where: {
        bookingId,
        email: { notIn: hostsThatJoinedTheCallEmails }
      },
      data: { noShow: true }
    });
  } catch (err) {
    log.error("Error marking guests as no show in booking", err);
  }
};
async function triggerGuestNoShow(payload) {
  const result = await prepareNoShowTrigger(payload);
  if (!result)
    return;
  const {
    webhook,
    booking,
    hostsThatJoinedTheCall,
    didGuestJoinTheCall,
    originalRescheduledBooking,
    participants
  } = result;
  const maxStartTime = calculateMaxStartTime(booking.startTime, webhook.time, webhook.timeUnit);
  if (!didGuestJoinTheCall) {
    await sendWebhookPayload(
      webhook,
      WebhookTriggerEvents.AFTER_GUESTS_CAL_VIDEO_NO_SHOW,
      booking,
      maxStartTime,
      participants,
      originalRescheduledBooking
    );
    await markAllGuestNoshowInBooking({ bookingId: booking.id, hostsThatJoinedTheCall });
  }
}
export {
  triggerGuestNoShow
};
