Skip to content

Instantly share code, notes, and snippets.

@evgenyt1
Created November 29, 2019 16:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save evgenyt1/84f407e529814f5d73d9a02fa1f3d412 to your computer and use it in GitHub Desktop.
Save evgenyt1/84f407e529814f5d73d9a02fa1f3d412 to your computer and use it in GitHub Desktop.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://expofp.com/floorplans/datajs.schema.json",
"title": "ExpoFP data.js Schema",
"type": "object",
"required": ["title", "homeUrl", "logo", "booths", "exhibitors", "categories"],
"additionalProperties": false,
"properties": {
"title": {
"type": "string"
},
"subtitle": {
"type": "string"
},
"homeUrl": {
"type": "string",
"format": "uri"
},
"registerUrl": {
"type": "string",
"format": "uri"
},
"logo": {
"type": "string"
},
"hideCompanies": {
"type": "boolean",
"description": "Show all booths as sold, but completely remove company details"
},
"gtag": {
"type": "string",
"description": "Google Analytics or Tag Manager ID"
},
"trackerUrl": {
"type": "string",
"format": "uri",
"description": "Endpoint URL to send user events. E.g. https://expofp.com/api/track?type=view-exhibitor&value=123"
},
"reserveInstructions": {
"type": "string"
},
"sendLoginLinkUrl": {
"type": "string",
"format": "uri",
"description": "Endpoint URL to send intructions to exhibitors to edit their data. Should accept `{id: number}` JSON payloads."
},
"boothTerm": {
"type": "string",
"description": "Booth term (typically 'booth' or 'stand')"
},
"booths": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"description": "Regular booth",
"required": ["id", "name"],
"additionalProperties": false,
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"exhibitors": {
"type": "array",
"items": {
"type": "number"
}
},
"type": {
"type": "string"
},
"price": {
"type": "string"
},
"buyUrl": {
"type": "string"
},
"reserveUrl": {
"type": "string"
},
"onHold": {
"type": "boolean"
},
"description": {
"type": "string",
"description": "HTML, if set, overrides reserveInstructions"
}
}
},
{
"type": "object",
"description": "Special booth",
"required": ["id", "name"],
"additionalProperties": false,
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"special": {
"type": "boolean",
"description": "Always true"
},
"title": {
"type": "string"
},
"description": {
"type": "string",
"description": "HTML"
}
}
}
]
}
},
"exhibitors": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "name"],
"additionalProperties": false,
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "number"
}
},
"featured": {
"type": "boolean"
},
"advertise": {
"type": "boolean"
},
"description": {
"type": "string"
},
"logo": {
"type": "string"
},
"address": {
"type": "string"
},
"address2": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"zip": {
"type": "string"
},
"country": {
"type": "string"
},
"phone1": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"website": {
"type": "string",
"format": "uri"
},
"facebook": {
"type": "string",
"format": "uri"
},
"instagram": {
"type": "string",
"format": "uri"
},
"linkedin": {
"type": "string",
"format": "uri"
},
"twitter": {
"type": "string",
"format": "uri"
},
"googlePlus": {
"type": "string",
"format": "uri"
},
"xing": {
"type": "string",
"format": "uri"
},
"youtube": {
"type": "string",
"format": "uri"
}
}
}
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "name"],
"additionalProperties": false,
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment