parks/parkTypes.js


/**
 * Possible types of queue
 * @enum
 */
export const queueType = Object.freeze({
  // your standard "stand-by queueing"
  standBy: 'STANDBY',
  // identical to standby, but one guest at a time
  singleRider: 'SINGLE_RIDER',
  // virtual queue or "classic" paper fast-pass style system
  //  can reserve a spot for a later time
  returnTime: 'RETURN_TIME',
  // special type, "boarding group"
  //  guests reserve a slot to enter the attracion, but the time is not known
  //  "boarding groups" are called in sequence when capacity allows
  // eg. Rise of the Resistance at Disney
  boardingGroup: 'BOARDING_GROUP',
  // upcharge type, "paid return time"
  //  example: Shanghai Disneyland or Disneyland Paris
  //  guests can pay to get a faster return time
  paidReturnTime: 'PAID_RETURN_TIME',
  // upcharge type, paid standby or "express pass"
  //  guests can pay for a day pass to use an "express" or separate "fast lane" queue
  // eg. Express Pass at Universal, or Fastlane at Knott's Berry Farm
  paidStandBy: 'PAID_STANDBY',
});

/**
 * Possible types of state for a return time queue
 * @enum
 */
export const returnTimeState = Object.freeze({
  // there are places still available
  available: 'AVAILABLE',
  // more slots will be available later
  temporarilyFull: 'TEMP_FULL',
  // all slots have been reserved for the day
  finished: 'FINISHED',
});

/**
 * Possible types for boarding groups
 * @enum
 */
export const boardingGroupState = Object.freeze({
  // new boarding groups are available
  available: 'AVAILABLE',
  // boarding group allocations are not currently available, but may be later
  paused: 'PAUSED',
  // boarding groups currently not open
  closed: 'CLOSED',
});

/**
 * Status an attraction can be in (Operating, Down, etc.)
 * @enum
 */
export const statusType = Object.freeze({
  operating: 'OPERATING',
  down: 'DOWN',
  closed: 'CLOSED',
  refurbishment: 'REFURBISHMENT',
});

/**
 * Entity types
 * @enum
 */
export const entityType = Object.freeze({
  destination: 'DESTINATION',
  park: 'PARK',
  attraction: 'ATTRACTION',
  restaurant: 'RESTAURANT',
  hotel: 'HOTEL',
  show: 'SHOW',
});

/**
 * All known attraction types (ride, show, etc.)
 * @enum
 */
export const attractionType = Object.freeze({
  unknown: 'UNKNOWN',
  ride: 'RIDE',
  show: 'SHOW',
  transport: 'TRANSPORT',
  parade: 'PARADE',
  meetAndGreet: 'MEET_AND_GREET',
  // TODO - water pool areas? what do we call these?
  other: 'OTHER',
});

/**
 * All possible schedule types
 * @enum
 */
export const scheduleType = Object.freeze({
  operating: 'OPERATING', // normal park operating hours
  ticketed: 'TICKETED_EVENT', // ticketed event. Halloween Horror nights etc.
  private: 'PRIVATE_EVENT',
  extraHours: 'EXTRA_HOURS', // "extra magic hours", "early park admission", etc.
  informational: 'INFO', // some non-operating hours, listed for information (eg. "You can now park hop")
});

/**
 * All possible Tag types for attractions
 * @enum
 */
export const tagType = Object.freeze({
  location: 'LOCATION',
  fastPass: 'FASTPASS',
  mayGetWet: 'MAY_GET_WET',
  unsuitableForPregnantPeople: 'UNSUITABLE_PREGNANT',
  minimumHeight: 'MINIMUM_HEIGHT',
  maximumHeight: 'MAXIMUM_HEIGHT',
  onRidePhoto: 'ONRIDE_PHOTO',
  singleRider: 'SINGLE_RIDER',
  childSwap: 'CHILD_SWAP',
});