[
    {
        "key":"name",
        "name": "Name",
        "schema":{"name": {
            "title": "Name",
            "type": "string",
            "required":true
          }},
        "form": {
            "key": "name",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Full name"
          },
        "config": {
            "viewTemplate": "visitor_form_field_config",
            "controller": "VisitorFormFieldConfigController",
            "overridenFields": ["/required"]
        }, 
        "onLoad":"if (scope.visitor != null ){ var names = []; if(scope.visitor.firstName.length > 0) names.push(scope.visitor.firstName); if(scope.visitor.lastName.length > 0) names.push(scope.visitor.lastName); scope.customModel.name = names.length > 0 ? names.join(\" \") : \"\"; };",
        "beforeSubmit": "var names = scope.customModel.name.split(\" \");if(names.length > 0) {if(names[0]) {scope.defaultModel.firstName = names[0];names.shift();}}if(names.length > 0){scope.defaultModel.lastName = names.join(\" \");}else{scope.defaultModel.lastName =\"\";};"  
    },{
        "key":"email",
        "name": "Email",
        "schema": {"email":{
            "title": "Email",
            "type": "string",
            "pattern": "^\\S+@\\S+$",
            "validationMessage": "Not a valid email address",
            "required":true
          }},
        "form": {
            "key": "email",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Email address",
            "feedback": true,
            "disableSuccessState": false,
            "disableErrorState": false
          },
        "config": {
            "viewTemplate": "visitor_form_field_config",
            "controller": "VisitorFormFieldConfigController",
            "overridenFields": ["/required", "/pattern"]
        },
        "onLoad":"if(scope.visitor != null){scope.customModel.email =scope.visitor.email;};",
        "beforeSubmit": "scope.defaultModel.email=scope.customModel.email;"
    },{
        "key":"phone",
        "name": "Phone number",
        "schema": {"phone": {
            "title": "Phone",
            "type": "string",
            "pattern": "^\\+?\\d+$",
            "validationMessage": "Not a valid phone number",
            "required":true
          }},
        "form":{
            "key": "phone",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Personal phone number"
          },
          "config": {
              "viewTemplate": "visitor_form_field_config",
              "controller": "VisitorFormFieldConfigController",
              "overridenFields": ["/required", "/pattern"]
          },
        "onLoad":"if (scope.visitor != null ){if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone;};",
        "beforeSubmit": "if(scope.customModel.phone){scope.defaultModel.primaryTelephone =scope.customModel.phone; };"
    },{
        "key":"age",
        "name": "Age",
        "schema": {"age": {
            "type": "integer",
            "maximum": 125,
            "minimum": 0,
            "title": "Age",
            "x-schema-form": {
              "type": "number",
              "max": 125,
              "min": 0
            }
          }},
        "form":{
            "name": "age",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "key": "age",
            "type": "number",
            "placeholder": "Age (In years)",
            "feedback": false,
            "disableSuccessState": false,
            "disableErrorState": false
          },
          "config": {
              "viewTemplate": "visitor_form_field_config",
              "controller": "VisitorFormFieldConfigController",
              "overridenFields": ["/x-schema-form/max", "/x-schema-form/min"]
          }
    }, {
        "key":"address",
        "name": "Address",
        "schema":{ "address": {
            "title": "Address",
            "type": "string",
            "required":false
          }},
        "form": {
            "key": "address",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Permannat address"
          },
          "config": {
              "viewTemplate": "visitor_form_field_config",
              "controller": "VisitorFormFieldConfigController",
              "overridenFields": ["/required"]
          }
    },{
        "key":"Id",
        "name": "ID",
        "schema": {"id": {
            "title": "ID",
            "type": "string",
            "required":true
          }},
        "form":{
            "key": "id",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Identity card number or passport number"
          },
          "config": {
              "viewTemplate": "visitor_form_field_config",
              "controller": "VisitorFormFieldConfigController",
              "overridenFields": ["/required"]
          }
    },{
        "key":"city",
        "name": "City",
        "schema":{ "city": {
            "title": "City",
            "type": "string",
            "required":false
          }},
        "form": {
            "key": "city",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Name of the city"
          },
        "config": {
            "viewTemplate": "visitor_form_field_config",
            "controller": "VisitorFormFieldConfigController",
            "overridenFields": ["/required"]
        }
    },{
        "key":"toMeet",
        "name": "To meet",
        "schema":{ "toMeet": {
            "title": "To meet",
            "type": "string",
            "required":true
          }},
        "form": {
            "key": "toMeet",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Name of the person to meet"
          },
          "config": {
              "viewTemplate": "visitor_form_field_config",
              "controller": "VisitorFormFieldConfigController",
              "overridenFields": ["/required"]
          }
    },{
        "key":"reason",
        "name": "Reason",
        "schema":{ "reason": {
            "title": "Reason",
            "type": "string",
            "required":true
          }},
        "form": {
            "key": "reason",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Reason for the visit"
          },
          "config": {
              "viewTemplate": "visitor_form_field_config",
              "controller": "VisitorFormFieldConfigController",
              "overridenFields": ["/required"]
          }
    },{
        "key":"amount",
        "name": "Amount",
        "form":{
            "key": "amount",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Amount of the bill"
        },
        "schema":{"amount":{
            "title":"Amount *",
            "type":"number",
            "required":true,
            "minimum": 0,
            "x-schema-form": {
              "type":"number",
              "step":"0.01",
              "min": 0
            }
        }},
        "config": {
            "viewTemplate": "visitor_form_field_config",
            "controller": "VisitorFormFieldConfigController",
            "overridenFields": ["/required"]
        }
    },{
        "key":"accountNumber",
        "name": "Account number",
        "schema":{ "accountNumber": {
            "title": "Account number *",
            "type": "string",
            "required":true
          }},
        "form":  {
            "key": "accountNumber",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Account number"
        },
        "config": {
            "viewTemplate": "visitor_form_field_config",
            "controller": "VisitorFormFieldConfigController",
            "overridenFields": ["/required"]
        }
    }

]