[
  {
    "name" : "Personal",
    "description" : "Meet a person in the organization",
    "modifiedAt": "2022-12-19 13:50:00",
    "schedule":[{
      "name": "Personal visit",
      "repetition": 1,
      "shift":{
        "start": "00:00:00",
        "end": "23:59:59"
      }
    }],
    "customData" : {
      "thumbnail": "personal",
      "pass" : {"type":"GENERATED", "validation": ""},
      "generatePass": true,
      "idDataType":"BARCODE",
      "biometric" : "FACE",
      "termsAndConditions": "terms_and_condition_content",
      "appointmentsStartOnSessionStart": false,
      "currency": "$",
      "allowTimeSelection": false,
      "seating": false,
      "visitorDetails": true,
      "publicAccessible": true,
      "enablePublcAccessSetting": true
    },
    "configuration": {
      "visitorForm" : {
        "customFields": {
          "form": [{
            "key": "name",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Full name"
          },
            {
              "key": "toMeet",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Name of the person to meet"
            },
            {
              "key": "email",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Email address",
              "required": true,
              "feedback": true,
              "disableSuccessState": false,
              "disableErrorState": false
            },{
              "key": "phone",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Personal phone number"
            }
          ],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "title": "Name *",
                "type": "string",
                "required":true
              },
              "toMeet": {
                "title": "To meet *",
                "type": "string",
                "required":true
              },
              "email":{
                "title": "Email *",
                "type": "string",
                "pattern": "^\\S+@\\S+$",
                "validationMessage": "Not a valid email address",
                "required":true
              },
              "phone": {
                "title": "Phone *",
                "type": "string",
                "pattern": "^\\+?\\d+$",
                "validationMessage": "Not a valid phone number",
                "required":true
              }
            },
            "required": [
              "name",
              "toMeet",
              "email",
              "phone"
            ]}
        },
        "onLoad": "if (scope.visitor != null ) { if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone; scope.customModel.email =scope.visitor.email;  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": "if(scope.customModel.phone){ scope.defaultModel.primaryTelephone =scope.customModel.phone; };  var names = scope.customModel.name.split(\" \")\n            if(names.length > 0) {\n                if(names[0]) {\n                    scope.defaultModel.firstName = names[0]\n                    names.shift()\n                }\n            }\n            if(names.length > 0){\n                scope.defaultModel.lastName = names.join(\" \")\n            }else{scope.defaultModel.lastName =\"\"}\n  scope.defaultModel.email=scope.customModel.email \nconsole.log('Before submit:',scope.defaultModel)"
      },
      "scheduleCreationTemplate":{
        "template": "common_schedule_add_edit",
        "controller": "CommonScheduleAddEditController"
      },
      "visitNotes":[{
        "title":"common_visit_note_title",
        "description": "common_visit_note_desc",
        "viewTemplate": "common_visit_note_view_template",
        "controller": "CommonVisitNote"
      }],
      "bookingPageTemplate": {
        "kiosk": "organization_visit",
        "public": "visitor_details",
        "overHeadDisplay":"organization_visit_kiosk_next_appointment_display"
      },
      "appointmentSummaryTemplate": {
        "name": "organization_visit_admin_appointment_summary",
        "controller": "OrganizationVisitAppointmentSummeryController"
      },
      "appointmentUpdateTemplate": {
        "name": "organization_visit_admin_update_appointment_details",
        "controller": "OrganizationUpdateAppointmentController"
      },
      "feedbackViewTemplateName": "personal_device_feedback_view",
      "ticket_template":"organization_visit_visitRequest_ticket",
      "emailTemplatePath": "common"
    }
  },
  {
    "name" : "Place",
    "description" : "Visit a place like museum, art gallery, church, temple, Government office",
    "modifiedAt": "2022-12-19 13:50:00",
    "customData" : {
      "thumbnail": "place",
      "pass" : {"type":"GENERATED", "validation": ""},
      "generatePass": true,
      "idDataType":"BARCODE",
      "biometric" : "FACE",
      "termsAndConditions": "terms_and_condition_content",
      "appointmentsStartOnSessionStart": true,
      "currency": "$",
      "allowTimeSelection": false,
      "seating": false,
      "visitorDetails": true,
      "publicAccessible": true,
      "enablePublcAccessSetting": true
    },
    "configuration":{
      "visitorForm" : {
        "customFields": {
          "form": [{
            "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
          },
            {
              "name": "age",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "key": "age",
              "type": "number",
              "placeholder": "Age (In years)",
              "required": true,
              "feedback": false,
              "disableSuccessState": false,
              "disableErrorState": false
            },
            {
              "key": "email",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Email address",
              "required": true,
              "feedback": true,
              "disableSuccessState": false,
              "disableErrorState": false
            },{
              "key": "phone",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Personal phone number"
            }
          ],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "title": "Name *"
              },
              "age": {
                "type": "integer",
                "maximum": 125,
                "minimum": 0,
                "title": "Age *",
                "x-schema-form": {
                  "type": "number",
                  "max": 125,
                  "min": 0
                }
              },
              "email":{
                "title": "Email *",
                "type": "string",
                "pattern": "^\\S+@\\S+$",
                "validationMessage": "Not a valid email address"
              },
              "phone": {
                "title": "Phone *",
                "type": "string",
                "pattern": "^\\+?\\d+$",
                "validationMessage": "Not a valid phone number",
                "required":true
              }

            }
          }
        },
        "onLoad": "if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone; angular.forEach(scope.customModel , function(value, key){ if(angular.isObject(value)){value = JSON.stringify(value);scope.customModel[key] = value;}}); if (scope.visitor != null ) { scope.customModel.email =scope.visitor.email; 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": "if(scope.customModel.phone){ scope.defaultModel.primaryTelephone =scope.customModel.phone; };  angular.forEach(scope.customModel , function(value, key){if(value.length > 0){try {value = JSON.parse(value);scope.customModel[key] = value;} catch (e) {}}}); if(scope.customModel.name){ var names = scope.customModel.name.split(\" \"); if(names.length > 0) { if(names[0]) { scope.defaultModel.firstName = names[0]; names.shift(); } else { scope.defaultModel.firstName=\"\"} }else { scope.defaultModel.firstName=\"\"} if(names.length > 0){ scope.defaultModel.lastName = names.join(\" \");}else{scope.defaultModel.lastName =\"\"};}else {scope.defaultModel.firstName =\"\"; scope.defaultModel.lastName =\"\";}\n  scope.defaultModel.email=scope.customModel.email \n console.log('Before submit:',scope.defaultModel)"
      },
      "scheduleCreationTemplate":{
        "template": "common_schedule_add_edit",
        "controller": "CommonScheduleAddEditController"
      },
      "visitNotes":[{
        "title":"common_visit_note_title",
        "description": "common_visit_note_desc",
        "viewTemplate": "common_visit_note_view_template",
        "controller": "CommonVisitNote"
      }],
      "bookingPageTemplate": {
        "kiosk": "organization_visit",
        "public": "visitor_details",
        "overHeadDisplay":"organization_visit_kiosk_next_appointment_display"
      },
      "appointmentSummaryTemplate": {
        "name": "organization_visit_admin_appointment_summary",
        "controller": "OrganizationVisitAppointmentSummeryController"
      },
      "appointmentUpdateTemplate": {
        "name": "organization_visit_admin_update_appointment_details",
        "controller": "OrganizationUpdateAppointmentController"
      },
      "feedbackViewTemplateName": "place_device_feedback_view",
      "ticket_template":"organization_visit_visitRequest_ticket",
      "emailTemplatePath": "common"
    }
  },
  {
    "name" : "Banking ",
    "description" : "Financial institute visit like Bank",
    "modifiedAt": "2022-12-19 13:50:00",
    "customData" : {
      "thumbnail": "bank",
      "pass" : {"type":"GENERATED", "validation": ""},
      "generatePass": true,
      "idDataType":"ID",
      "biometric" : "FACE",
      "termsAndConditions": "terms_and_condition_content",
      "appointmentsStartOnSessionStart": false,
      "currency": "$",
      "allowTimeSelection": false,
      "seating": false,
      "visitorDetails": true,
      "publicAccessible": true,
      "enablePublcAccessSetting": true
    },
    "configuration":{
      "visitorForm" : {
        "customFields": {
          "form": [{
            "key": "name",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Full name"
          }, {
            "key": "nic",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Identity card number or passport number"
          },{
            "key": "purpose",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Purpose of the visit"
          },
            {
              "key": "email",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Email address",
              "required": true,
              "feedback": true,
              "disableSuccessState": false,
              "disableErrorState": false
            },{
              "key": "phone",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Personal phone number"
            }],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "title": "Name *",
                "type": "string",
                "required":true
              },
              "nic": {
                "title": "ID *",
                "type": "string",
                "required":true
              },
              "purpose": {
                "title": "Purpose of visit *",
                "type": "string",
                "required":true
              },
              "email":{
                "title": "Email *",
                "type": "string",
                "pattern": "^\\S+@\\S+$",
                "validationMessage": "Not a valid email address",
                "required":true
              },
              "phone": {
                "title": "Phone *",
                "type": "string",
                "pattern": "^\\+?\\d+$",
                "validationMessage": "Not a valid phone number",
                "required":true
              }
            },
            "required": [
              "name",
              "nic",
              "purpose",
              "email"
            ]}
        },
        "onLoad": "if (scope.visitor != null ) {if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone; scope.customModel.email =scope.visitor.email; 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": "if(scope.customModel.phone){scope.defaultModel.primaryTelephone =scope.customModel.phone; }; var names = scope.customModel.name.split(\" \")\n            if(names.length > 0) {\n                if(names[0]) {\n                    scope.defaultModel.firstName = names[0]\n                    names.shift()\n                }\n            }\n            if(names.length > 0){\n                scope.defaultModel.lastName = names.join(\" \")\n            }else{scope.defaultModel.lastName =\"\"}\nscope.defaultModel.email=scope.customModel.email\nconsole.log('Before submit:',scope.defaultModel)"
      },
      "scheduleCreationTemplate":{
        "template": "common_schedule_add_edit",
        "controller": "CommonScheduleAddEditController"
      },
      "visitNotes":[{
        "title":"common_visit_note_title",
        "description": "common_visit_note_desc",
        "viewTemplate": "common_visit_note_view_template",
        "controller": "CommonVisitNote"
      }],
      "bookingPageTemplate": {
        "kiosk": "organization_visit",
        "public": "visitor_details",
        "overHeadDisplay":"organization_visit_kiosk_next_appointment_display"
      },
      "appointmentSummaryTemplate": {
        "name": "organization_visit_admin_appointment_summary",
        "controller": "OrganizationVisitAppointmentSummeryController"
      },
      "appointmentUpdateTemplate": {
        "name": "organization_visit_admin_update_appointment_details",
        "controller": "OrganizationUpdateAppointmentController"
      },
      "feedbackViewTemplateName": "banking_device_feedback_view",
      "ticket_template":"organization_visit_visitRequest_ticket",
      "emailTemplatePath": "common"
    }
  },
  {
    "name" : "Events",
    "description" : "Place booking and attend Seminar, classes, exhibitions",
    "modifiedAt": "2022-12-19 13:50:00",
    "customData" : {
      "thumbnail": "event",
      "pass" : {"type":"GENERATED", "validation": ""},
      "generatePass": true,
      "idDataType":"BARCODE",
      "biometric" : "FACE",
      "termsAndConditions": "terms_and_condition_content",
      "appointmentsStartOnSessionStart": true,
      "currency": "$",
      "allowTimeSelection": false,
      "seating": false,
      "visitorDetails": true,
      "publicAccessible": true,
      "enablePublcAccessSetting": true
    },
    "configuration":{
      "visitorForm" : {
        "customFields": {
          "form": [{
            "key": "name",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Full name"
          }, {
            "key": "nic",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Identity card number or passport number"
          },
            {
              "key": "email",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Email address",
              "required": true,
              "feedback": true,
              "disableSuccessState": false,
              "disableErrorState": false
            },{
              "key": "phone",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Personal phone number"
            }],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "title": "Name *",
                "type": "string",
                "required":true
              },
              "nic": {
                "title": "Passport/ID",
                "type": "string",
                "required":false
              },
              "email":{
                "title": "Email *",
                "type": "string",
                "pattern": "^\\S+@\\S+$",
                "validationMessage": "Not a valid email address",
                "required":true
              },
              "phone": {
                "title": "Phone *",
                "type": "string",
                "pattern": "^\\+?\\d+$",
                "validationMessage": "Not a valid phone number",
                "required":true
              }
            },
            "required": [
              "name",
              "email",
              "phone"
            ]}
        },
        "onLoad": "if (scope.visitor != null ) {if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone; scope.customModel.email =scope.visitor.email; 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": "if(scope.customModel.phone){scope.defaultModel.primaryTelephone =scope.customModel.phone; }; var names = scope.customModel.name.split(\" \")\n            if(names.length > 0) {\n                if(names[0]) {\n                    scope.defaultModel.firstName = names[0]\n                    names.shift()\n                }\n            }\n            if(names.length > 0){\n                scope.defaultModel.lastName = names.join(\" \")\n            }else{scope.defaultModel.lastName =\"\"}\nscope.defaultModel.email=scope.customModel.email\nconsole.log('Before submit:',scope.defaultModel)"
      },
      "scheduleCreationTemplate":{
        "template": "common_schedule_add_edit",
        "controller": "CommonScheduleAddEditController"
      },
      "visitNotes":[{
        "title":"common_visit_note_title",
        "description": "common_visit_note_desc",
        "viewTemplate": "common_visit_note_view_template",
        "controller": "CommonVisitNote"
      }],
      "bookingPageTemplate": {
        "kiosk": "organization_visit",
        "public": "visitor_details",
        "overHeadDisplay":"organization_visit_kiosk_next_appointment_display"
      },
      "appointmentSummaryTemplate": {
        "name": "organization_visit_admin_appointment_summary",
        "controller": "OrganizationVisitAppointmentSummeryController"
      },
      "appointmentUpdateTemplate": {
        "name": "organization_visit_admin_update_appointment_details",
        "controller": "OrganizationUpdateAppointmentController"
      },
      "feedbackViewTemplateName": "events_device_feedback_view",
      "ticket_template":"organization_visit_visitRequest_ticket",
      "emailTemplatePath": "common"
    }
  },
  {
    "name" : "Hotel",
    "description" : "Visitor access of rooms, restaurants in hotels,  restaurants, clubs",
    "modifiedAt": "2022-12-19 13:50:00",
    "customData" : {
      "thumbnail": "hotel",
      "pass" : {"type":"REQUIRED_REUSE", "validation": ""},
      "generatePass": false,
      "idDataType":"BARCODE",
      "biometric" : "FACE",
      "termsAndConditions": "terms_and_condition_content",
      "appointmentsStartOnSessionStart": true,
      "currency": "$",
      "allowTimeSelection": false,
      "seating": false,
      "visitorDetails": true,
      "publicAccessible": true,
      "enablePublcAccessSetting": true
    },
    "configuration":{
      "visitorForm" : {
        "customFields": {
          "form": [{
            "key": "name",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Full name"
          }, {
            "key": "nic",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Identity card number or passport number"
          }, {
            "key": "email",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Email address"
          },{
            "key": "address",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Permannat address"
          },{
            "key": "phone",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Personal phone number"
          }],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "title": "Name *",
                "type": "string",
                "required":true
              },
              "nic": {
                "title": "ID *",
                "type": "string",
                "required":true
              },
              "email":{
                "title": "Email *",
                "type": "string",
                "pattern": "^\\S+@\\S+$",
                "validationMessage": "Not a valid email address",
                "required":true
              },
              "address": {
                "title": "Address",
                "type": "string",
                "required":false
              },
              "phone": {
                "title": "Phone *",
                "type": "string",
                "pattern": "^\\+?\\d+$",
                "validationMessage": "Not a valid phone number",
                "required":true
              }
            },
            "required": [
              "name",
              "nic",
              "phone"
            ]}
        },
        "onLoad": "if (scope.visitor != null ) { if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone; scope.customModel.email =scope.visitor.email; var address = scope.visitor.address1 ?? ''; if(scope.visitor.address2){ if(address.length > 0) address = address + ' ' + scope.visitor.address2; else address = scope.visitor.address2;} scope.customModel.address = address;  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": "if(scope.customModel.phone){ scope.defaultModel.primaryTelephone =scope.customModel.phone; }; var names = scope.customModel.name.split(\" \")\n            if(names.length > 0) {\n                if(names[0]) {\n                    scope.defaultModel.firstName = names[0]\n                    names.shift()\n                }\n            }\n            if(names.length > 0){\n                scope.defaultModel.lastName = names.join(\" \")\n            }else{scope.defaultModel.lastName =\"\"}\n  if(scope.customModel.email)scope.defaultModel.email=scope.customModel.email \n if(scope.customModel.address)scope.defaultModel.address1=scope.customModel.address\n scope.defaultModel.email=scope.customModel.email \nconsole.log('Before submit:',scope.defaultModel)"
      },
      "scheduleCreationTemplate":{
        "template": "common_schedule_add_edit",
        "controller": "CommonScheduleAddEditController"
      },
      "visitNotes":[{
        "title":"common_visit_note_title",
        "description": "common_visit_note_desc",
        "viewTemplate": "common_visit_note_view_template",
        "controller": "CommonVisitNote"
      }],
      "bookingPageTemplate": {
        "kiosk": "organization_visit",
        "public": "visitor_details",
        "overHeadDisplay":"organization_visit_kiosk_next_appointment_display"
      },
      "appointmentSummaryTemplate": {
        "name": "organization_visit_admin_appointment_summary",
        "controller": "OrganizationVisitAppointmentSummeryController"
      },
      "appointmentUpdateTemplate": {
        "name": "organization_visit_admin_update_appointment_details",
        "controller": "OrganizationUpdateAppointmentController"
      },
      "feedbackViewTemplateName": "hotel_device_feedback_view",
      "ticket_template":"organization_visit_visitRequest_ticket",
      "emailTemplatePath": "common"
    }
  },
  {
    "name" : "Consultancy",
    "description" : "Place appointment to meet a lawyer, doctor, teacher, government officials",
    "modifiedAt": "2022-12-19 13:50:00",
    "customData" : {
      "thumbnail": "consultant",
      "pass" : {"type":"GENERATED", "validation": ""},
      "generatePass": false,
      "idDataType":"ID",
      "biometric" : "FACE",
      "termsAndConditions": "terms_and_condition_content",
      "appointmentsStartOnSessionStart": false,
      "currency": "$",
      "allowTimeSelection": false,
      "seating": false,
      "visitorDetails": true,
      "publicAccessible": true,
      "enablePublcAccessSetting": true
    },
    "configuration":{
      "visitorForm" : {
        "customFields": {
          "form": [{
            "key": "name",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Full name"
          },
            {
              "name": "age",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "key": "age",
              "type": "number",
              "placeholder": "Age(In years)",
              "required": true,
              "feedback": false,
              "disableSuccessState": false,
              "disableErrorState": false
            },
            {
              "key": "reason",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Name of the person to meet"
            },
            {
              "key": "email",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Email address",
              "required": true,
              "feedback": true,
              "disableSuccessState": false,
              "disableErrorState": false
            },{
              "key": "phone",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Personal phone number"
            }],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "title": "Name *",
                "type": "string",
                "required":true
              },
              "age": {
                "type": "integer",
                "maximum": 125,
                "minimum": 0,
                "title": "Age *",
                "required":true,
                "x-schema-form": {
                  "type": "number",
                  "max": 125,
                  "min": 0
                }
              },
              "reason": {
                "title": "Reason *",
                "type": "string",
                "required":true
              },
              "email":{
                "title": "Email *",
                "type": "string",
                "pattern": "^\\S+@\\S+$",
                "validationMessage": "Not a valid email address",
                "required":true
              },
              "phone": {
                "title": "Phone *",
                "type": "string",
                "pattern": "^\\+?\\d+$",
                "validationMessage": "Not a valid phone number",
                "required":true
              }
            },
            "required": [
              "name",
              "age",
              "reason",
              "email",
              "phone"
            ]}
        },
        "onLoad": "if (scope.visitor != null ) {if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone; scope.customModel.email =scope.visitor.email; 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": "if(scope.customModel.phone){ scope.defaultModel.primaryTelephone =scope.customModel.phone; }; var names = scope.customModel.name.split(\" \")\n            if(names.length > 0) {\n                if(names[0]) {\n                    scope.defaultModel.firstName = names[0]\n                    names.shift()\n                }\n            }\n            if(names.length > 0){\n                scope.defaultModel.lastName = names.join(\" \")\n            }else{scope.defaultModel.lastName =\"\"}\n  scope.defaultModel.email=scope.customModel.email \nconsole.log('Before submit:',scope.defaultModel)"
      },
      "scheduleCreationTemplate":{
        "template": "common_schedule_add_edit",
        "controller": "CommonScheduleAddEditController"
      },
      "visitNotes":[{
        "title":"common_visit_note_title",
        "description": "common_visit_note_desc",
        "viewTemplate": "common_visit_note_view_template",
        "controller": "CommonVisitNote"
      },{
        "title":"consultancy_patient_rescription_title",
        "description": "consultancy_patient_rescription_desc",
        "maxNotes": 1,
        "viewTemplate": "patient_prescription_note_template",
        "controller": "ConsultancyVisitNote"
      },
        {
          "title":"consultancy_patient_weight_measuring_title",
          "description": "consultancy_patient_weight_measuring_desc",
          "maxNotes": 1,
          "viewTemplate": "patient_weight_measuring_note_template",
          "controller": "ConsultancyVisitNote"
        }],
      "bookingPageTemplate": {
        "kiosk": "organization_visit",
        "public": "visitor_details",
        "overHeadDisplay":"organization_visit_kiosk_next_appointment_display"
      },
      "appointmentSummaryTemplate": {
        "name": "organization_visit_admin_appointment_summary",
        "controller": "OrganizationVisitAppointmentSummeryController"
      },
      "appointmentUpdateTemplate": {
        "name": "organization_visit_admin_update_appointment_details",
        "controller": "OrganizationUpdateAppointmentController"
      },
      "feedbackViewTemplateName": "consultancy_device_feedback_view",
      "ticket_template":"organization_visit_visitRequest_ticket",
      "emailTemplatePath": "common"
    }
  },
  {
    "name" : "Smart Access",
    "description" : "Access offices, building by Visitors with electronic ID cards or passports",
    "modifiedAt": "2022-12-19 13:50:00",
    "customData" : {
      "thumbnail": "smart_access",
      "pass" : {"type":"REQUIRED_REUSE", "validation": ""},
      "generatePass": false,
      "idDataType":"BARCODE",
      "biometric" : "NONE",
      "termsAndConditions": "terms_and_condition_content",
      "appointmentsStartOnSessionStart": false,
      "currency": "$",
      "allowTimeSelection": false,
      "seating": false,
      "visitorDetails": false,
      "publicAccessible": false,
      "enablePublcAccessSetting": false
    },
    "configuration":{
      "visitorForm" : {
        "customFields": {
          "form": [{
            "key": "name",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Full name"
          },
            {
              "key": "id",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Identity card number or passport number"
            },
            {
              "key": "reason",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Name of the person to meet"
            },
            {
              "key": "email",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Email address",
              "required": true,
              "feedback": true,
              "disableSuccessState": false,
              "disableErrorState": false
            },{
              "key": "phone",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Personal phone number"
            }],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "title": "Name *",
                "type": "string",
                "required":true
              },
              "id": {
                "title": "ID *",
                "type": "string",
                "required":true
              },
              "reason": {
                "title": "Reason *",
                "type": "string",
                "required":true
              },
              "email":{
                "title": "Email *",
                "type": "string",
                "pattern": "^\\S+@\\S+$",
                "validationMessage": "Not a valid email address",
                "required":true
              },
              "phone": {
                "title": "Phone *",
                "type": "string",
                "pattern": "^\\+?\\d+$",
                "validationMessage": "Not a valid phone number",
                "required":true
              }
            },
            "required": [
              "name",
              "id",
              "reason",
              "email",
              "phone"
            ]}
        },
        "onLoad": "if (scope.visitor != null ) { if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone; scope.customModel.email =scope.visitor.email;scope.customModel.id =scope.visitor.employeeCode; 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": "if(scope.customModel){ if(scope.customModel.phone){ scope.defaultModel.primaryTelephone =scope.customModel.phone;}if(scope.customModel.email){scope.defaultModel.email=scope.customModel.email }scope.defaultModel.employeeCode =scope.customModel.id.toString(); 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 =\"\"};console.log('Before submit:',scope.defaultModel);}else{scope.defaultModel.firstName =\"\";scope.defaultModel.lastName =\"\";}"
      },
      "scheduleCreationTemplate":{
        "template": "common_schedule_add_edit",
        "controller": "CommonScheduleAddEditController"
      },
      "visitNotes":[{
        "title":"common_visit_note_title",
        "description": "common_visit_note_desc",
        "viewTemplate": "common_visit_note_view_template",
        "controller": "CommonVisitNote"
      }],
      "bookingPageTemplate": {
        "kiosk": "organization_visit",
        "public": "visitor_details",
        "overHeadDisplay":"organization_visit_kiosk_next_appointment_display"
      },
      "appointmentSummaryTemplate": {
        "name": "organization_visit_admin_appointment_summary",
        "controller": "OrganizationVisitAppointmentSummeryController"
      },
      "appointmentUpdateTemplate": {
        "name": "organization_visit_admin_update_appointment_details",
        "controller": "OrganizationUpdateAppointmentController"
      },
      "feedbackViewTemplateName": "smart_access_device_feedback_view",
      "ticket_template":"organization_visit_visitRequest_ticket",
      "emailTemplatePath": "common"
    }
  },
  {
    "name" : "Simple Biometric",
    "description" : "Allow access to any visitor with a printed/electronic token or biometric",
    "modifiedAt": "2022-12-19 13:50:00",
    "customData" : {
      "thumbnail": "biometric",
      "pass" : {"type":"GENERATED", "validation": ""},
      "generatePass": false,
      "idDataType":"BARCODE",
      "biometric" : "NONE",
      "termsAndConditions": "terms_and_condition_content",
      "appointmentsStartOnSessionStart": false,
      "currency": "$",
      "allowTimeSelection": false,
      "seating": false,
      "visitorDetails": false,
      "publicAccessible": false,
      "enablePublcAccessSetting": false
    },
    "configuration":{
      "visitorForm" : {
        "customFields": {
          "form": [{
            "key": "name",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Full name"
          },
            {
              "key": "id",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Identity card number or passport number"
            },
            {
              "key": "reason",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Name of the person to meet"
            },
            {
              "key": "email",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Email address",
              "required": true,
              "feedback": true,
              "disableSuccessState": false,
              "disableErrorState": false
            },{
              "key": "phone",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Personal phone number"
            }],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "title": "Name *",
                "type": "string",
                "required":true
              },
              "id": {
                "title": "ID *",
                "type": "string",
                "required":true
              },
              "reason": {
                "title": "Reason *",
                "type": "string",
                "required":true
              },
              "email":{
                "title": "Email *",
                "type": "string",
                "pattern": "^\\S+@\\S+$",
                "validationMessage": "Not a valid email address",
                "required":true
              },
              "phone": {
                "title": "Phone *",
                "type": "string",
                "pattern": "^\\+?\\d+$",
                "validationMessage": "Not a valid phone number",
                "required":true
              }
            },
            "required": [
              "name",
              "id",
              "reason",
              "email",
              "phone"
            ]}
        },
        "onLoad": "if (scope.visitor != null ) {if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone; scope.customModel.email =scope.visitor.email; scope.customModel.id =scope.visitor.employeeCode; 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": "if(scope.customModel){ if(scope.customModel.phone){ scope.defaultModel.primaryTelephone =scope.customModel.phone;}if(scope.customModel.email){scope.defaultModel.email=scope.customModel.email }scope.defaultModel.employeeCode =scope.customModel.id.toString(); 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 =\"\"};console.log('Before submit:',scope.defaultModel);}else{scope.defaultModel.firstName =\"\";scope.defaultModel.lastName =\"\";}"
      },
      "scheduleCreationTemplate":{
        "template": "common_schedule_add_edit",
        "controller": "CommonScheduleAddEditController"
      },
      "visitNotes":[{
        "title":"common_visit_note_title",
        "description": "common_visit_note_desc",
        "viewTemplate": "common_visit_note_view_template",
        "controller": "CommonVisitNote"
      }],
      "bookingPageTemplate": {
        "kiosk": "organization_visit",
        "public": "visitor_details",
        "overHeadDisplay":"organization_visit_kiosk_next_appointment_display"
      },
      "appointmentSummaryTemplate": {
        "name": "organization_visit_admin_appointment_summary",
        "controller": "OrganizationVisitAppointmentSummeryController"
      },
      "appointmentUpdateTemplate": {
        "name": "organization_visit_admin_update_appointment_details",
        "controller": "OrganizationUpdateAppointmentController"
      },
      "feedbackViewTemplateName": "simple_biometric_device_feedback_view",
      "ticket_template":"organization_visit_visitRequest_ticket",
      "emailTemplatePath": "common"
    }
  },
  {
    "name" : "Payment",
    "description" : "Pay bills",
    "modifiedAt": "2022-12-19 13:50:00",
    "customData" : {
      "thumbnail": "payment",
      "pass" : {"type":"GENERATED", "validation": ""},
      "generatePass": false,
      "idDataType":"BARCODE",
      "biometric" : "FACE",
      "termsAndConditions": "terms_and_condition_content",
      "appointmentsStartOnSessionStart": false,
      "currency": "$",
      "allowTimeSelection": false,
      "seating": false,
      "visitorDetails": true,
      "publicAccessible": true,
      "enablePublcAccessSetting": true
    },
    "configuration":{
      "visitorForm" : {
        "customFields": {
          "form": [{
            "key": "name",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Full name"
          },
            {
              "key": "accountNumber",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Account number"
            },
            {
              "key": "amount",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Amount of the bill"
            },
            {
              "key": "email",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Email address",
              "required": true,
              "feedback": true,
              "disableSuccessState": false,
              "disableErrorState": false
            },{
              "key": "phone",
              "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
              "placeholder": "Personal phone number"
            }],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "title": "Name *",
                "type": "string",
                "required":true
              },
              "accountNumber": {
                "title": "Account number *",
                "type": "string",
                "required":true
              },
              "amount": {
                "title":"Amount *",
                "type":"number",
                "x-schema-form": {
                  "type":"number",
                  "step":"0.01"
                }
              },
              "email":{
                "title": "Email *",
                "type": "string",
                "pattern": "^\\S+@\\S+$",
                "validationMessage": "Not a valid email address",
                "required":true
              },
              "phone": {
                "title": "Phone *",
                "type": "string",
                "pattern": "^\\+?\\d+$",
                "validationMessage": "Not a valid phone number",
                "required":true
              }
            },
            "required": [
              "name",
              "accountNumber",
              "amount",
              "email"
            ]}
        },
        "onLoad": "if (scope.visitor != null ) {if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone; scope.customModel.email =scope.visitor.email; 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": "if(scope.customModel.phone){scope.defaultModel.primaryTelephone =scope.customModel.phone; }; var names = scope.customModel.name.split(\" \")\n            if(names.length > 0) {\n                if(names[0]) {\n                    scope.defaultModel.firstName = names[0]\n                    names.shift()\n                }\n            }\n            if(names.length > 0){\n                scope.defaultModel.lastName = names.join(\" \")\n            }else{scope.defaultModel.lastName =\"\"}\n  scope.defaultModel.email=scope.customModel.email \nconsole.log('Before submit:',scope.defaultModel)"
      },
      "scheduleCreationTemplate":{
        "template": "common_schedule_add_edit",
        "controller": "CommonScheduleAddEditController"
      },
      "visitNotes":[{
        "title":"common_visit_note_title",
        "description": "common_visit_note_desc",
        "viewTemplate": "common_visit_note_view_template",
        "controller": "CommonVisitNote"
      }],
      "bookingPageTemplate": {
        "kiosk": "organization_visit",
        "public": "visitor_details",
        "overHeadDisplay":"organization_visit_kiosk_next_appointment_display"
      },
      "appointmentSummaryTemplate": {
        "name": "organization_visit_admin_appointment_summary",
        "controller": "OrganizationVisitAppointmentSummeryController"
      },
      "appointmentUpdateTemplate": {
        "name": "organization_visit_admin_update_appointment_details",
        "controller": "OrganizationUpdateAppointmentController"
      },
      "feedbackViewTemplateName": "payement_device_feedback_view",
      "ticket_template":"organization_visit_visitRequest_ticket",
      "emailTemplatePath": "common"
    }
  },
  {
    "name" : "Travel and Entertainment",
    "description" : "Booking and access of cinema, drama, lectures, seminar, games",
    "modifiedAt": "2022-12-19 13:50:00",
    "customData" : {
      "thumbnail": "travel",
      "pass" : {"type":"GENERATED", "validation": ""},
      "generatePass": false,
      "idDataType":"BARCODE",
      "biometric" : "FACE",
      "termsAndConditions": "terms_and_condition_content",
      "appointmentsStartOnSessionStart": true,
      "currency": "$",
      "allowTimeSelection": false,
      "seating": true,
      "visitorDetails": true,
      "publicAccessible": true,
      "enablePublcAccessSetting": true
    },
    "configuration":{
      "visitorForm" : {
        "customFields": {
          "form": [{
            "key": "name",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Full name"
          },{
            "key": "phone",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Personal phone number"
          }, {
            "key": "email",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Email address"
          },{
            "key": "address",
            "htmlClass": "col-md-6 col-sm-6 col-xs-12 col-lg-6",
            "placeholder": "Permannat address"
          }],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "title": "Name *",
                "type": "string",
                "required":true
              },
              "phone": {
                "title": "Phone *",
                "type": "string",
                "pattern": "^\\+?\\d+$",
                "validationMessage": "Not a valid phone number",
                "required":true
              },
              "email":{
                "title": "Email *",
                "type": "string",
                "pattern": "^\\S+@\\S+$",
                "validationMessage": "Not a valid email address",
                "required":true
              },
              "address": {
                "title": "Address",
                "type": "string",
                "required":false
              }
            },
            "required": [
              "name",
              "phone",
              "email"
            ]}
        },
        "onLoad": "if (scope.visitor != null ) {if(scope.visitor.primaryTelephone)scope.customModel.phone=scope.visitor.primaryTelephone; scope.customModel.email =scope.visitor.email; var address = scope.visitor.address1 ?? ''; if(scope.visitor.address2){ if(address.length > 0) address = address + ' ' + scope.visitor.address2; else address = scope.visitor.address2;} scope.customModel.address = address;  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": "if(scope.customModel.phone){scope.defaultModel.primaryTelephone =scope.customModel.phone; } var names = scope.customModel.name.split(\" \")\n            if(names.length > 0) {\n                if(names[0]) {\n                    scope.defaultModel.firstName = names[0]\n                    names.shift()\n                }\n            }\n            if(names.length > 0){\n                scope.defaultModel.lastName = names.join(\" \")\n            }else{scope.defaultModel.lastName =\"\"}\n  if(scope.customModel.email)scope.defaultModel.email=scope.customModel.email \n if(scope.customModel.address)scope.defaultModel.address1=scope.customModel.address;scope.defaultModel.email=scope.customModel.email \nconsole.log('Before submit:',scope.defaultModel)"
      },
      "schduleItemCustomFieldFormConfig": {
        "errorMessageKeyOnSubmit": "travel_and_entertainment_no_seating_category_error",
        "templateName": "scheduleItemCustomData",
        "form": [
          {
            "type": "section",
            "htmlClass": "col-md-12 col-sm-12 col-xs-12",
            "items": [
              {
                "key": "categories",
                "add": "Add Pricing group",
                "style": {
                  "add": "btn-success"
                },
                "items": [
                  "categories[].name",
                  "categories[].capacity",
                  "categories[].capacityInRow",
                  "categories[].price"
                ],
                "startEmpty": false
              }
            ]
          }
        ],
        "schema": {
          "type": "object",
          "title": "Comment",
          "required": [
            "categories"
          ],
          "properties": {
            "categories": {
              "type": "array",
              "title": "You must add atleast one pricing group for seating",
              "maxItems": 5,
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "title": "Name",
                    "type": "string"
                  },
                  "capacity": {
                    "title": "Capacity",
                    "type": "integer"
                  },
                  "capacityInRow": {
                    "title": "Number of seats in a row",
                    "type": "integer"
                  },
                  "price": {
                    "title": "Price($)",
                    "type": "number",
                    "x-schema-form": {
                      "type": "number",
                      "step": "0.01"
                    }
                  }
                },
                "required": [
                  "name",
                  "capacity",
                  "capacityInRow",
                  "price"
                ]
              }
            }
          }
        }
      },
      "scheduleCreationTemplate":{
        "template": "common_schedule_add_edit",
        "controller": "CommonScheduleAddEditController"
      },
      "visitNotes":[{
        "title":"common_visit_note_title",
        "description": "common_visit_note_desc",
        "viewTemplate": "common_visit_note_view_template",
        "controller": "CommonVisitNote"
      }],
      "bookingPageTemplate": {
        "kiosk": "organization_visit",
        "public": "visitor_details",
        "overHeadDisplay":"organization_visit_kiosk_next_appointment_display"
      },
      "appointmentSummaryTemplate": {
        "name": "organization_visit_admin_appointment_summary",
        "controller": "OrganizationVisitAppointmentSummeryController"
      },
      "appointmentUpdateTemplate": {
        "name": "organization_visit_admin_update_appointment_details",
        "controller": "OrganizationUpdateAppointmentController"
      },
      "feedbackViewTemplateName": "travel_and_entertainment_device_feedback_view",
      "ticket_template":"organization_visit_visitRequest_ticket",
      "emailTemplatePath": "common"
    },
    "rosterItemCustomData":{"categories":[{"name":"ClassA","capacity":30,"capacityInRow":10,"price":20},{"name":"ClassB","capacity":40,"capacityInRow":10,"price":15}]}
  }

]