Implement event bookings

To allow organisations to sell group bookings for events within the onCourse enrolment engine. Unlike normal enrolments, we don’t know at the time of invoice who all the ‘students’ are.

An event may have multiple performances. Performances have a timetable, usually just one session but it could be multiple sessions. Tickets may have multiple price points (or discount values).

Key differences from normal classes:

  • We don’t know the student names in advance, just a number of tickets.
  • Price points cannot be based on student attributes (since we don’t know who they are at the point of sale)
  • Allow a single “student” to “enrol” multiple times in an event type class, breaking the current validation rules
  • Provide the purchaser with event tickets, instead of enrolment confirmations

Possible uses:

  • Corporate sales where you don’t know the names of students in advance, just numbers. Sell tickets but allow students to be filled in later.
  • General admission ticketing
  • Possibly we need to support different reserves (pricing allocation)

It is not a goal of this task to support reserved seating.