'Returns a list of non-expired modes for a course ID that have a set minimum price.
If no modes have been set, returns an empty list.
Args:
course_id (CourseKey): The course to find paid modes for.
Returns:
A list of CourseModes with a minimum price.'

@classmethod
def paid_modes_for_course(cls, course_id):

    now = datetime.now(pytz.UTC)
    found_course_modes = cls.objects.filter(((Q(course_id=course_id) & Q(min_price__gt=0)) & (Q(_expiration_datetime__isnull=True) | Q(_expiration_datetime__gte=now))))
    return [mode.to_tuple() for mode in found_course_modes]
