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

View Source

A financial product for the loaning of an amount of money, or line of credit, under agreed terms and charges.

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

Summary

Types

t()

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

Types

attrs()

@type attrs() ::
  %{
    optional(:amount) => SEO.JSONLD.MonetaryAmount.t() | map() | number(),
    optional(:currency) => String.t(),
    optional(:grace_period) => Duration.t() | String.t(),
    optional(:loan_repayment_form) =>
      SEO.JSONLD.RepaymentSpecification.t() | map(),
    optional(:loan_term) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:loan_type) => String.t() | URI.t(),
    optional(:recourse_loan) => boolean(),
    optional(:renegotiable_loan) => boolean(),
    optional(:required_collateral) => SEO.JSONLD.Thing.t() | map() | String.t(),
    optional(:annual_percentage_rate) =>
      SEO.JSONLD.QuantitativeValue.t() | map() | number(),
    optional(:fees_and_commissions_specification) => String.t() | URI.t(),
    optional(:interest_rate) =>
      SEO.JSONLD.QuantitativeValue.t() | map() | number(),
    optional(:aggregate_rating) => SEO.JSONLD.AggregateRating.t() | map(),
    optional(:area_served) =>
      SEO.JSONLD.GeoShape.t()
      | map()
      | SEO.JSONLD.AdministrativeArea.t()
      | SEO.JSONLD.Place.t()
      | String.t(),
    optional(:audience) => SEO.JSONLD.Audience.t() | map(),
    optional(:available_channel) => SEO.JSONLD.ServiceChannel.t() | map(),
    optional(:award) => String.t(),
    optional(:brand) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Brand.t(),
    optional(:broker) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:category) =>
      String.t()
      | URI.t()
      | SEO.JSONLD.Thing.t()
      | map()
      | :aerobic_activity
      | :anaerobic_activity
      | :balance
      | :flexibility
      | :leisure_time_activity
      | :occupational_activity
      | :strength_training
      | SEO.JSONLD.CategoryCode.t(),
    optional(:has_certification) => SEO.JSONLD.Certification.t() | map(),
    optional(:has_offer_catalog) => SEO.JSONLD.OfferCatalog.t() | map(),
    optional(:hours_available) =>
      SEO.JSONLD.OpeningHoursSpecification.t() | map(),
    optional(:is_related_to) =>
      SEO.JSONLD.Service.t() | map() | SEO.JSONLD.Product.t(),
    optional(:is_similar_to) =>
      SEO.JSONLD.Service.t() | map() | SEO.JSONLD.Product.t(),
    optional(:logo) =>
      URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
    optional(:offers) => SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(),
    optional(:produces) => SEO.JSONLD.Thing.t() | map(),
    optional(:provider) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:provider_mobility) => String.t(),
    optional(:review) => SEO.JSONLD.Review.t() | map(),
    optional(:service_area) =>
      SEO.JSONLD.GeoShape.t()
      | map()
      | SEO.JSONLD.AdministrativeArea.t()
      | SEO.JSONLD.Place.t(),
    optional(:service_audience) => SEO.JSONLD.Audience.t() | map(),
    optional(:service_output) => SEO.JSONLD.Thing.t() | map(),
    optional(:service_type) =>
      :basic_income
      | :business_support
      | :disability_support
      | :health_care
      | :one_time_payments
      | :paid_leave
      | :parental_support
      | :unemployment_support
      | String.t(),
    optional(:slogan) => String.t(),
    optional(:terms_of_service) => String.t() | URI.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()
  }
  | [
      amount: SEO.JSONLD.MonetaryAmount.t() | map() | number(),
      currency: String.t(),
      grace_period: Duration.t() | String.t(),
      loan_repayment_form: SEO.JSONLD.RepaymentSpecification.t() | map(),
      loan_term: SEO.JSONLD.QuantitativeValue.t() | map(),
      loan_type: String.t() | URI.t(),
      recourse_loan: boolean(),
      renegotiable_loan: boolean(),
      required_collateral: SEO.JSONLD.Thing.t() | map() | String.t(),
      annual_percentage_rate:
        SEO.JSONLD.QuantitativeValue.t() | map() | number(),
      fees_and_commissions_specification: String.t() | URI.t(),
      interest_rate: SEO.JSONLD.QuantitativeValue.t() | map() | number(),
      aggregate_rating: SEO.JSONLD.AggregateRating.t() | map(),
      area_served:
        SEO.JSONLD.GeoShape.t()
        | map()
        | SEO.JSONLD.AdministrativeArea.t()
        | SEO.JSONLD.Place.t()
        | String.t(),
      audience: SEO.JSONLD.Audience.t() | map(),
      available_channel: SEO.JSONLD.ServiceChannel.t() | map(),
      award: String.t(),
      brand: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Brand.t(),
      broker: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      category:
        String.t()
        | URI.t()
        | SEO.JSONLD.Thing.t()
        | map()
        | :aerobic_activity
        | :anaerobic_activity
        | :balance
        | :flexibility
        | :leisure_time_activity
        | :occupational_activity
        | :strength_training
        | SEO.JSONLD.CategoryCode.t(),
      has_certification: SEO.JSONLD.Certification.t() | map(),
      has_offer_catalog: SEO.JSONLD.OfferCatalog.t() | map(),
      hours_available: SEO.JSONLD.OpeningHoursSpecification.t() | map(),
      is_related_to: SEO.JSONLD.Service.t() | map() | SEO.JSONLD.Product.t(),
      is_similar_to: SEO.JSONLD.Service.t() | map() | SEO.JSONLD.Product.t(),
      logo: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
      offers: SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(),
      produces: SEO.JSONLD.Thing.t() | map(),
      provider: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      provider_mobility: String.t(),
      review: SEO.JSONLD.Review.t() | map(),
      service_area:
        SEO.JSONLD.GeoShape.t()
        | map()
        | SEO.JSONLD.AdministrativeArea.t()
        | SEO.JSONLD.Place.t(),
      service_audience: SEO.JSONLD.Audience.t() | map(),
      service_output: SEO.JSONLD.Thing.t() | map(),
      service_type:
        :basic_income
        | :business_support
        | :disability_support
        | :health_care
        | :one_time_payments
        | :paid_leave
        | :parental_support
        | :unemployment_support
        | String.t(),
      slogan: String.t(),
      terms_of_service: String.t() | URI.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 "LoanOrCredit", 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 LoanOrCredit JSON-LD map.

Fields

  • :amount - The amount of money.
  • :currency - The currency in which the monetary amount is expressed.

Use standard formats: ISO 4217 currency format, e.g. "USD"; Ticker symbol for cryptocurrencies, e.g. "BTC"; well known names for Local Exchange Trading Systems (LETS) and other currency types, e.g. "Ithaca HOUR".

  • :grace_period - The period of time after any due date that the borrower has to fulfil its obligations before a default (failure to pay) is deemed to have occurred.
  • :loan_repayment_form - A form of paying back money previously borrowed from a lender. Repayment usually takes the form of periodic payments that normally include part principal plus interest in each payment.
  • :loan_term - The duration of the loan or credit agreement.
  • :loan_type - The type of a loan or credit.
  • :recourse_loan - The only way you get the money back in the event of default is the security. Recourse is where you still have the opportunity to go back to the borrower for the rest of the money.
  • :renegotiable_loan - Whether the terms for payment of interest can be renegotiated during the life of the loan.
  • :required_collateral - Assets required to secure loan or credit repayments. It may take form of third party pledge, goods, financial instruments (cash, securities, etc.)

Inherited properties

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