interface BookingsService {
    addAddOnsWithReprice(
        bookingId: string,
        addOns: AddOn[],
        repricedInsuranceAddOn?: InsurancePolicyAddOn,
    ): Promise<SavedBooking>;
    addPaymentToBooking(
        orderId: string,
        payment: models.bookings.BookingPayment,
    ): Promise<BaseBooking>;
    cancelBooking(bookingId: string): Promise<null | BaseBooking>;
    confirmBookingsByOrderIds(
        tripId: string,
        orderIds: string[],
    ): Promise<number>;
    confirmPendingBookingsForTrip(
        tripId: string,
    ): Promise<null | BookingUpdate[]>;
    count(query: Query<BaseBooking>): Promise<number>;
    countSingleSupplementTotalBooked(tripId: string): Promise<number>;
    create(entity: BaseBooking): Promise<SavedBooking>;
    deleteAddOnWithReprice(
        bookingId: string,
        addOnId: string,
        repricedInsuranceAddOn?: InsurancePolicyAddOn,
    ): Promise<SavedBooking>;
    findActiveBookingsByTripId(tripId: string): Promise<BaseBooking[]>;
    findBookingByTripAndTravelerUser(
        tripId: string,
        travelerUserId: string,
    ): Promise<null | SavedBooking>;
    findById(
        id: string,
        listQueryOptions?: ListQueryOptions<SavedBooking>,
    ): Promise<null | SavedBooking>;
    findOne(
        query: Query<BaseBooking>,
        fields?: SelectQuery<BaseBooking>[],
    ): Promise<null | SavedBooking>;
    getActiveSpotsBookedByTripId(tripId: string): Promise<number>;
    getBookingAndTripSummary(orderId: string): Promise<BookingTripSummary>;
    getBookingByOrderId(orderId: string): Promise<SavedBooking>;
    getBookingByOrderIdWithOptionals(orderId: string): Promise<SavedBooking>;
    list(
        query?: Query<BaseBooking>,
        fields?: SelectQuery<BaseBooking>[],
        listQueryOptions?: ListQueryOptions<BaseBooking>,
    ): Promise<BaseBooking[]>;
    manageBookingUpdates(
        bookingId: string,
        bookingUpdates: Partial<SavedBooking>,
        payment?: models.checkout.BookingCreateParams.Payment,
    ): Promise<SavedBooking>;
    quoteBookingReprice(
        bookingId: string,
        bookingUpdate: BookingRepriceUpdate,
    ): Promise<BookingRepriceQuote>;
    refundDiscountOnBookingAndReprice(
        booking: SavedBooking,
        discountCode: string,
        paymentIntentId?: string,
    ): SavedBooking;
    refundPayment(
        bookingId: string,
        paymentId: string,
        affectedItems: RefundAffectedItem[],
    ): Promise<BaseBooking>;
    reinstateBooking(
        bookingId: string,
        status: string,
    ): Promise<null | SavedBooking>;
    repriceBooking(
        oldBooking: SavedBooking,
        newBooking: BookingRepriceUpdate,
    ): Promise<BookingRepriceResult>;
    update(
        bookingId: string,
        entity: Partial<BaseBooking>,
    ): Promise<null | BaseBooking>;
    updateWithReprice(
        bookingId: string,
        entity: BaseBooking,
    ): Promise<null | BaseBooking>;
    validatePrePostAccomodationsForTravelerRooms(
        updatedBooking: SavedBooking,
        oldBooking: SavedBooking,
    ): Promise<void>;
    validateSingleSupplementAvailability(
        trip: Pick<SavedTrip, "_id" | "additionalCosts">,
        addOns?: (AddOn | CheckoutAddOn)[],
    ): Promise<void>;
    validateSingleSupplementForTravelerRooms(
        booking: Pick<SavedBooking, "addOns" | "travelersRooms">,
    ): void;
    validateUpdateWithReprice(
        bookingId: string,
        bookingWithUpdates: BaseBooking,
    ): Promise<void>;
}

Methods

  • Confirm bookings using the provided order ids for a given trip

    Parameters

    • tripId: string

      where the bookings belong to

    • orderIds: string[]

    Returns Promise<number>

  • Returns the total number of single supplements booked for a given trip. It will count only the pending and confirmed bookings.

    Parameters

    • tripId: string

    Returns Promise<number>