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

View Source

A FloorPlan is an explicit representation of a collection of similar accommodations, allowing the provision of common information (room counts, sizes, layout diagrams) and offers for rental or sale. In typical use, some SEO.JSONLD.ApartmentComplex has an accommodationFloorPlan which is a SEO.JSONLD.FloorPlan. A FloorPlan is always in the context of a particular place, either a larger SEO.JSONLD.ApartmentComplex or a single SEO.JSONLD.Apartment. The visual/spatial aspects of a floor plan (i.e. room layout, see wikipedia) can be indicated using image.

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

Summary

Types

t()

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

Types

attrs()

@type attrs() ::
  %{
    optional(:amenity_feature) =>
      SEO.JSONLD.LocationFeatureSpecification.t() | map(),
    optional(:floor_size) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:is_plan_for_apartment) => SEO.JSONLD.Accommodation.t() | map(),
    optional(:layout_image) =>
      URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
    optional(:number_of_accommodation_units) =>
      SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:number_of_available_accommodation_units) =>
      SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:number_of_bathrooms_total) => integer(),
    optional(:number_of_bedrooms) =>
      SEO.JSONLD.QuantitativeValue.t() | map() | number(),
    optional(:number_of_full_bathrooms) => number(),
    optional(:number_of_partial_bathrooms) => number(),
    optional(:number_of_rooms) =>
      SEO.JSONLD.QuantitativeValue.t() | map() | number(),
    optional(:pets_allowed) => String.t() | boolean(),
    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()
  }
  | [
      amenity_feature: SEO.JSONLD.LocationFeatureSpecification.t() | map(),
      floor_size: SEO.JSONLD.QuantitativeValue.t() | map(),
      is_plan_for_apartment: SEO.JSONLD.Accommodation.t() | map(),
      layout_image: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
      number_of_accommodation_units: SEO.JSONLD.QuantitativeValue.t() | map(),
      number_of_available_accommodation_units:
        SEO.JSONLD.QuantitativeValue.t() | map(),
      number_of_bathrooms_total: integer(),
      number_of_bedrooms: SEO.JSONLD.QuantitativeValue.t() | map() | number(),
      number_of_full_bathrooms: number(),
      number_of_partial_bathrooms: number(),
      number_of_rooms: SEO.JSONLD.QuantitativeValue.t() | map() | number(),
      pets_allowed: String.t() | boolean(),
      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 "FloorPlan", 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 FloorPlan JSON-LD map.

Fields

  • :amenity_feature - An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.
  • :floor_size - The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard.
  • :is_plan_for_apartment - Indicates some accommodation that this floor plan describes.
  • :layout_image - A schematic image showing the floorplan layout.
  • :number_of_accommodation_units - Indicates the total (available plus unavailable) number of accommodation units in an SEO.JSONLD.ApartmentComplex, or the number of accommodation units for a specific SEO.JSONLD.FloorPlan (within its specific SEO.JSONLD.ApartmentComplex). See also numberOfAvailableAccommodationUnits.
  • :number_of_available_accommodation_units - Indicates the number of available accommodation units in an SEO.JSONLD.ApartmentComplex, or the number of accommodation units for a specific SEO.JSONLD.FloorPlan (within its specific SEO.JSONLD.ApartmentComplex). See also numberOfAccommodationUnits.
  • :number_of_bathrooms_total - The total integer number of bathrooms in some SEO.JSONLD.Accommodation, following real estate conventions as documented in RESO: "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also numberOfRooms.
  • :number_of_bedrooms - The total integer number of bedrooms in a some SEO.JSONLD.Accommodation, SEO.JSONLD.ApartmentComplex or SEO.JSONLD.FloorPlan.
  • :number_of_full_bathrooms - Number of full bathrooms - The total number of full and ¾ bathrooms in an SEO.JSONLD.Accommodation. This corresponds to the BathroomsFull field in RESO.
  • :number_of_partial_bathrooms - Number of partial bathrooms - The total number of half and ¼ bathrooms in an SEO.JSONLD.Accommodation. This corresponds to the BathroomsPartial field in RESO.
  • :number_of_rooms - The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.
  • :pets_allowed - Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.

Inherited properties

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