{
  "defaultFields": {
    "address1": {
      "required": false,
      "visible": true,
      "displayName": "Address line 1",
      "placeholder": "Address line 1"
    },
    "address2": {
      "required": false,
      "visible": true,
      "displayName": "Address line 2",
      "placeholder": "Address line 2"
    },
    "city": {
      "required": false,
      "visible": true,
      "displayName": "City",
      "placeholder": "City"
    },
    "stateProvinceRegion": {
      "required": false,
      "visible": true,
      "displayName": "State",
      "placeholder": "State or province"
    },
    "country": {
      "required": false,
      "visible": true,
      "displayName": "Country",
      "placeholder": ""
    },
    "zipOrPostalCode": {
      "required": false,
      "visible": true,
      "displayName": "Zip code",
      "placeholder": "Zip or postal code"
    },
    "employeeCode": {
      "required": false,
      "visible": false,
      "displayName": "Visitor code",
      "placeholder": "Visitor code",
      "enableGenerate": true
    },
    "firstName": {
      "required": false,
      "visible": false,
      "displayName": "First name",
      "placeholder": "First name"
    },
    "lastName": {
      "required": false,
      "visible": false,
      "displayName": "Last name",
      "placeholder": "Last name"
    },
    "email": {
      "required": false,
      "visible": true,
      "displayName": "Email",
      "placeholder": "E-mail"
    },
    "personRole": {
      "required": false,
      "visible": true,
      "displayName": "Role",
      "placeholder": ""
    },
    "primaryTelephone": {
      "required": false,
      "visible": true,
      "displayName": "Phone",
      "placeholder": "Phone number"
    },
    "barCode": {
      "required": false,
      "visible": true,
      "displayName": "Barcode",
      "placeholder": "Barcode"
    },
    "rfid": {
      "required": false,
      "visible": true,
      "displayName": "RFID",
      "placeholder": "RFID"
    },
    "primaryVisitorGroup": {
      "required": false,
      "visible": true,
      "displayName": "RFID",
      "placeholder": "RFID"
    }
  },
  "customFields": {
    "form": [
      {
        "type": "section",
        "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
        "items": [{
          "title": "Ticket ID",
          "type": "section",
          "htmlClass": "input-group",
          "items": [{
            "title": "Ticket ID",
            "type": "text",
            "key": "employeeCode",
            "feedback": false,
            "placeholder": "Ticket ID",
            "htmlClass": "input-md",
            "required": true,
            "disableSuccessState": false,
            "disableErrorState": false
          },
            {
              "type": "button",
              "htmlClass": "input-group-btn schema-form-input-addon",
              "title": "Scan",
              "style": "btn-primary",
              "onClick": "(function() { console.log(\"Scanning ticket...\"); window.callbackObj.readBarcode() })"
            }
          ]
        }]
      },
      {
        "title": "Name",
        "key": "name",
        "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
        "type": "text",
        "placeholder": "Full name",
        "required": true,
        "feedback": false,
        "disableSuccessState": false,
        "disableErrorState": false
      },
      {
        "title": "Age",
        "name": "age",
        "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
        "key": "age",
        "type": "number",
        "placeholder": "Age (In years)",
        "required": false,
        "feedback": false,
        "disableSuccessState": false,
        "disableErrorState": false
      },
      {
        "title": "Time",
        "type": "template",
        "key": "time",
        "template": "<timepicker-pop class=\"tp-popup-inline\" sf-field-model schema-validate='form' name=\"shiftStartTime\" hour-step=\"1\" minute-step=\"1\" time-setting=\"HH:mm:ss\" show-seconds=\"true\"></timepicker-pop>"
      },
      {
        "title": "Language",
        "type": "radios-inline",
        "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
        "key": "language",
        "id": "language",
        "titleMap": [{
          "name": "Chinese",
          "value": "zh"
        },
          {
            "name": "English",
            "value": "en"
          },
          {
            "name": "Lithuanian",
            "value": "lt"
          },
          {
            "name": "Thai",
            "value": "th"
          }
        ],
        "required": true,
        "feedback": true,
        "disableSuccessState": false,
        "disableErrorState": false
      }
    ],
    "schema": {
      "type": "object",
      "properties": {
        "employeeCode": {
          "type": "string",
          "title": "Ticket ID"
        },"name": {
          "type": "string",
          "title": "Name"
        },
        "time": {
          "type": "string",
          "title": "Time"
        },
        "age": {
          "type": "integer",
          "minimum": 0,
          "title": "Age"
        },
        "language": {
          "type": "radios-inline",
          "title": "Language",
          "enum": ["zh", "en", "lt", "th"],
          "default": "en"
        }
      }
    }
  },
  "onLoad": "if (!scope.customModel.hasOwnProperty('name')) { if(scope.defaultModel.firstName || scope.defaultModel.lastName){ scope.customModel.name = scope.defaultModel.firstName + \" \" + scope.defaultModel.lastName } }; if (!scope.customModel.hasOwnProperty('language')) { scope.customModel.language = \"en\" }",
  "beforeSubmit": "var names = $scope.model.name.split(\" \"); if (names.length > 0) { if (names[0]) { $scope.user.firstName = names[0]; names.shift(); } }; if (names.length > 0) { $scope.user.lastName = names.join(\" \"); } else { $scope.user.lastName = \"_\"; };"
}
