MVF CMS Extension
The CMS Extension adds a number of properties to the MVF, all under the base enterprise
property
This extra data is only available to certain CMS clients, and should not be used directly without
discussing the implications with your Mappedin representative.
In particular, everything in this extension is OPTIONAL, because much of it will eventually be promoted to better, more standard MVF extensions, and deprecated out of this one. Others are only for use by the SDK.
If there is a piece of information available in the CMS Extension and another extension, USE THE OTHER EXTENSION.
Common Sub-Schemas
Most likely, if the CMS Extension is used, it will be for one of the following sub-schemas:
Enterprise Venue
An Enterprise Venue adds extra enterprise data to the Enterprise Venue the MVF describes. The slug
is the unique identifier for the venue.
type enterprise: {
venue: {
id: EnterpriseVenueId,
slug: string,
defaultLanguage: Language,
languages: Language[],
countrycode: string,
logo: string,
mappedinWebUrl: string,
topLocations: EnterpriseLocationId[],
operationHours: OpeningHoursSpecification[],
coverImage: string,
},
& WithDetails(['name']),
& WithExtra,
}
Enterprise Categories
Enterprise Categories add extra data to an existing LocationCategory.
They MUST link to a LocationCategory by categoryId
, they do not replace them.
type enterprise: {
categories: {
id: EnterpriseCategoryId,
categoryId: LocationCategoryId,
color: string,
sortOrder: number,
iconFromDefaultList: string,
picture: string,
}[],
};
Enterprise Locations
Enterprise Locations add extra enterprise data to an existing Location. They MUST link to a Location by locationId
, they do not replace them.
type enterprise: {
locations: {
id: EnterpriseLocationId,
locationId: LocationId,
type: string,
sortOrder: number,
tags: string[],
picture: string,
states: {
start: string,
end: string,
type: LocationStateType,
}[],
siblingGroups: {
label: string,
siblings: LocationId[], // Note this links to the LocationId, not the EnterpriseLocationId.
}[],
gallery: { caption: string, image: string, embeddedUrl: string }[],
showFloatingLabelWhenImagePresent: boolean,
amenity: string,
showLogo: boolean,
}[],
};