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

View Source

A MemberProgramTier specifies a tier under a loyalty (member) program, for example "gold".

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

Summary

Types

t()

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

Types

attrs()

@type attrs() ::
  %{
    optional(:has_tier_benefit) =>
      :tier_benefit_loyalty_points
      | :tier_benefit_loyalty_price
      | :tier_benefit_loyalty_returns
      | :tier_benefit_loyalty_shipping,
    optional(:has_tier_requirement) =>
      SEO.JSONLD.UnitPriceSpecification.t()
      | map()
      | SEO.JSONLD.MonetaryAmount.t()
      | SEO.JSONLD.CreditCard.t()
      | String.t(),
    optional(:is_tier_of) => SEO.JSONLD.MemberProgram.t() | map(),
    optional(:membership_points_earned) =>
      number() | SEO.JSONLD.QuantitativeValue.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()
  }
  | [
      has_tier_benefit:
        :tier_benefit_loyalty_points
        | :tier_benefit_loyalty_price
        | :tier_benefit_loyalty_returns
        | :tier_benefit_loyalty_shipping,
      has_tier_requirement:
        SEO.JSONLD.UnitPriceSpecification.t()
        | map()
        | SEO.JSONLD.MonetaryAmount.t()
        | SEO.JSONLD.CreditCard.t()
        | String.t(),
      is_tier_of: SEO.JSONLD.MemberProgram.t() | map(),
      membership_points_earned:
        number() | SEO.JSONLD.QuantitativeValue.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 "MemberProgramTier", 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 MemberProgramTier JSON-LD map.

Fields

  • :has_tier_benefit - A member benefit for a particular tier of a loyalty program. One of: :tier_benefit_loyalty_points, :tier_benefit_loyalty_price, :tier_benefit_loyalty_returns, :tier_benefit_loyalty_shipping.
  • :has_tier_requirement - A requirement for a user to join a membership tier, for example: a CreditCard if the tier requires sign up for a credit card, A UnitPriceSpecification if the user is required to pay a (periodic) fee, or a MonetaryAmount if the user needs to spend a minimum amount to join the tier. If a tier is free to join then this property does not need to be specified.
  • :is_tier_of - The member program this tier is a part of.
  • :membership_points_earned - The number of membership points earned by the member. If necessary, the unitText can be used to express the units the points are issued in. (E.g. stars, miles, etc.)

Inherited properties

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