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

View Source

A reservation to dine at a food-related business.

Note: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations.

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

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "FoodEstablishmentReservation", 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 FoodEstablishmentReservation JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:end_time) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(),
    optional(:party_size) =>
      integer() | SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:start_time) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(),
    optional(:booking_agent) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:booking_time) => DateTime.t() | NaiveDateTime.t() | String.t(),
    optional(:broker) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:modified_time) => DateTime.t() | NaiveDateTime.t() | String.t(),
    optional(:price_currency) => String.t(),
    optional(:program_membership_used) =>
      SEO.JSONLD.ProgramMembership.t() | map(),
    optional(:provider) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:reservation_for) => SEO.JSONLD.Thing.t() | map(),
    optional(:reservation_id) => String.t(),
    optional(:reservation_status) =>
      :reservation_cancelled
      | :reservation_confirmed
      | :reservation_hold
      | :reservation_pending,
    optional(:reserved_ticket) => SEO.JSONLD.Ticket.t() | map(),
    optional(:total_price) =>
      SEO.JSONLD.PriceSpecification.t() | map() | String.t() | number(),
    optional(:under_name) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    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()
  }
  | [
      end_time: DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(),
      party_size: integer() | SEO.JSONLD.QuantitativeValue.t() | map(),
      start_time: DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(),
      booking_agent:
        SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      booking_time: DateTime.t() | NaiveDateTime.t() | String.t(),
      broker: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      modified_time: DateTime.t() | NaiveDateTime.t() | String.t(),
      price_currency: String.t(),
      program_membership_used: SEO.JSONLD.ProgramMembership.t() | map(),
      provider: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      reservation_for: SEO.JSONLD.Thing.t() | map(),
      reservation_id: String.t(),
      reservation_status:
        :reservation_cancelled
        | :reservation_confirmed
        | :reservation_hold
        | :reservation_pending,
      reserved_ticket: SEO.JSONLD.Ticket.t() | map(),
      total_price:
        SEO.JSONLD.PriceSpecification.t() | map() | String.t() | number(),
      under_name: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      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 "FoodEstablishmentReservation", 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 FoodEstablishmentReservation JSON-LD map.

Fields

  • :end_time - The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to December. For media, including audio and video, it's the time offset of the end of a clip within a larger file.

Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.

  • :party_size - Number of people the reservation should accommodate.
  • :start_time - The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to December. For media, including audio and video, it's the time offset of the start of a clip within a larger file.

Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.

Inherited properties

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