docs: def availableDurations(self):
          '''
          A lesson can always be booked for the length of a single slot, but this method
          checks if multiple slots are available.  This method requires that slots are
          non-overlapping, which needs to be enforced on slot save.
          '''
          potential_slots = InstructorAvailabilitySlot.objects.filter(
              instructor=self.instructor,
              location=self.location,
              room=self.room,
              pricingTier=self.pricingTier,
              startTime__gte=self.startTime,
              startTime__lte=self.startTime + timedelta(minutes=getConstant('privateLessons__maximumLessonLength')),
          ).exclude(id=self.id).order_by('startTime')
  
          duration_list = [self.duration,]
          last_start = self.startTime
          last_duration = self.duration
          max_duration = self.duration
  
          for slot in potential_slots:
              if max_duration + slot.duration > getConstant('privateLessons__maximumLessonLength'):
                  break
              if (
                  slot.startTime == last_start + timedelta(minutes=last_duration) and
                  slot.isAvailable
              ):
                  duration_list.append(max_duration + slot.duration)
                  last_start = slot.startTime
                  last_duration = slot.duration
                  max_duration += slot.duration
  
          return duration_list