query clientSubReport($externalRefNo: Int!) {
  client(externalRefNo: $externalRefNo) {
    clientGroupings {
      items @dataset(name: "groupings") {
        groupType {
          description
        }
        description
      }
    }
    keys {
      items @dataset(name: "keys") {
        name
        description
        keyType {
          name
        }
        keyChain {
          name
        }
      }
    }
    zones {
      items @dataset(name: "zones") {
        moduleNo
        zoneNo
        description
	restoreType
	restoreTracking
	delayTime
	restoreTime
        delayAlarm
        instructions {
          content
        }
      }
    }
      assignedUsers {
        items @dataset(name: "users"){
          user {
            userName
            phoneNo
            mobileNo
            title {
              title
            }
            responseSchedule  @dataset(name: "responseSchedule") {
              alwaysSet
	      name
              schedule {
                items @dataset(name: "openClosePair"){
		  schedule{
			name
		        alwaysSet
		          }
                  open {                    
                    latest {
                      weekDay
                      timeOfDay
                    }
                  }
                  close {                    
                    latest {
                      weekDay
                      timeOfDay
                    }
                  }		
                }
              }
            }
            responseAvailability
            responseStart
            responseEnd
	    email
          }
          userNo
          callOrder
	  instructions
        }
      }
    schedule {
      schedule {
        items  @dataset(name: "schedules") {
          open {
            latest {
              weekDay
              timeOfDay
            }
          }
          close {
            latest {
              weekDay
              timeOfDay
            }
          }
        }
      }
    }
    schedule @dataset(name: "standardSchedule") {
      alwaysSet
    }
    clientNotes {
      items @dataset(name: "notes") {
        position
        title
        startDate
        endDate
        notes
      }
    }
      eventTypes {
        items @dataset(name: "eventTypes"){
          typeNo
          moduleNo
          instructions {
            format
            content
          }
          escalateTypeNo
          description
          delayAlarm
          delayTime
          restoreType
          restoreTracking
          restoreTime
          restoreOnlyBySameZone
        }
      }

      actionPlanOverrides {
        items @dataset(name: "actionPlanOverrides"){
          actionPlan {
            id
            description
            instructions
            priority
          }
          alternativeActionPlan {
            id
            description
            instructions
            priority
          }
          actionPlanGrouping {
            description
          }
        }
      }

      actionPlanInstructions {
        items @dataset(name: "actionPlanInstructions"){
          instructions {
            format
            content
          }
          actionPlan {
            actionPlanId
            description
          }
        }
      }
    publicHolidays {
      items @dataset(name: "publicHolidays"){
        holidayDetails {
          description
	  validFrom
	  validTo
        }
      }
    }
    publicHolidaySchedule @dataset(name: "publicHolidayAlwaysSet"){
      alwaysSet	
      schedule {
        items @dataset(name: "publicHolidaySchedule"){
          open {
            latest {
              weekDay
              timeOfDay
            }
          }
          close {
            latest {
              weekDay
              timeOfDay
            }
          }	
        }
      }      
    }
    responsePlanPreviews {
      items {
        callList {
          items @dataset(name: "callList"){
            responsePlanPreview {
              name
            }
	    callOrder
            user {
              callOrder
              code
              userNo
	      callOrder
              user {
                mobileEmail
                mobileNo
                phoneNo
                email
                userName
		afterHoursNo
		faxNo
		title{title}
              }
            }
            instructionsPreview
          }
        }
      }
    }
  }
}