SEO.JSONLD.TheaterEvent (SEO v0.3.0-rc.0)

View Source

Event type: Theater performance.

Helper for building a Schema.org TheaterEvent JSON-LD structure.

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "TheaterEvent", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

Build a TheaterEvent JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:about) => SEO.JSONLD.Thing.t() | map(),
    optional(:actor) =>
      SEO.JSONLD.Person.t() | map() | SEO.JSONLD.PerformingGroup.t(),
    optional(:aggregate_rating) => SEO.JSONLD.AggregateRating.t() | map(),
    optional(:attendee) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:attendees) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:audience) => SEO.JSONLD.Audience.t() | map(),
    optional(:composer) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:contributor) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:director) => SEO.JSONLD.Person.t() | map(),
    optional(:door_time) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(),
    optional(:duration) =>
      Duration.t() | String.t() | SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:end_date) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(),
    optional(:event_attendance_mode) =>
      :mixed_event_attendance_mode
      | :offline_event_attendance_mode
      | :online_event_attendance_mode,
    optional(:event_schedule) => SEO.JSONLD.Schedule.t() | map(),
    optional(:event_status) =>
      :event_cancelled
      | :event_moved_online
      | :event_postponed
      | :event_rescheduled
      | :event_scheduled,
    optional(:funder) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:funding) => SEO.JSONLD.Grant.t() | map(),
    optional(:has_participation_offer) => SEO.JSONLD.Offer.t() | map(),
    optional(:has_sponsorship_offer) => SEO.JSONLD.Offer.t() | map(),
    optional(:in_language) => String.t() | SEO.JSONLD.Language.t() | map(),
    optional(:is_accessible_for_free) => boolean(),
    optional(:keywords) =>
      SEO.JSONLD.DefinedTerm.t() | map() | String.t() | URI.t(),
    optional(:location) =>
      String.t()
      | SEO.JSONLD.PostalAddress.t()
      | map()
      | SEO.JSONLD.VirtualLocation.t()
      | SEO.JSONLD.Place.t(),
    optional(:maximum_attendee_capacity) => integer(),
    optional(:maximum_physical_attendee_capacity) => integer(),
    optional(:maximum_virtual_attendee_capacity) => integer(),
    optional(:offers) => SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(),
    optional(:organizer) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:performer) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:performers) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:previous_start_date) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(),
    optional(:recorded_in) => SEO.JSONLD.CreativeWork.t() | map(),
    optional(:remaining_attendee_capacity) => integer(),
    optional(:review) => SEO.JSONLD.Review.t() | map(),
    optional(:sponsor) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:start_date) =>
      Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(),
    optional(:sub_event) => SEO.JSONLD.Event.t() | map(),
    optional(:sub_events) => SEO.JSONLD.Event.t() | map(),
    optional(:super_event) => SEO.JSONLD.Event.t() | map(),
    optional(:translator) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:typical_age_range) => String.t(),
    optional(:work_featured) => SEO.JSONLD.CreativeWork.t() | map(),
    optional(:work_performed) => SEO.JSONLD.CreativeWork.t() | map(),
    optional(:additional_type) => String.t() | URI.t(),
    optional(:alternate_name) => String.t(),
    optional(:description) => SEO.JSONLD.TextObject.t() | map() | String.t(),
    optional(:disambiguating_description) => String.t(),
    optional(:identifier) =>
      String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
    optional(:image) =>
      URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
    optional(:main_entity_of_page) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:name) => String.t(),
    optional(:owner) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:potential_action) => SEO.JSONLD.Action.t() | map(),
    optional(:same_as) => URI.t() | String.t(),
    optional(:subject_of) =>
      SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
    optional(:url) => URI.t() | String.t()
  }
  | [
      about: SEO.JSONLD.Thing.t() | map(),
      actor: SEO.JSONLD.Person.t() | map() | SEO.JSONLD.PerformingGroup.t(),
      aggregate_rating: SEO.JSONLD.AggregateRating.t() | map(),
      attendee: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      attendees: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      audience: SEO.JSONLD.Audience.t() | map(),
      composer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      contributor: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      director: SEO.JSONLD.Person.t() | map(),
      door_time: DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(),
      duration:
        Duration.t() | String.t() | SEO.JSONLD.QuantitativeValue.t() | map(),
      end_date: DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(),
      event_attendance_mode:
        :mixed_event_attendance_mode
        | :offline_event_attendance_mode
        | :online_event_attendance_mode,
      event_schedule: SEO.JSONLD.Schedule.t() | map(),
      event_status:
        :event_cancelled
        | :event_moved_online
        | :event_postponed
        | :event_rescheduled
        | :event_scheduled,
      funder: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      funding: SEO.JSONLD.Grant.t() | map(),
      has_participation_offer: SEO.JSONLD.Offer.t() | map(),
      has_sponsorship_offer: SEO.JSONLD.Offer.t() | map(),
      in_language: String.t() | SEO.JSONLD.Language.t() | map(),
      is_accessible_for_free: boolean(),
      keywords: SEO.JSONLD.DefinedTerm.t() | map() | String.t() | URI.t(),
      location:
        String.t()
        | SEO.JSONLD.PostalAddress.t()
        | map()
        | SEO.JSONLD.VirtualLocation.t()
        | SEO.JSONLD.Place.t(),
      maximum_attendee_capacity: integer(),
      maximum_physical_attendee_capacity: integer(),
      maximum_virtual_attendee_capacity: integer(),
      offers: SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(),
      organizer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      performer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      performers: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      previous_start_date:
        DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(),
      recorded_in: SEO.JSONLD.CreativeWork.t() | map(),
      remaining_attendee_capacity: integer(),
      review: SEO.JSONLD.Review.t() | map(),
      sponsor: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      start_date: Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(),
      sub_event: SEO.JSONLD.Event.t() | map(),
      sub_events: SEO.JSONLD.Event.t() | map(),
      super_event: SEO.JSONLD.Event.t() | map(),
      translator: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      typical_age_range: String.t(),
      work_featured: SEO.JSONLD.CreativeWork.t() | map(),
      work_performed: SEO.JSONLD.CreativeWork.t() | map(),
      additional_type: String.t() | URI.t(),
      alternate_name: String.t(),
      description: SEO.JSONLD.TextObject.t() | map() | String.t(),
      disambiguating_description: String.t(),
      identifier: String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
      image: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
      main_entity_of_page:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      name: String.t(),
      owner: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      potential_action: SEO.JSONLD.Action.t() | map(),
      same_as: URI.t() | String.t(),
      subject_of: SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
      url: URI.t() | String.t()
    ]

t()

@type t() :: %{required(String.t()) => term()}

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "TheaterEvent", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

build(attrs)

@spec build(attrs()) :: t()

Build a TheaterEvent JSON-LD map.

Fields

This type has no own properties. See the inherited properties below.

Inherited properties

Additional properties are available through the inheritance chain. See each ancestor's docs for its properties: