docs: def persist_booking(booking, user):
      """
      Ties an in-progress booking from a session to a user when the user logs in.
  
      If we don't do this, the booking will be lost, because on a login, the
      old session will be deleted and a new one will be created. Since the
      booking has a FK to the session, it would be deleted as well when the user
      logs in.
  
      We assume that a user can only have one booking that is in-progress.
      Therefore we will delete any existing in-progress bookings of this user
      before tying the one from the session to the user.
  
      TODO: Find a more generic solution for this, as this assumes that there is
      a status called inprogress and that a user can only have one such booking.
  
      :param booking: The booking that should be tied to the user.
      :user: The user the booking should be tied to.
  
      """
      if booking is not None:
          existing_bookings = Booking.objects.filter(
              user=user, booking_status__slug='inprogress').exclude(
              pk=booking.pk)
          existing_bookings.delete()
  
          booking.session = None
          booking.user = user
          booking.save()