Schema Structure
This category uses the standard QR code category structure.Components Used
This category uses the following components:Schema
Copy
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"title": "Business card category",
"examples": [],
"additionalProperties": false,
"items": {
"type": "object",
"required": [
"type",
"data"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"enum": [
"page_layout",
"design_info",
"profile_info",
"contact_details",
"social_media_profiles",
"page_settings"
]
},
"data": {
"type": "object"
}
},
"allOf": [
{
"if": {
"properties": {
"type": {
"const": "page_layout"
}
}
},
"then": {
"properties": {
"data": {
"type": "object",
"properties": {
"templateName": {
"type": "string",
"enum": [
"template1",
"template2",
"template3",
"template4",
"template5",
"template6",
"template7"
]
}
}
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "design_info"
}
}
},
"then": {
"properties": {
"data": {
"$ref": "components/design_info.json"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "profile_info"
}
}
},
"then": {
"properties": {
"data": {
"type": "object",
"required": [
"first_name"
],
"additionalProperties": false,
"properties": {
"first_name": {
"type": "string",
"minLength": 2,
"maxLength": 100
},
"last_name": {
"type": "string",
"minLength": 2,
"maxLength": 100
},
"pronoun": {
"type": "string",
"maxLength": 30
},
"designation": {
"type": "string",
"minLength": 2,
"maxLength": 100
},
"company": {
"type": "string",
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 2000
},
"image": {
"type": "object",
"required": [
"url"
],
"additionalProperties": false,
"properties": {
"url": {
"type": "string",
"pattern": "(https?://.*\\.(png|jpeg|jpg|svg|PNG|JPEG|JPG|SVG))$"
}
}
},
"companyLogo": {
"type": "object",
"required": [
"url"
],
"additionalProperties": false,
"properties": {
"url": {
"type": "string",
"pattern": "(https?://.*\\.(png|jpeg|jpg|svg|PNG|JPEG|JPG|SVG))$"
}
}
}
}
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "contact_details"
}
}
},
"then": {
"properties": {
"data": {
"type": "object",
"required": [],
"additionalProperties": false,
"properties": {
"emails": {
"type": "array",
"items": {
"type": "object",
"required": [
"email"
],
"additionalProperties": false,
"properties": {
"email": {
"type": "string",
"format": "email",
"minLength": 5,
"maxLength": 100,
"pattern": "^\\S+@\\S+\\.\\S+$"
},
"label": {
"type": "string"
}
}
}
},
"phoneNumbers": {
"type": "array",
"items": {
"type": "object",
"required": [
"phoneNumber"
],
"additionalProperties": false,
"properties": {
"phoneNumber": {
"type": "string",
"maxLength": 30,
"pattern": "^(\\d{1,20})$|^((\\+\\d{1,3}([- ])?\\(?\\d\\)?([- ])?\\d{1,5})|(\\(?\\d{2,6}\\)?))([- ])?(\\d{3,4})([- ])?(\\d{4})([- ])?((x|ext|[;,])([- ])?\\d{1,5})*[,;]?$"
},
"label": {
"type": "string"
}
}
}
},
"website": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"additionalProperties": false,
"properties": {
"url": {
"type": "string",
"maxLength": 100,
"format": "uri",
"pattern": "(http://www\\.|https://www\\.|http://|https://)?[a-z0-9]+([\\-.][a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,5})?(/.*)?$"
},
"label": {
"type": "string"
}
}
}
},
"addresses": {
"type": "array",
"items": {
"type": "object",
"required": [],
"additionalProperties": false,
"properties": {
"address": {
"type": "string",
"maxLength": 300
},
"label": {
"type": "string"
},
"hasMapLocation": {
"type": "boolean"
},
"location": {
"$ref": "components/_base_map.json#properties/location"
}
}
}
},
"customFields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"additionalProperties": false,
"properties": {
"field": {
"type": "string",
"maxLength": 100
},
"label": {
"type": "string"
}
}
}
}
}
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "social_media_profiles"
}
}
},
"then": {
"properties": {
"data": {
"type": "object",
"required": [
"profiles"
],
"additionalProperties": false,
"properties": {
"profiles": {
"type": "array",
"items": {
"type": "object",
"required": [
"data",
"field",
"key"
],
"additionalProperties": false,
"properties": {
"data": {
"type": "string"
},
"field": {
"type": "string",
"enum": [
"url",
"handle",
"id",
"tel",
"email"
]
},
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"tracking": {
"type": "object",
"required": [
"id",
"tag"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "^E[a-zA-Z0-9_]{5}$"
},
"tag": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
"name": {
"type": "string"
}
}
}
}
}
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "page_settings"
}
}
},
"then": {
"properties": {
"data": {
"$ref": "components/page_settings.json"
}
}
}
}
]
}
}