{"data":{"_service":{"sdl":"scalar AccountNumber\nscalar BigInt\nscalar Byte\nscalar CountryCode\nscalar CountryName\nscalar Cuid\nscalar Cuid2\nscalar Currency\nscalar Date\nscalar DateTime\nscalar DateTimeISO\nscalar DeweyDecimal\nscalar DID\nscalar Duration\nscalar EmailAddress\nscalar GeoJSON\nscalar GUID\nscalar Hexadecimal\nscalar HexColorCode\nscalar HSL\nscalar HSLA\nscalar IBAN\nscalar IP\nscalar IPCPatent\nscalar IPv4\nscalar IPv6\nscalar ISBN\nscalar ISO8601Duration\nscalar JSON\nscalar JSONObject\nscalar JWT\nscalar Latitude\nscalar LCCSubclass\nscalar LocalDate\nscalar LocalDateTime\nscalar Locale\nscalar LocalEndTime\nscalar LocalTime\nscalar Long\nscalar Longitude\nscalar MAC\nscalar NegativeFloat\nscalar NegativeInt\nscalar NonEmptyString\nscalar NonNegativeFloat\nscalar NonNegativeInt\nscalar NonPositiveFloat\nscalar NonPositiveInt\nscalar ObjectID\nscalar PhoneNumber\nscalar Port\nscalar PositiveFloat\nscalar PositiveInt\nscalar PostalCode\nscalar RGB\nscalar RGBA\nscalar RoutingNumber\nscalar SafeInt\nscalar SemVer\nscalar SESSN\nscalar Time\nscalar Timestamp\nscalar TimeZone\nscalar ULID\nscalar UnsignedFloat\nscalar UnsignedInt\nscalar URL\nscalar USCurrency\nscalar UtcOffset\nscalar UUID\nscalar Void\ndirective @undocumented on OBJECT | FIELD_DEFINITION | ENUM\ndirective @deprecated on FIELD_DEFINITION\ndirective @toKebabCase on FIELD_DEFINITION\ndirective @toUpperSnakeCase on FIELD_DEFINITION\ndirective @defaultAvatarCheck on FIELD_DEFINITION\ndirective @defaultVehiclAvatarCheck on FIELD_DEFINITION\ntype Mutation {\n  \"\"\"\n  User authentication\n  \"\"\"\n  signIn(input: SignInInput!): SignInResponse\n  \"\"\"\n  User sign up\n  \"\"\"\n  addAccount(input: UserAccountInput!, avatar: UploadInput, where: WhereCreateAccount, organisationId: ID): AddAccountResponse\n  \"\"\"\n  Create or update student account\n  \"\"\"\n  onboardStudentAccount(input: StudentAccountInput!, where: WhereStudent): ApiResponse\n  \"\"\"\n  Set firebase device token\n  \"\"\"\n  firebaseDeviceToken(input: FirebaseDeviceTokenInput!): ApiResponse\n  \"\"\"\n  Ifunza Admin toggle Module\n  \"\"\"\n  toggleIfunzaModule(moduleId: ID!): ApiResponse\n\n  \"\"\"\n  Sync QuickBooks Customers With School Students\n  \"\"\"\n  syncQuickBooksCustomersWithSchoolStudents(input: SyncQuickBooksCustomersWithSchoolStudentsInput!): ApiResponse\n\n  \"\"\"\n  Add disabled features to school\n  \"\"\"\n  toggleDisabledFeaturesToSchool(input: DisabledSchoolFeaturesInput!): ApiResponse\n\n  \"\"\"\n  Create Ifunza Feature\n  \"\"\"\n  createIFunzaFeature(input: IFunzaFeatureInput!): ApiResponse\n\n  \"\"\"\n  Update Ifunza Feature\n  \"\"\"\n  updateIFunzaFeature(input: IFunzaFeatureInput!, where: WhereId!): ApiResponse\n\n  \"\"\"\n  Delete Ifunza Feature\n  \"\"\"\n  deleteIFunzaFeature(where: WhereId!): ApiResponse\n\n  \"\"\"\n  Delete user account\n  \"\"\"\n  deleteUserAccount(where: [ID!]!): ApiResponse\n  \"\"\"\n  Bulk upload students from a CSV\n  \"\"\"\n  bulkUploadStudents(input: BulkUploadStudentsInput!): ApiResponse\n  \"\"\"\n  Bulk Upload Users to billing group\n  \"\"\"\n  bulkUploadStudentsToBillingGroup(groupId: ID!, file: UploadInput!): ApiResponse\n  \"\"\"\n  Reset student's password.\n\n  This allows School admin to reset students' passwords\n  \"\"\"\n  resetStudentPassword(id: ID!): ResetStudentPasswordResponse\n  \"\"\"\n  Reset account password\n  \"\"\"\n  resetAccountPassword(input: ResetPasswordInput!): ApiResponse\n  \"\"\"\n  Reset Forgot password Via Token\n  \"\"\"\n  resetForgottedPassword(input: ResetPasswordInput!): ApiResponse\n  \"\"\"\n  Send Forgot Password ResetLink\n  \"\"\"\n  generatePasswordResetLink(input: ResetPasswordInput!): ApiResponse\n  \"\"\"\n  Update user account\n  \"\"\"\n  updateUserAccount(input: UserAccountInput!, avatar: UploadInput, where: UserAccountWhere!): UpdateAccountResponse\n  \"\"\"\n  Create journal\n  \"\"\"\n  createJournal(input: CreateJournalInput!, attachments: [UploadInput!]): CreateJournalResponse\n  \"\"\"\n  Update journal. Allows adding and deleting comments, adding and removing likes,\n  adding and removing attachments.\n  \"\"\"\n  updateJournal(input: UpdateJournalInput!, attachments: [UploadInput!], where: WhereId!): ApiResponse\n  \"\"\"\n  React to journal. Comment, Like, Remove like.\n  \"\"\"\n  reactToJournal(input: ReactToJournalInput!, where: WhereId!): ApiResponse\n  \"\"\"\n  Delete journal\n  \"\"\"\n  deleteJournal(id: ID!): ApiResponse\n  \"\"\"\n  Publish a draft journal\n  \"\"\"\n  publishJournal(id: ID!): ApiResponse\n\n  \"\"\"\n  Send announcement\n  \"\"\"\n  sendAnnouncement(input: AnnouncementInput!, attachments: [UploadInput!]): ApiResponse\n  \"\"\"\n  Update announcement. Allows updating title, message,\n  adding and removing attachments. This mutation doesn't allow changing target audience.\n  \"\"\"\n  updateAnnouncement(input: UpdateAnnouncementInput!, attachments: [UploadInput!], where: WhereId!): ApiResponse\n  \"\"\"\n  Delete announcement\n  \"\"\"\n  deleteAnnouncement(id: ID!): ApiResponse\n  \"\"\"\n  Create newsletter\n  \"\"\"\n  createNewsletter(input: CreateNewsletterInput!): ApiResponse\n  \"\"\"\n  Update newsletter\n  \"\"\"\n  updateNewsletter(input: UpdateNewsletterInput!, where: WhereId!): ApiResponse\n  \"\"\"\n  Delete newsletter\n  \"\"\"\n  deleteNewsletter(where: WhereId!): ApiResponse\n  \"\"\"\n  Send a message\n  \"\"\"\n  sendMessage(input: SendMessageInput, attachments: [UploadInput!]): ApiResponse\n  \"\"\"\n  Delete message\n  \"\"\"\n  deleteMessage(where: WhereId!): ApiResponse\n  \"\"\"\n  Create billing period, items\n  \"\"\"\n  createBillingGroup(input: [CreateGroupInput!]!): ApiResponse\n\n  \"\"\"\n  UPDATE BILLINF PERIOD\n  \"\"\"\n  updateBillingGroup(id: ID!, input: CreateGroupInput!): ApiResponse\n  \"\"\"\n  Delete billing group\n  \"\"\"\n  deleteBillingGroup(where: WhereId!): ApiResponse\n  \"\"\"\n  Create billing period - With invoice billing items\n  \"\"\"\n  createBillingPeriod(input: BillingPeriodInput!): ApiResponse\n  \"\"\"\n  Delete billing period\n  \"\"\"\n  deleteBillingPeriod(where: WhereId!): ApiResponse\n  \"\"\"\n  Update billing period\n\n  1. Add entries\n\n  2. Remove entries e.t.c\n  \"\"\"\n  updateBillingPeriod(input: UpdateBillingPeriodInput!, where: WhereId!): ApiResponse\n  \"\"\"\n  Send invoice for billing period\n  \"\"\"\n  sendPeriodInvoice(where: WhereId!, notify: Boolean!): ApiResponse\n  \"\"\"\n  Request loan.\n\n  Open to parents\n  \"\"\"\n  requestStudentLoan(input: RequestStudentLoanInput!, lenderId: ID!): ApiResponse\n  \"\"\"\n  Update loan status\n  \"\"\"\n  updateLoanStatus(input: UpdateLoanStatusInput!, where: WhereId!): ApiResponse\n  \"\"\"\n  Print fee payment receipt\n  \"\"\"\n  printFeeReceipt(input: PrintFeeReceiptInput): PrintablePDFResponse\n  \"\"\"\n  Create classroom\n  \"\"\"\n  createClassroom(input: CreateClassroomInput!): ApiResponse\n  \"\"\"\n  Edit classroom.\n\n  Add/Remove students\n\n  Add/Remove teachers\n  \"\"\"\n  updateClassroom(input: UpdateClassroomInput!, where: WhereId!): ApiResponse\n  \"\"\"\n  Promote students to classroom or transition to state\n  \"\"\"\n  promoteStudents(input: PromoteStudentsInput!, where: WhereId!, to: ID): ApiResponse\n\n  \"\"\"\n  Move Students to Classroom\n  \"\"\"\n  moveStudents(input: MoveStudentsInput!, id: ID): ApiResponse\n  \"\"\"\n  Delete notifications\n  \"\"\"\n  deleteNotifications(input: [ID!]): ApiResponse\n  \"\"\"\n  Mark Notification As Read\n  \"\"\"\n  markNotificationAsRead(input: [ID!]): ApiResponse\n  \"\"\"\n  Create ifunza partner Can either be LENDER or INSURER\n  \"\"\"\n  createIFunzaPartner(input: IFunzaPartnerInput!): PartnerResponse\n\n  \"\"\"\n  Create district\n  \"\"\"\n  createDistrict(input: CreateDistrictInput!, where: WhereOrganisation!): CreateDistrictResponse\n  \"\"\"\n  Update district\n  \"\"\"\n  updateDistrict(input: UpdateDistrictInput!, where: WhereId!): ApiResponse\n  \"\"\"\n  Delete district\n  \"\"\"\n  deleteDistrict(where: WhereId!): ApiResponse\n  \"\"\"\n  Create school.\n\n  Allows creating under district, organisation, or without any othe two\n  \"\"\"\n  createSchool(input: CreateSchoolInput!, where: WhereCreateSchool, disabledFeatures: [ID]): CreateSchoolResponse\n  \"\"\"\n  Update school\n  \"\"\"\n  updateSchool(input: UpdateSchoolInput!, where: WhereId): ApiResponse\n  \"\"\"\n  Delete school account\n\n  Provide an option to delete related data\n  \"\"\"\n  deleteSchool(where: WhereId!): ApiResponse\n  \"\"\"\n  Assign students to a teacher\n  \"\"\"\n  assignStudentsToTeacher(input: AssignStudentToTeacherInput!, where: WhereTeacher!): ApiResponse\n  \"\"\"\n  Assign teacer to a class\n  \"\"\"\n  assignTeacherToClass(input: AssignTeacherToClassInput!, where: WhereClassroom!): ApiResponse\n\n  \"\"\"\n  Link parents to students\n  \"\"\"\n  linkParentsToStudent(input: LinkParentToStudentInput!, where: WhereStudent!): ApiResponse\n  \"\"\"\n  Take attendance\n  \"\"\"\n  takeAttendance(input: [TakeAttendanceInput!]!, params: TakeAttendanceParams!): ApiResponse\n  \"\"\"\n  Get attendance for class students for a specific day or date range\n  \"\"\"\n  classAttendance(where: AttendanceStudentFilter): [ClassroomAttendanceStats!]\n\n  # USER VERIFICAITON\n\n  \"\"\"\n  Add Verification\n  \"\"\"\n  addUserVerification(input: AddUserVerificationInput, idFront: UploadInput!, idBack: UploadInput, mpesaStatement: UploadInput, bankStatement: UploadInput, selfie: UploadInput, signature: UploadInput, payslip: UploadInput): ApiResponse\n\n  \"\"\"\n  Delete Verification\n  \"\"\"\n  deleteUserVerification(input: ID): ApiResponse\n\n  \"\"\"\n  Update Verification\n  \"\"\"\n  updateUserVerification(input: UpdateUserVerificationInput, idFront: UploadInput, idBack: UploadInput, mpesaStatement: UploadInput, bankStatement: UploadInput, selfie: UploadInput): ApiResponse\n\n  \"\"\"\n  update the blacklist status of a user\n  \"\"\"\n  updateBlacklistStatus(input: UpdateBlacklistStatusInput!): ApiResponse\n\n  \"\"\"\n  Initiate STK  push and prompt user to pay amount displayed on the scream\n  \"\"\"\n  mpesaStkPushCheckout(input: MpesaStkPushInput!, where: WhereId!): ApiResponse\n\n  \"\"\"\n  create  loan payment details\n  \"\"\"\n  createLoanPaymentDetails(input: CreateOrUpdateLoanPaymentDetailsInput!, id: ID!): ApiResponse\n\n  \"\"\"\n  update  loan payment details\n  \"\"\"\n  updateLoanPaymentDetails(input: UpdateLoanPaymentDetailsInput!, id: ID!): ApiResponse\n\n  \"\"\"\n  Create/Start Trip\n  \"\"\"\n  trip(input: CreateStartTripInput!): TripResponse\n\n  \"\"\"\n  remove loan payment details\n  \"\"\"\n  removeLoanPaymentDetails(id: ID!): ApiResponse\n\n  \"\"\"\n  create behavioral attendance\n  \"\"\"\n  createOrUpdateBehavioralAttendance(input: CreateBehavioralAttendanceInput!, id: ID): ApiResponse\n\n  \"\"\"\n  Create the Behavioral Tags\n  \"\"\"\n  createOrUpdateBehavioralTags(input: BehavioralTagsInput!): ApiResponse\n  \"\"\"\n  create behavioural suspension\n  \"\"\"\n  createOrUpdateBehavioralSuspension(input: CreateBehavioralSuspensionInput!, id: ID): ApiResponse\n\n  \"\"\"\n  create behavioural Notification\n  \"\"\"\n  createOrUpdateBehavioralNotification(input: CreateBehavioralNotificationInput!, id: ID): ApiResponse\n\n  \"\"\"\n  Allow parents to view Behavioral  Inoformation\n  \"\"\"\n  allowParentsToViewBehavioralInformation(input: AllowParentsToViewBehavioralInformationInput!, id: ID): ApiResponse\n\n  \"\"\"\n  Delete the Behavioral Tags\n  \"\"\"\n  deleteBehavioralTag(id: ID!): ApiResponse\n  \"\"\"\n  Delete school behavioural\n  \"\"\"\n  deleteSchoolBehavioural(id: ID!): ApiResponse\n  \"\"\"\n  Driver Pickup or Drop Group\n  \"\"\"\n  pickOrDrop(input: PickDropInput!, where: ID!): ApiResponse\n\n  \"\"\"\n  Delete Stops From\n  \"\"\"\n  deleteStops(id: ID!, address: CoordinateLocationInput!): ApiResponse\n\n  \"\"\"\n  Driver End Trip\n  \"\"\"\n  driverEndTrip(id: ID!, destination: CoordinateLocationInput): ApiResponse\n  vehicle(input: VehicleInput!): ApiResponse\n  deleteVehicle(id: ID!): ApiResponse\n  updateVehicle(input: VehicleInput!, where: WhereId!): ApiResponse\n\n  \"\"\"\n  Manual Checkout\n  \"\"\"\n  manualCheckout(id: [ID!], input: ManualCheckoutInput!): ApiResponse\n\n  \"\"\"\n  Delete Classroom mutation\n  \"\"\"\n  deleteClassroom(id: ID!): ApiResponse\n  \"\"\"\n  Apply Group bill to students invoice\n  \"\"\"\n  applyGroupBillToStudents(group: WhereId!, invoice: WhereId!): ApiResponse\n  \"\"\"\n  applySingleStudentItem\n  \"\"\"\n  applySingleStudentItemToInvoice(invoice: WhereId!, add: [BillingItemInput], remove: [ID], edit: [EditBillingItemInput!], removedGroups: [ID!]): ApiResponse\n  assignDriverToZone(zone: ID!, driver: ID!): ApiResponse\n  printStudentInvoices(loanId: ID!): [AttachmentResponse]\n  printStudentInvoice(id: ID!): AttachmentResponse\n  updateTripLocation(trip: ID!, location: BusLocationInput!): ApiResponse\n\n  createOrUpdatePartnerSettings(id: ID!, input: PartnerSettingsInput!, logo: UploadInput): ApiResponse\n  sendPromotionalNotification(input: PromotionNotificationInput!): ApiResponse\n\n  registerSchoolMpesaCallback(school: ID!): ApiResponse\n\n  sendOutSchoolCredentials(id: ID!): ApiResponse\n  printLoanInvoice(id: ID!, send: Boolean): PrintablePDFResponse\n\n  \"\"\"\n  Check Billing Period Availability\n  \"\"\"\n  billingPeriodTaken(from: DateTime!, to: DateTime!): Boolean\n  \"\"\"\n  Check if admno/phone/email is takne\n  \"\"\"\n  credentialsTaken(phone: String, email: String, admNo: String): Boolean\n  updateStudentStatus(input: [UpdateStudentStatusInput!]!): ApiResponse\n  \"\"\"\n  Get Parents CSV\n  \"\"\"\n  parentsCsv(id: ID!, inOrganisation: Boolean): PrintablePDFResponse\n\n  \"\"\"\n  Get Class List\n  \"\"\"\n  printClassList(id: ID!, format: PrintType): PrintablePDFResponse\n  printMultipleClasslist(id: [ID!]!, format: PrintType, mode: PrintMode!): PrintablePDFResponse\n\n  \"\"\"\n  Like Or Unlike Journal\n  \"\"\"\n  likeUnlikeJournal(id: ID, like: Boolean): ApiResponse\n  \"\"\"\n  Get Printable PDF Fee Statement for a student\n  \"\"\"\n  feeStatement(id: ID!, year: WhereYear, from: DateTime, to: DateTime, printType: PrintType): PrintablePDFResponse\n\n  \"\"\"\n  Schooladmin to disable messaging between communication groups\n  \"\"\"\n  toggleCommunicationBetweenRoles(group: DisabledFeatureExtension!): ApiResponse\n\n  \"\"\"\n  Remove/Add Students to billing group\n  \"\"\"\n  removeOrAddStudentsToBillingGroup(add: [ID!], remove: [DisconectGroupInput!], groupId: ID!): ApiResponse\n  \"\"\"\n  Invalidate Student Invoice\n  \"\"\"\n  invalidateStudentInvoice(id: [ID!]): ApiResponse\n  \"\"\"\n  Undo Invoices Delete\n  \"\"\"\n  reAddStudentInvoice(id: [ID!]): ApiResponse\n\n  \"\"\"\n  Schooladmin update quickbooks settings\n  \"\"\"\n  updateQuickbooksConfiguration(id: ID!, input: QuickbooksConfigurationInput!): ApiResponse\n\n  \"\"\"\n  Quickbooks sync school invoices\n  \"\"\"\n  syncQuickbooksInvoices(schoolId: ID!, filter: SyncInvoicesFilter): ApiResponse\n\n  \"\"\"\n  Merits Demerits Mutations\n\n  Create SchoolMeritDemerit\n  \"\"\"\n  createSchoolMeritDemerit(input: [SchoolMeritsInput!]!): ApiResponse\n  \"\"\"\n  Update School Merit Demerit\n  \"\"\"\n  updateSchoolMeritDemerit(input: UpdateSchoolMeritsInput!, meritId: ID!): ApiResponse\n  \"\"\"\n  Delete School MeritDemeti\n  \"\"\"\n  deleteSchoolMeritDemerit(meritId: ID!): ApiResponse\n  \"\"\"\n  Record Student Merit\n  \"\"\"\n  recordStudentsMeritDemerit(input: [StudentMeritInput!], update: StudentMeritInput, delete: [ID!]): ApiResponse\n  \"\"\"\n  Edot Student Merit\n  \"\"\"\n  editStudentsMeritDemerit: ApiResponse\n  \"\"\"\n  Update Student Merit/Demerit\n  \"\"\"\n  updateStudentsMeritDemerit(studentMerit: ID!, input: StudentMeritInput): ApiResponse\n  \"\"\"\n  Update School Quickbooks configurations\n  \"\"\"\n  updateSchoolQuickbooksConfigurations(input: QuickbooksConfigurationInput!): ApiResponse\n\n  \"\"\"\n  Update school merits configuration\n  \"\"\"\n  updateSchoolMeritsConfiguration(input: SchoolMeritsConfigurationInput): ApiResponse\n  \"\"\"\n  create grading Period\n  \"\"\"\n  createGradingPeriod(input: GradingPeriodInput!): ApiResponse\n\n  \"\"\"\n  delete grading Period\n  \"\"\"\n  deleteGradingPeriod(id: ID!): ApiResponse\n\n  \"\"\"\n  Record Student Grade\n  \"\"\"\n  recordStudentGrade(input: [StudentGradeInput!]!, examId: ID!): ApiResponse\n  \"\"\"\n  Generate Student Gradebook\n  \"\"\"\n  classReportCards(classroomId: ID!, gradingExam: ID!): [StudentGradeBook]\n  \"\"\"\n  promoteTeacher to class teacher\n  \"\"\"\n  promoteTeacherToClassTeacher(classroomId: ID!, teacherId: ID!): ApiResponse\n\n  \"\"\"\n  createSubjectType\n  \"\"\"\n  createSubjectType(add: [SubjectTypeInput!]!, edit: [SubjectTypeInput!]): ApiResponse\n  deleteSubjectType(id: ID!): ApiResponse\n  deleteGradingExam(id: ID!): ApiResponse\n  deleteExams(id: [ID!]!): ApiResponse\n  \"\"\"\n  updateExamDetails\n  \"\"\"\n  updateExamDetails(examId: ID!, input: UpdateExamInput!): ApiResponse\n  printExamStudentsScore(examId: ID): PrintablePDFResponse\n\n  removeGroupFromBillingPeriod(billingPeriod: ID!, groupId: ID!): ApiResponse\n\n  \"\"\"\n  Create Scheme of work\n  \"\"\"\n  createSchemeOfWork(input: SchemeOfWorkInput!): ApiResponse\n  \"\"\"\n  Print scheme of work\n  \"\"\"\n  printSchemeOfWork(id: ID!): ApiResponse\n\n  \"\"\"\n  Submit ExamsData\n  \"\"\"\n  submitExamData(id: ID!, signature: UploadInput): ApiResponse\n  \"\"\"\n  Verify or submit schemes of work for aprroval\n  \"\"\"\n  verifyOrSubmitSchemeOfWork(where: verifySchemesWhere!): ApiResponse\n  \"\"\"\n  Create Exam Topic Data\n  \"\"\"\n  createOrEditExamTopic(examId: ID!, add: [CreateExamTopicInput], remove: [ID!], edit: [EditExamTopicInput!]): ApiResponse\n  \"\"\"\n  Create A Gradebook Template\n  \"\"\"\n  createGradebookTemplate(input: GradebookTemplateInput!): ApiResponse\n  \"\"\"\n  Print Classroom performance\n  \"\"\"\n  printClassroomExamPerformance(classroomId: [ID!]!, gradingExam: ID!): PrintablePDFResponse\n\n  \"\"\"\n  Delete Scheme of work\n  \"\"\"\n  deleteSchemeOfWork(id: ID!): ApiResponse\n  \"\"\"\n  Create or update school bank account\n  \"\"\"\n  createOrUpdateSchoolBankAccount(bankInput: BankDetailsInput!, id: ID): ApiResponse\n  \"\"\"\n  Create Fee Balance Sheet\n  \"\"\"\n  printFeePaymentReport(filter: FilterFeePayment, printType: PrintType): PrintablePDFResponse\n\n  updateFeesPayment(id: ID!, input: ManualCheckoutInput!): ApiResponse\n\n  \"\"\"\n  Create Grading Period Gradebook\n  \"\"\"\n  createGradingPeriodGradebooks(gradingPeriod: ID!, gradingExams: [ID!]!, templateId: ID!, studentsToExclude: [ID!], options: CreateGradebookOptions, time: DateTime): ApiResponse\n\n  \"\"\"\n  Update Subjects Assigned to Teacher\n  \"\"\"\n  updateSubjectsAssignedToTeacher(subjectIDs: [SubjectInputType!], teacherId: ID!, classroomId: ID!, removeId: ID): ApiResponse\n  \"\"\"\n  Class Teacher Add Exams Comment\n  \"\"\"\n  classTeacherUpdateExamComments(gradingExamId: ID!, comments: [ExamComments!]!, input: [StudentGradeInput!], classroomId: ID!): ApiResponse\n\n  \"\"\"\n  ClassTeacher Submit To School Admin\n  \"\"\"\n  classTeacherSubmitToSchoolAdmin(gradingExam: ID!, signature: UploadInput, classroom: ID!): ApiResponse\n\n  \"\"\"\n  School Admin to Delete Subject from Classroom\n  \"\"\"\n  schoolAdminDeleteSubjectFromClassroom(subjectId: ID!, classroomId: ID!): ApiResponse\n\n  \"\"\"\n  Update Grading Period\n  \"\"\"\n  updateGradingPeriod(add: [GradingExamsInput!]!, remove: ID, gradingPeriod: ID!, name: String, from: DateTime, to: DateTime): ApiResponse\n\n  \"\"\"\n  Update GradingExams\n  \"\"\"\n  updateGradingExams(add: [ID!], remove: [ID!], gradingExam: ID!, name: String, from: DateTime, to: DateTime): ApiResponse\n\n  \"\"\"\n  Create Rubric\n  \"\"\"\n  createClassroomRubric(add: [RubricCriteriaInput!]!, id: ID!): ApiResponse\n\n  \"\"\"\n  Update Classroom Subject\n  \"\"\"\n  updateClassroomSubject(id: ID!, name: String, totalMarks: Int, code: String, showInAssessment: Boolean, hasExams: Boolean): ApiResponse\n\n  \"\"\"\n  Create Subject Strand\n  \"\"\"\n  createClassroomSubjectStrands(id: ID!, classroomId: ID!, strands: [StrandInput!]!): ApiResponse\n\n  \"\"\"\n  Subject Teacher to add marks to Student Sub Strands\n  \"\"\"\n  subjectTeacherAddMarksToStudentStrands(input: StrandMarksInput!): ApiResponse\n\n  \"\"\"\n  Send Gradebook For Students\n  \"\"\"\n  sendStudentGradebooks(id: [ID!]!, gradingExam: ID!): ApiResponse\n  \"\"\"\n  Mark Message as seen\n  \"\"\"\n  updateUserRole(id: ID!, role: UserRole!, schoolId: ID): ApiResponse\n  messageSeen(id: ID!): ApiResponse\n  \"\"\"\n  Mobile Wallet Fee PrePayment\n  \"\"\"\n  schoolfeesWalletPrePayment: MobileFeePrepayment\n  \"\"\"\n  Create Universal Waller\n  \"\"\"\n  createUniversalRubric(input: ExamRubricInput, name: String, classroomId: [ID!]!, subjects: [ID!]!): ApiResponse\n  \"\"\"\n  DELETE SCHOOL WALLET\n  \"\"\"\n  deleteTransaction(id: [ID]!): ApiResponse\n\n  resetStudentPoints: ApiResponse\n  \"\"\"\n  Update Loan as either defaulted or repaid\n  \"\"\"\n  updateLoanPerfomance(defaulted: Boolean, repaid: Boolean, id: ID!): ApiResponse\n\n  uploadStudentGradebook(input: [StudentGradebookInput!]!, gradingExam: ID!): ApiResponse\n\n  deleteExam(id: ID!): ApiResponse\n\n  \"\"\"\n  End School Year\n  \"\"\"\n  endSchoolyear(moveStudents: Boolean, resetPoints: Boolean!, schoolId: ID): ApiResponse\n\n  printPosFeeReceipt(input: PrintFeeReceiptInput): PrintablePDFResponse\n  \"\"\"\n  Get Classroom Bulk UploadTemplate\n  \"\"\"\n  getClassroomGradesUploadTemplate(classroomId: ID!, gradingExamId: ID!): PrintablePDFResponse\n\n  \"\"\"\n  Upload Grading Data\n  \"\"\"\n  uploadGradebookData(file: UploadInput!, gradingExamId: ID!, classroomId: ID!): ApiResponse\n\n  test(input: Upload): ApiResponse\n\n  \"\"\"\n  Print Group List\n  \"\"\"\n  printGroupList(id: ID!, studentsId: [ID!]!): PrintablePDFResponse\n\n  \"\"\"\n  Create Expense Vendor\n  \"\"\"\n  createExpenseVendor(input: ExpenseVendorInput!): ApiResponse\n  \"\"\"\n  Create Expense\n  \"\"\"\n  createExpense(input: CreateBillInput!): ApiResponse\n  \"\"\"\n  Create Expense Account\n  \"\"\"\n  createExpenseAccount(input: [CreateExpenseAccountInput!]!): ApiResponse\n\n  \"\"\"\n  Delete Expense Vendor\n  \"\"\"\n  deleteExpenseVendor(id: ID!): ApiResponse\n\n  \"\"\"\n  Delete Expense Account\n  \"\"\"\n  deleteExpenseAccount(id: String!): ApiResponse\n\n  \"\"\"\n  Record Expense Payment\n  \"\"\"\n  recordExpensePayment(input: ExpensePaymentInput!): ApiResponse\n  \"\"\"\n  Delete Expense Payment\n  \"\"\"\n  deleteExpense(id: ID!): ApiResponse\n  printFinancialReport(reportType: FinancialReportType!, from: DateTime!, to: DateTime!, title: String): PrintablePDFResponse\n  printProfitAndLossReport(fromDate: DateTime!, toDate: DateTime!): PrintablePDFResponse\n\n  \"\"\"\n  Create School Fees Reminders\n  \"\"\"\n  createSchoolFeesReminders(input: SchoolFeesRemindersInput!): ApiResponse\n\n  \"\"\"\n  Buy School SMS\n  \"\"\"\n  buySchoolSMS(input: BuySchoolSMSInput!): ApiResponse\n  \"\"\"\n  Send Bulk SMS\n  \"\"\"\n  sendBulkSMS(input: SendSMSInput!): ApiResponse\n  \"\"\"\n  Activate Reminder\n  \"\"\"\n  activateReminder(id: ID!): ApiResponse\n  \"\"\"\n  Update expense category\n  \"\"\"\n  updateExpenseCategory(input: CreateExpenseAccountInput!, id: ID!): ApiResponse\n  \"\"\"\n  Delete expense category\n  \"\"\"\n  deleteExpenseCategory(id: [ID!]!): ApiResponse\n\n  \"\"\"\n  UPDATE BILL EXPENSE\n  \"\"\"\n  updateExpense(expenseId: ID!, input: UpdateBillInput!, remove: [ID!], add: [BillLineInput!], update: [BillLineInput!]): ApiResponse\n  \"\"\"\n  UPDATE SCHOOL EXPENSE VENDOR\n  \"\"\"\n  updateSchoolExpenseVendor(input: ExpenseVendorInput!, id: ID!): ApiResponse\n\n  \"\"\"\n  TOGGLE IFUNZA PARTNER\n  \"\"\"\n  toggleIFunzaPartner(partnerId: ID!): ApiResponse\n  \"\"\"\n  DELETE SCHOOL BANK ACCOUNT\n  \"\"\"\n  deleteSchoolBankAccount(id: ID): ApiResponse\n\n  \"\"\"\n  RE ADD STUDENT INVOICE ITEM\n  \"\"\"\n  reAddStudentInvoiceItem(itemId: ID!, invoiceId: ID!): ApiResponse\n  printStudentFeePaymentReport(id: ID!, from: DateTime, to: DateTime): PrintablePDFResponse\n  \"\"\"\n  REMOVE STUDENT FROM SINGLE EXAM\n  \"\"\"\n  removeStudentFromExams(id: [ID!]!, examsId: ID!): ApiResponse\n  \"\"\"\n  REMOVE STUDENT FROM GRADING EXAMS\n  \"\"\"\n  removeStudentFromGradingExams(studentIds: [ID!]!, gradingExams: ID!): ApiResponse\n\n  printSalesReport(from: DateTime, to: DateTime, schoolId: [ID!]): ApiResponse\n  migateInvoiceNumber: ApiResponse\n  \"\"\"\n  CREATE AN ORGANIZATION\n  \"\"\"\n  createOrganization(input: createOrganizationInput!): ApiResponse\n\n  \"\"\"\n  UPDATE AN ORGANIZATION\n  \"\"\"\n  updateOrganization(input: updateOrganizationInput, id: ID!): ApiResponse\n  \"\"\"\n  DELETE ORGANIZATION\n  \"\"\"\n  deleteorganization(id: ID!): ApiResponse\n  \"\"\"\n  TRANSFER SCHOOLS FROM ONE ORGANIZATION TO ANOTHER\n  \"\"\"\n  transferSchoolsFromOneOrgToAnother(from: transferSchoolsToOrgFromInput!, to: transferSchoolsToOrgToInput!): ApiResponse\n  \"\"\"\n  User Re sign in with update Token of school and role\n  \"\"\"\n  regenerateNewToken(schoolId: ID!, token: String!, role: UserRole): SignInResponse\n\n  \"\"\"\n  Assign User with Roles\n  \"\"\"\n  assignUsersWithRoles(roles: [UserRole]!, userId: ID!): ApiResponse\n\n  \"\"\"\n  Change Role\n  \"\"\"\n  changeRole(role: UserRole!, userId: ID!): SignInResponse\n\n  migrateAccounts: ApiResponse\n\n  \"\"\"\n  Print Fees Reminder\n  \"\"\"\n  printFeesReminder(input: [ReminderPrintInput!]!): [Attachment]\n  printFeesPayment(from: DateTime, to: DateTime, studentId: [ID!], classrooms: [ID!], printType: PrintType): PrintablePDFResponse\n\n  \"\"\"\n  Account Logout\n  \"\"\"\n  logout: ApiResponse\n  \"\"\"\n  Update Fee Reminder\n  \"\"\"\n  updateFeeReminder(input: UpdateReminderInput!, id: ID!): ApiResponse\n\n  \"\"\"\n  Add student to exams\n  \"\"\"\n  addStudentToExam(studentId: [ID!]!, examId: ID!): ApiResponse\n  \"\"\"\n  ADD STUDENT TO GRADING EXAM\n  \"\"\"\n  addStudentToGradingExam(studentId: [ID!]!, examId: ID!): ApiResponse\n\n  \"\"\"\n  CREATE STUDENT ASSESSMENT REPORT\n  \"\"\"\n  createStudentAssementReport(studentId: [ID!]!): ApiResponse\n\n  \"\"\"\n  SUBMIT STUDENT ASSESSMENT REPORT\n  \"\"\"\n  recordStudentAssementReport(studentId: ID!, scores: [AssessmentInput!]!): ApiResponse\n\n  \"\"\"\n  DELETE STUDENT ASSESSMENT REPORT\n  \"\"\"\n  deleteStudentAssessmentReport(studentId: ID!): ApiResponse\n\n  \"\"\"\n  SUBMIT ASSESSMENT REPORT\n  \"\"\"\n  submitAssessmentReport(studentId: ID!): ApiResponse\n\n  \"\"\"\n  UPDATE SCHOOL CONFIGURATION\n  \"\"\"\n  updateSchoolConfiguration(input: SchoolConfigurationInput!, schoolId: ID!): ApiResponse\n  \"\"\"\n  PRINT EXPENSES LIST\n  \"\"\"\n  printExpenseReportList(from: DateTime, to: DateTime, categoryId: ID): PrintablePDFResponse\n\n  \"\"\"\n  PRINT EXPENSE VENDORS\n  \"\"\"\n  printExpenseVendorsList: PrintablePDFResponse\n\n  \"\"\"\n  PRINT EXPENSE ACCOUNTS\n  \"\"\"\n  printExpenseAccounts: PrintablePDFResponse\n\n  \"\"\"\n  PRINT ATTENDANCE REPORT\n  \"\"\"\n  printAttendanceReport(filter: AttendanceReportFilter): PrintablePDFResponse\n\n  \"\"\"\n  PRINT STUDENT ATTENDANCE REPORT\n  \"\"\"\n  printStudentAttendanceReport(studentId: ID!, filter: AttendanceReportFilter): PrintablePDFResponse\n\n  \"\"\"\n  PRINT STUDENT GRADING REPORT\n  \"\"\"\n  printStudentGradingReport(studentId: ID!, gradingExams: [ID!]): PrintablePDFResponse\n\n  \"\"\"\n  SUPER SCHOOL LOGIN\n  \"\"\"\n  superSchoolLogin(schoolId: ID!): SignInResponse\n\n  \"\"\"\n  REMOVE CLASSROOM FROM GRADING EXAMS\n  \"\"\"\n  removeClassroomFromGradingExams(classroomId: [ID!]!, gradingExams: ID!): ApiResponse\n  \"\"\"\n  CREATE THE SALARY STRUCTURE\n  \"\"\"\n  createSalaryStructure(input: salaryStructureInput): ApiResponse\n\n  \"\"\"\n  ADD EARNINGS\n  \"\"\"\n  addEarning(input: [EarningInput!]!, structureId: ID!, id: ID): ApiResponse\n  \"\"\"\n  ADD Deductions\n  \"\"\"\n  addDeductions(input: [DeductionsInput!]!, structureId: ID!, id: ID): ApiResponse\n  \"\"\"\n  ADD EMPLOYEE\n  \"\"\"\n  addEmployees(employeeType: [EmployeeType!]!, employeesIds: [ID], structureId: ID!, name: String, isActive: Boolean): ApiResponse\n\n  \"\"\"\n  REMOVE EARNINGS ,EMPLOYEE OR DEDUCTIONS\n  \"\"\"\n  removeEarningOrDeductionOrEmp(employeeId: ID, earningId: ID, deductionId: ID, structureId: ID): ApiResponse\n\n  \"\"\"\n  GENERATE THE SALARRY PAYSLIPS\n  \"\"\"\n  generatePayslips(month: Int!, year: Int!, structureIds: [ID!], payslipType: PayslipType!): ApiResponse\n\n  \"\"\"\n  UPDATE PAYSLIP STATUS TO PAID\n  \"\"\"\n  updatePayslipStatus(paymentMethod: PayslipPaymentMethod!, ids: [ID!]!): ApiResponse\n\n  \"\"\"\n  DELETE unpaidpayslip\n  \"\"\"\n  deleteUnpaidPayslip(id: ID!): ApiResponse\n\n  \"\"\"\n  Generate Salary Payslip PDf\n  \"\"\"\n  generatePayslipPDf(id: ID!): PrintablePDFResponse\n\n  \"\"\"\n  Delete  Payslip Deduction\n  \"\"\"\n  deletePayslipDeduction(id: ID!, payslipID: ID!): ApiResponse\n\n  \"\"\"\n  Delete Payslip Earning\n  \"\"\"\n  deletePayslipEarning(id: ID!, payslipID: ID!): ApiResponse\n  \"\"\"\n  Add Payslip Earning\n  \"\"\"\n  AddPayslipEarning(amount: Float!, title: String!, payslipID: ID!, id: ID): ApiResponse\n  \"\"\"\n  Add Payslip Deduction\n  \"\"\"\n  AddPayslipDeduction(amount: Float!, title: String!, payslipID: ID!, id: ID): ApiResponse\n\n  \"\"\"\n  Update salary structure name\n  \"\"\"\n  updateSalaryStructureName(structureId: ID!, name: String!): ApiResponse\n\n  \"\"\"\n  Set Salary Payment Method\n  \"\"\"\n  setSalaryPaymentMethod(method: [PayslipPaymentMethod!]!, input: PaymentInput): ApiResponse\n  \"\"\"\n  Update the Payment details\n  \"\"\"\n  updatePaymentDetails(input: PaymentInput, bankId: ID, methodId: ID!): ApiResponse\n  \"\"\"\n  Add New Bank\n  \"\"\"\n  addNewBank(input: PaymentInput, methodId: ID!): ApiResponse\n  \"\"\"\n  Make Bank default\n  \"\"\"\n  makeBankDefault(id: ID!, methodId: ID!): ApiResponse\n\n  \"\"\"\n  Delete Bank\n  \"\"\"\n  deleteBank(id: ID!): ApiResponse\n\n  \"\"\"\n  Generate p9 form\n  \"\"\"\n  generatep9Form(yearFrom: Int, yearTo: Int, monthFrom: Int, monthTo: Int, userIds: [ID!]!): ApiResponse\n\n  \"\"\"\n  MUTATION ADD EXAMS TO GRADING EXAMS\n  \"\"\"\n  addGradingExamSubject(subjectId: [ID!]!, gradingExam: ID!): ApiResponse\n\n  \"\"\"\n  MUTATION PRINT CLASS REPORT CARD\n  \"\"\"\n  printClassroomReportCard(classroomId: ID!, gradingExam: ID!): PrintablePDFResponse\n\n  \"\"\"\n  CREATE USER DOCUMENT\n  \"\"\"\n  createUserDocument(userId: ID!, upload: UploadInput!, name: String!, type: String!): ApiResponse\n\n  \"\"\"\n  MUTATION DELETE USER DOCUMENT\n  \"\"\"\n  deleteUserDocument(id: ID!): ApiResponse\n\n  \"\"\"\n  DELETE BILLING PERIOD\n  \"\"\"\n  deleteBillingPeriodReminder(id: ID!): ApiResponse\n\n  \"\"\"\n  PRINT LOAN APPLICATION FORM\n  \"\"\"\n  printLoanApplicationForm(id: ID!): PrintablePDFResponse\n\n  \"\"\"\n  DELETE INVOICE TRANSACTION\n  \"\"\"\n  deleteInvoiceTransaction(id: ID!, refund: Boolean): ApiResponse\n  \"\"\"\n  REFUND INVOICE PAYMENT\n  \"\"\"\n  refundInvoicePayment(id: ID!): ApiResponse\n\n  \"\"\"\n  Generate Student Invoices. Will only generate student invoices but they wont be sent to parents\n  \"\"\"\n  generateStudentInvoices(periodId: ID!): ApiResponse\n\n  \"\"\"\n  Send single period fees reminder\n  \"\"\"\n  sendPeriodReminder(id: ID!): ApiResponse\n  \"\"\"\n  JOIN SELF ONBOARDED USER WITH LEGACY USER\n  \"\"\"\n  joinIfunzaUser(userId: ID!, onboardedId: ID!): ApiResponse\n  \"\"\"\n  PRINT INVOICE STATEMENT\n  \"\"\"\n  printInvoiceStatement(id: ID!): PrintablePDFResponse\n  \"\"\"\n  Print classroom exam anaylsis\n  \"\"\"\n  printClassroomGradingAnalysis(classroomId: ID!, gradingExamId: ID!): PrintablePDFResponse\n\n  \"\"\"\n  CREATE SCHOOL EVENT\n  \"\"\"\n  createSchoolEvent(input: EventInput!, attachments: [UploadInput!]): ApiResponse\n  \"\"\"\n  Update school event\n  \"\"\"\n  updateSchoolEvent(input: EventInput!, attachments: [UploadInput!], id: ID!): ApiResponse\n  deleteSchoolEvent(id: ID!): ApiResponse\n  \"\"\"\n  Delete Salary structure\n  \"\"\"\n  deleteSalaryStructure(id: ID!): ApiResponse\n\n  \"\"\"\n  Sing Payslip\n  \"\"\"\n  signPayslip(id: ID!, file: String!): ApiResponse\n\n  \"\"\"\n  GENERATE GRADING EXAM ANALYSIS\n  \"\"\"\n  generateGradingExamAnalysis(gradingExams: ID!, classroomId: ID!): ApiResponse\n  \"\"\"\n  Rarify billing period\n  \"\"\"\n  rarifyBillingPeriod(id: ID!): ApiResponse\n\n  \"\"\"\n  printFeePaymentStatement\n  \"\"\"\n  printFeePaymentStatement(filter: FilterFeePayment, printType: PrintType): PrintablePDFResponse\n  \"\"\"\n  Scan grading scores\n  \"\"\"\n  scanGradingScores(gradingExamId: ID!, input: UploadInput!, examId: ID!, subjectId: ID!): [ScannedScore!]!\n\n  \"\"\"\n  AI generate exam comments\n  \"\"\"\n  aiGenerateExamComments(examId: ID!, score: Int!, studentId: ID!, scoreId: ID!): ApiResponse\n\n  \"\"\"\n  Toggle can edit transactions\n  \"\"\"\n  toggleCanEditTransactions(id: ID!, canEdit: Boolean!): ApiResponse\n  \"\"\"\n  Book event time slot\n  \"\"\"\n  bookEvent(id: ID!): ApiResponse\n  \"\"\"\n  Cancel event time slot\n  \"\"\"\n  cancelEvent(id: ID!): ApiResponse\n  \"\"\"\n  Update event time slot\n  \"\"\"\n  updateEvent(input: BookEventInput!, id: ID!): ApiResponse\n\n  \"\"\"\n  Print attendance roll call\n  \"\"\"\n  printAttendanceRollCall(date:DateTime!, classrooms: [ID!]!): PrintablePDFResponse\n}\n\ntype Query {\n  \"\"\"\n  Get user account details. Only returns first level information.\n  \"\"\"\n  account(id: ID!): Account\n  \"\"\"\n  Get All users\n  \"\"\"\n  accounts(page: Int, pageSize: Int, filter: AccountFilter, orderBy: UserOrderBy): PaginatedResponse\n  \"\"\"\n  Get teachers.\n  \"\"\"\n  teachers(filter: TeachersFilter, hasSalaryStructure: Boolean): [Account!]\n  \"\"\"\n  Get teacher account details,\n  including assigned classrooms, and journals posted.\n  \"\"\"\n  teacher(id: ID!): Teacher\n\n  \"\"\"\n  Get Classroom Teacher\n  \"\"\"\n  classroomTeachers(classroomId: ID!): [Teacher!]\n  \"\"\"\n  Get journals. Filter by user, postType, and status (PUBLISHED, DRAFT, or both)\n  \"\"\"\n  journals(page: Int, user: ID, postType: [ContentPostType!], status: [JournalStatus!]): [JournalWithCount!]\n  \"\"\"\n  Get journal. Filter by id\n  \"\"\"\n  journal(id: ID!): Journal\n  \"\"\"\n  Get draft journals for the current user\n  \"\"\"\n  draftJournals(page: Int): [JournalWithCount!]\n\n  \"\"\"\n  Get students.\n  Parents will get students linked to their profiles.\n  School admins will get all students in their schools\n  \"\"\"\n  students(filter: StudentsFilter, statusFrom: DateTime, statusTo: DateTime): StudentsResponse!\n  \"\"\"\n  Get student.\n  Profile, student parents, and journals. Pass page to paginate journals\n  \"\"\"\n  student(id: ID!, page: Int): StudentProfile\n  \"\"\"\n  Get parents.\n  Teachers will get parents whose kids are in their assigned classrooms\n  \"\"\"\n  parents(filters: ParentsFilter): ParentsResponse\n  \"\"\"\n  Get parent profile\n  \"\"\"\n  parent(where: WhereId!): Parent\n\n  \"\"\"\n  Get announcements.\n  Pass page to paginate.\n  \"\"\"\n  announcements(page: Int, user: ID): [Announcement!]\n  \"\"\"\n  Calendar events.\n  Filtered from announcements, to return calendar events. Pass `upcoming` to only return future events.\n  \"\"\"\n  calendarEvents(upcoming: Boolean, date: DateTime): [CalendarEvent!]\n  \"\"\"\n  Get single calendarEvent\n  \"\"\"\n  calendarEvent(id: ID!): CalendarEvent\n  \"\"\"\n  Get announcement.\n  \"\"\"\n  announcement(id: ID!): Announcement\n  \"\"\"\n  Get newsletters.\n  \"\"\"\n  newsletters(page: Int, pageSize: Int): [Newsletter!]\n\n  \"\"\"\n  Get newsletter\n  \"\"\"\n  newsletter(id: ID!): Newsletter\n  \"\"\"\n  Geocode address. Given lat,lng\n  \"\"\"\n  reverseGeocode(address: String!): GeocodeResponse\n  \"\"\"\n  Available chat users\n  \"\"\"\n  availableChatContacts(page: Int, pageSize: Int): [Account!]\n  \"\"\"\n  Active chat sessions.\n  To display on the messages view. Pass `page` to paginate.\n  Returns 20 sessions per page.\n  \"\"\"\n  activeChatSessions(page: Int): [ChatSession!]\n  \"\"\"\n  Get unread messages\n  \"\"\"\n  unreadMessages: [Message!]\n  \"\"\"\n  Get conversation.\n  Pass `id` which is the user id to converse with, and `page` to paginate\n  \"\"\"\n  userConversation(id: ID!, page: Int): [Message!]\n  \"\"\"\n  Get assigned groups and/or clubs\n  \"\"\"\n  assignedGroupsAndClubs: [GroupOrClub!]\n  \"\"\"\n  Get Single assigned group or club\n  \"\"\"\n  assignedGroupsAndClub(id: ID!): GroupOrClub!\n  \"\"\"\n  Get billing groups\n  \"\"\"\n  billingGroups(where: BillingGroupsFilter, page: Int, pageSize: Int): [BillingGroupEnvelope!]\n  \"\"\"\n  Get billin group and students in it\n  \"\"\"\n  billingGroup(id: ID!): BillingGroup\n  \"\"\"\n  Get billing items for a year.\n\n  This will return all billing periods created for year X\n  \"\"\"\n  billingPeriods(where: WhereYear, schoolID: ID): [BillingPeriodEnvelope!]\n  \"\"\"\n  Get billing period\n  \"\"\"\n  billingPeriod(where: WhereId!): BillingPeriod\n\n  \"\"\"\n  billingPeriodBreakdown\n  \"\"\"\n  billingPeriodEnvelope(where: WhereId): BillingPeriod\n  \"\"\"\n  Get student invoices\n  \"\"\"\n  studentInvoices(where: FilterInvoices!): [StudentInvoice!]\n  \"\"\"\n  Student Invoices Shallow\n  \"\"\"\n  studentInvoicesEnvelope(where: FilterInvoices!): [StudentInvoiceEnvelope!]\n  \"\"\"\n  Get one invoice by `id`\n  \"\"\"\n  studentInvoice(where: WhereId!): StudentInvoice\n\n  \"\"\"\n  Get Payment History\n  \"\"\"\n  paymentHistory(student: ID, where: PaymentHistoryFilter, filter: ClassroomsFilter): [SinglePayment]\n  \"\"\"\n  Requested loans\n  \"\"\"\n  requestedLoans(where: RequestedLoansFilter): [StudentLoan!]\n\n  \"\"\"\n  Single Requested Loan\n  \"\"\"\n  requestedLoan(where: WhereId!): StudentLoan\n  \"\"\"\n  Print student invoice\n  \"\"\"\n  printStudentInvoice(where: WhereId!): AttachmentResponse\n  \"\"\"\n  Stats for invoice - Billing period\n  \"\"\"\n  billingPeriodStats(where: WhereId!): BillingPeriodStats\n  \"\"\"\n  Get partners of given type.\n  \"\"\"\n  partners(type: IFunzaPartnerType!): PartnersResponse\n  \"\"\"\n  Get One Partner\n  \"\"\"\n  partner(where: WhereId): PartnerResponse\n  \"\"\"\n  Lender dashboard stats\n  \"\"\"\n  lenderStatistics(where: WhereId): LenderDashboardStatsResponse\n  \"\"\"\n  Lender Monthly Status Statistics\n  \"\"\"\n  lenderMonthlyStatistics(where: WhereId, status: [SchoolFeesLoanStatus]): LenderTicketsMonthly\n  lenderMonthlyTotalStatistics(where: WhereId, status: [SchoolFeesLoanStatus]): LenderTicketsMonthly\n  \"\"\"\n  Classrooms\n  \"\"\"\n  classrooms(where: ClassroomsFilter): [ClassroomEnvelope!]\n  \"\"\"\n  Filter classroom by id\n  \"\"\"\n  classroom(id: ID!): Classroom\n\n  \"\"\"\n  Get all Ifunza Features\n  \"\"\"\n  ifunzaFeatures: [IfunzaFeatureResponse!]\n\n  \"\"\"\n  School Modules Status\n  \"\"\"\n  schoolModulesStatus(schoolId: ID): [SchoolFeatures]\n  \"\"\"\n  Get unread notitifications\n  \"\"\"\n  unreadNotifications: [Notification!]\n  \"\"\"\n  Get all delivery reports from africastalking\n  \"\"\"\n  africastalkingDeliveryReports(pagination: PaginationInput): AfricasTalkingDeliveryReportResponse\n\n  \"\"\"\n  Get all delivery reports from mailgun\n  \"\"\"\n  mailgunDeliveryReports(pagination: PaginationInput): MailgunDeliveryReportResponse\n\n  \"\"\"\n  Get all notifications\n  \"\"\"\n  notifications: [Notification!]\n  \"\"\"\n  Count Unread Notifications\n  \"\"\"\n  countUnreadNotifications: NotificationCount\n  \"\"\"\n  School Stats for School admins\n  \"\"\"\n  schoolStatistics(where: WhereId): SchoolWithStats\n  \"\"\"\n  Get organisations\n  \"\"\"\n  organisations: [OrganisationAggregate!]\n  \"\"\"\n  Get organisation\n  \"\"\"\n  organisation(where: WhereId!): Organisation\n  \"\"\"\n  Get organisation districts\n  \"\"\"\n  organisationDistricts(where: WhereOrganisation): [DistrictAggregate!]\n  \"\"\"\n  Get district, with admins & schools\n  \"\"\"\n  organisationDistrict(where: WhereId!): District\n  \"\"\"\n  Get organisation schools\n  \"\"\"\n  organisationSchools(where: WhereOrganisation): SchoolAggregateResponse!\n  \"\"\"\n  Get organisation school\n  \"\"\"\n  organisationSchool(where: WhereId!): School\n\n  \"\"\"\n  Organisation user account stats (To be used in the CRM view)\n  \"\"\"\n  organisationCRMStats(where: WhereId): [StatEntry!]\n  \"\"\"\n  Filter user accounts by role\n  \"\"\"\n  filterUserAccountsByRole(account: [UserRole!]!, inOrganisations: Boolean, hasSalaryStructure: Boolean): [Account!]\n  \"\"\"\n  Organisation statistics\n  \"\"\"\n  organisationAdminStats(where: WhereOrganisation): OrganisationStats\n  \"\"\"\n  Get teacher assigned to a student\n  \"\"\"\n  assignedTeacher(where: WhereStudent!): [AssignedPersonnel!]\n  \"\"\"\n  Stats for teacher dashboard\n  \"\"\"\n  teacherDashboardStats(where: WhereId): TeacherDashboardStatsResponse\n  \"\"\"\n  iFunza admin dashboard stats\n  \"\"\"\n  ifunzaAdminStats: IFunzaAdminStats\n  \"\"\"\n  Get school M-Pesa shortcodes and bamk account details\n  \"\"\"\n  schoolWallet(where: WhereId): SchoolWallet\n  \"\"\"\n  Pre take attendance.\n\n  This query will populate attendance records for specified date and return all students for a class, and defaults to all students present\n  \"\"\"\n  preTakeAttendance(input: TakeAttendanceParams!): [AttendanceResponse!]\n  \"\"\"\n  Get attendance for a specific day or date range\n  \"\"\"\n  attendance(where: AttendanceRecordsFilter): [AttendanceResponse!]\n  \"\"\"\n  Get attendance stats for graphing purposes\n  \"\"\"\n  attendanceStats(where: AttendanceRecordsFilter): [AttendanceStats!]\n\n  \"\"\"\n  Get attendance for class students for a specific day or date range\n  \"\"\"\n  getclassAttendance(where: AttendanceStudentFilter): [ClassroomAttendanceStats!]\n\n  \"\"\"\n  attendance Summary\n  \"\"\"\n  attendanceSummary(where: ID, from: DateTime, to: DateTime): AttendanceSummary\n  \"\"\"\n  School fees arrears\n  \"\"\"\n  schoolFeesArrears(where: WhereStudent!, filter: FilterInvoices): SchoolFeesArrear\n  \"\"\"\n  Get USer Verification Details\n  \"\"\"\n  userVerification(where: UserVerificationsFilter): UserVerificationType\n\n  \"\"\"\n  Get Trip Topics\n  \"\"\"\n  tripTopics: [Trip!]\n  \"\"\"\n  Get Information about single Trip\n  \"\"\"\n  trip(id: ID): Trip\n  \"\"\"\n  Get All Trips\n  \"\"\"\n  trips(where: WhereId, active: Boolean, page: PaginationInput): [Trip!]\n\n  \"\"\"\n  Get All Active Transport Routes\n  \"\"\"\n  transportRoutes(where: WhereId, active: Boolean, page: PaginationInput): [TransportRoute!]\n\n  \"\"\"\n  Fleet Manager Stats\n  \"\"\"\n  fleetManagerStats: FleetStatsResponse\n  \"\"\"\n  Vehicles\n  \"\"\"\n  vehicles: [Vehicle!]\n  vehicle(id: ID!): Vehicle!\n\n  \"\"\"\n  Get Fees Payment Stats\n  \"\"\"\n  feesPaymentStats(from: DateTime, to: DateTime, billingPeriod: ID): [FeesPaymentStats!]\n\n  \"\"\"\n  getSchoolTotalFees\n  \"\"\"\n  totalFeePayment(from: DateTime, to: DateTime): TotalFeeStats\n\n  \"\"\"\n  attendanceGroupedByDate\n  \"\"\"\n  attendanceGroupedByDate(where: AttendanceRecordsFilter!): [AttendanceGrouped]\n  generateFeeStructure(year: WhereYear!, classroom: WhereClassroom!): PrintablePDFResponse\n  absentReport(where: AttendanceRecordsFilter): [AttendanceAggregate]\n  lenderCustomers(id: ID!, page: Int): [LenderCustomer]\n  partnerSettings(where: WhereId): PartnerSettings\n\n  afrikasTalkingBalance: ApiResponse\n\n  loanPaymentsDetails(where: ID): LoanPaymentDetails\n  \"\"\"\n  Ifunza Admin Feature stats\n  \"\"\"\n  ifunzaFeaturesStat: ModulesDashboardStats\n\n  \"\"\"\n  Get Journal Comments,students and comments\n  \"\"\"\n  journalReactions(id: ID!): JournalReactions\n  \"\"\"\n  Get All Kids Associated With A Parent\n  \"\"\"\n  parentKids(parentId: ID): [Student]\n  \"\"\"\n  Students assigned to teachers/classroom teacher teaches\n  \"\"\"\n  teacherStudents(teacherId: ID): [Student]\n  \"\"\"\n  user disabledFeatures\n  \"\"\"\n  userDisabledFeatures: [SupportedFeatures]\n\n  \"\"\"\n  Fetch School Messaging Disabled Messages\n  \"\"\"\n  schoolExtensionDisabled(schoolId: ID): [DisabledFeatureExtension]\n\n  \"\"\"\n  Fetch School Quickbooks Configuration\n  \"\"\"\n  schoolQuickbooksSettings(schoolId: ID!): QuickbooksConfiguration\n\n  \"\"\"\n  Get school merits configuration\n  \"\"\"\n  schoolBehaviouralConfiguration: SchoolMeritsConfiguration\n\n  \"\"\"\n  meritDemeritStats\n  \"\"\"\n  behaviouralStats(filter: FilterMerits): [BehaviouralStats]\n  \"\"\"\n  Single School Behavioural\n  \"\"\"\n  schoolBehavioural(behavioralId: ID!): SchoolMeritsEnvelope\n  \"\"\"\n  SchoolMeritsDemerits\n  \"\"\"\n  schoolBehaviourals(schoolId: ID): [SchoolMerits]\n\n  studentBehaviouralPoints(studentId: ID!): [StudentMeritStats]\n  \"\"\"\n  School Metrits Agregated By Dates\n  \"\"\"\n  behavioralPointsByDate(filter: FilterMerits!): [MeritGroupedByDate]\n\n  \"\"\"\n  Students Point Breakdown\n  \"\"\"\n  studentsPointBreakdown(filter: FilterMerits): [Student]\n  \"\"\"\n  Students Merrits\n  \"\"\"\n  studentMerits(studentsId: [ID!]!): [StudentMeritsEnvelope]\n\n  \"\"\"\n  Grading Period\n  \"\"\"\n  gradingPeriods(filter: GradingPeriodFilter): [GradingPeriod]\n  exams(filter: ExamsFilter): [Exams]\n  studentExamsScores(filter: StudentScoreFilter): [studentExamScore]\n  gradingPeriod(id: ID!): GradingPeriod\n  exam(id: ID!): Exams\n  studentExamsScore(id: ID!): studentExamScore\n  subjectType: [SubjectType]\n  classroomSubjects(classroomId: ID): [ClassroomSubject]\n  gradingExams(input: GradingExamsFilter): [GradingExam]\n  gradingExamsShallow(input: GradingExamsFilter): [GradingExamEnvelope]\n  gradingExam(id: ID!, filter: GradingExamsFilter): GradingExam\n  teacherGradingExamsScore(gradingExam: ID): TeacherGradingScores\n\n  \"\"\"\n  Exam breakdown for a single classroom by classroom id e.g 4 East with ID 3idoio\n  \"\"\"\n  classroomExamBreakdown(classroomId: ID!, gradingExamsId: ID!): ClassroomExamEnvelope\n  \"\"\"\n  Exam breakdown for a single class. e.g class 4\n  \"\"\"\n  classExamBreakdown(gradingExamsId: ID!, class: String!): ClassExamEnvelope\n  \"\"\"\n  Find parent view grading exam\n  \"\"\"\n  studentExamsList(studentId: ID!, from: DateTime, to: DateTime): [GradingExam]\n\n  \"\"\"\n  Finds all classrooms in a grading exams\n  \"\"\"\n  gradingExamsClassrooms(id: ID): [ClassroomGradingEnvelope]\n\n  schemeOfWork(id: ID!): SchemeOfWork\n  schemesOfWork(teacherId: ID, isSubmittedForVerificaton: Boolean): [SchemeOfWork!]!\n  \"\"\"\n  Get Breakdown of performance for a single classroom stream ie. class 4 east\n  \"\"\"\n  gradingExamClassrooms(id: [ID]): [ClassroomEnvelope]\n  \"\"\"\n  Get Breakdown of performance for a single classroom ie. class 4\n  \"\"\"\n  gradingExamClass(id: [ID]): [ClassEnvelope]\n  gradeBookTemplates(filter: GradebookTemplateFilter): [GradebookTemplate]\n\n  \"\"\"\n  Assemble Gradebook preview\n  \"\"\"\n  createGradebookPreview(gradingExam: [ID!]!, gradingPeriod: ID!, templateId: ID!, classroom: ID): PrintablePDFResponse\n  \"\"\"\n  Get Single Gradebook\n  \"\"\"\n  studentGradeBook(studentId: ID!, gradingExam: ID!): StudentGradeBook\n  studentReportCard(studentId: ID!, gradingPeriod: ID): [StudentGradeBook]\n\n  classTeacherGradingExams(classroomId: [ID!], gradingPeriod: [ID!], gradingExams: [ID!]): [ClassTeacherGradingExamEnvelope]\n  StudentsGradingExamsForParent: [ParentToKidGradingExam]\n\n  \"\"\"\n  Classroom Subject\n  \"\"\"\n  classroomSubject(subjectId: ID!): ClassroomSubjectEnvelope\n\n  \"\"\"\n  Get Subject Strands\n  \"\"\"\n  StudentsubjectsStrands(studentId: ID!, date: DateTime): [StudentSubjectsStrand]\n\n  \"\"\"\n  Parent to Kids Subject Strands\n  \"\"\"\n  parentToKidsSubjectsStrands: [ParentToKidsSubjectsStrand]\n\n  \"\"\"\n  Student Exam BreakDown\n  \"\"\"\n  studentExamBreakdown(studentId: ID!, gradingExam: ID!): ExamScoreBreakdown\n\n  \"\"\"\n  Get a single student all gradebooks\n  \"\"\"\n  studentGradebooks(studentId: ID!, filter: GradingExamsFilter): [StudentGradeBook]\n\n  \"\"\"\n  studentPerformanceTrend\n  \"\"\"\n  studentPerformanceTrend(studentId: ID!, gradingPeriod: [ID], classroomId: [ID], period: PerformanceTrendPeriod, from: DateTime, to: DateTime): [PerformanceAggregate]\n\n  \"\"\"\n  Classroom Rubrics\n  \"\"\"\n  rubrics(subjectId: ID!): [Rubric]!\n\n  \"\"\"\n  Get List Of Students Not Sent Gradebooks In Grading Period\n  \"\"\"\n  studentsNotSentGradebook(gradingExam: ID!): [Student]\n\n  \"\"\"\n  classroomGradingExams\n  \"\"\"\n  studentPastClassroomGradingExams(studentId: ID!): [Classroom]\n  schoolBankAccount: BankAccount\n  schoolBankAccounts(schoolId: ID): [BankAccount]\n\n  \"\"\"\n  Classrooms RankedByBevarioural\n  \"\"\"\n  classroomsTotalBehaviouralPoints(schoolId: ID): [Classroom]\n\n  \"\"\"\n  Student Peformance Trend\n  \"\"\"\n  studentBehaviouralPerformanceTrend(studentID: ID!, from: DateTime, to: DateTime): [PerformanceTrend]\n  \"\"\"\n  Daily Attendance Breakdown\n  \"\"\"\n  attendanceDailyBreakdown(date: DateTime!): DailyAttendanceSummary\n\n  \"\"\"\n  Get Student Point\n  \"\"\"\n  getStudentPoints(year: WhereYear, from: DateTime, to: DateTime): [Student]\n\n  \"\"\"\n  Get Ifunza Expense\n  \"\"\"\n  getExpenses: [Expense]\n  \"\"\"\n  Get Single Expense\n  \"\"\"\n  getExpense(id: ID!): Expense\n  \"\"\"\n  Get Expense Vendors\n  \"\"\"\n  getQuickbookVendors: [ExpenseVendor]\n\n  \"\"\"\n  Get Single Vendor\n  \"\"\"\n  getQuickBookVendor(id: ID!): ExpenseVendor\n  \"\"\"\n  Get Expense Vendor Shallow\n  \"\"\"\n  getQuickbookVendorsShallow: [ExpenseVendor]\n\n  \"\"\"\n  Get Expense Accounts\n  \"\"\"\n  getExpenseAcconts: [IExpenseAccount]\n  getExpenseAccount(id: ID!): IExpenseAccountEnvelope\n  getMonthlyExpenseSpend: [ValueTrend]\n  getVendorExpenseSpend: [VendorSpend]\n  getExpenseCategoryBreakdown(fromDate: DateTime, toDate: DateTime, period: DatePeriod): ExpenseCategoryBreakdown\n  getExpenseBreakdown(fromDate: DateTime, toDate: DateTime, period: DatePeriod): ExpenseBreakdown\n\n  \"\"\"\n  Get school sms\n  \"\"\"\n  schoolSms(where: WhereId): SchoolSms\n\n  \"\"\"\n  Get all sms sent\n  \"\"\"\n  sentSms(pagination: PaginationInput): [SentSmsResponse]\n\n  \"\"\"\n  School fees reminder stats\n  \"\"\"\n  schoolFeesReminderStats(schoolId: ID!): [Reminder]\n  reminder(id: ID!): Reminder\n  termProfitAndLoss: ProfitAndLoss\n  checkVerificationStatus(userId: ID): VerificationStatusLoan\n\n  billingItems(ids: [ID!]!): [BillingPeriodItemEnvelope]\n\n  invoiceBillingItems(id: [ID!]!, studentId: ID!): [InvoiceItem!]\n\n  \"\"\"\n  STUDENT FEE OVERPAYMENT\n  \"\"\"\n  studentFeeOverPayment(studentID: ID!): Int\n  ifunzaSalesOfficer: [Account]\n  \"\"\"\n  Sales Analytics Overview\n  \"\"\"\n  salesAnalyticsOverview(input: salesInputFilter): SalesAnalyticsOverview\n  schoolAnalyticsOverview(schoolId: ID!): SchoolAnalyticsOverview\n  classroomAnalyticsOverview(input: salesInputFilter): [ClassroomAnalyticsOverview]\n  journalViewers(id: ID!): [Account!]!\n  getNextAdmissionNumber: String\n  getNextInvoiceNumber(schoolId: ID!): String\n  getBillingItemsClassroom(periodId: ID!): [Classroom]\n\n  \"\"\"\n  GET STUDENT ASSESMENT REPORT\n  \"\"\"\n  studentAssessmentReport(studentId: ID!): StudentAssessment\n\n  \"\"\"\n  GET STUDENTS ASSESSMENTS REPORTS\n  \"\"\"\n  studentsAssessmentReports(classroomId: ID!): [StudentAssessment!]!\n\n  \"\"\"\n  GET SCHOOL CONFIGURATION\n  \"\"\"\n  getSchoolConfiguration(schoolId: ID!): SchoolConfiguration\n\n  \"\"\"\n  Get the general performance per class in exams\n  \"\"\"\n  getGeneralSchoolPerformance(schoolId: ID!, gradingExamId: ID, gradingPeriod: ID): [GeneralSchoolPerformance]\n\n  getGeneralGradingExamPerformance(gradingExamId: ID!, grade: String!, stream: ID): [GeneralSchoolPerformance]\n\n  getSubjectPerformancePerGrade(gradingExamId: ID!, subjectId: ID!, grade: String!, stream: ID): [GeneralSchoolPerformance]\n\n  \"\"\"\n  School Students Stats Query\n  \"\"\"\n  schoolStudentsStats: SchoolStudentsStats\n\n  \"\"\"\n  Fetch user uploaded documents\n  \"\"\"\n  userDocuments(id: ID!): [UserDocument!]!\n  \"\"\"\n  GET ALL SALARY STRUCTURES\n  \"\"\"\n  getAllSalaryStructures: [SalaryStructure]\n  \"\"\"\n  Get single salary structure\n  \"\"\"\n  getSalaryStructure(id: ID!): SalaryStructure\n\n  \"\"\"\n  GET ALL PAYSLIPS\n  \"\"\"\n  getAllPayslips(month: Int, year: Int, userId: ID): [Payslip]\n\n  \"\"\"\n  GET SINGLE PAYSLIP\n  \"\"\"\n  getOnePayslip(id: ID!): Payslip\n\n  \"\"\"\n  Get Total Payslips created this Month\n  \"\"\"\n  getTotalpayslipCreatedthisMonth: Int\n\n  \"\"\"\n  Get payslip Stats\n  \"\"\"\n  getPayslipStats: [PayslipStat]\n  \"\"\"\n  Get Salary Expense\n  \"\"\"\n  getSalaryExpenses: [Expense]\n\n  \"\"\"\n  Get Classroom Gradebooks\n  \"\"\"\n  getClassroomGradebooks(classroomIds: [ID!]!, gradingExam: ID!): [StudentGradeBook]\n\n  \"\"\"\n  Get all user salary Payment methods\n  \"\"\"\n  getSalaryPaymentMethods(userId: ID): SalaryPaymentMethod\n  userGrowth: GrowthStat\n  schoolGrowth: GrowthStat\n\n  invoicePayments(id: ID!): [InvoicePayment!]!\n  \"\"\"\n  GET PARENTS TOTAL PAID AND UNPAID SCHOOL Fees\n  \"\"\"\n  getParentsTotalPaidAndUnpaidSchoolFees(parentId: ID!, invoiceYear: Int): ParentTotalPaidAndUnpaidSchoolFees\n  tripLocation(id: ID!): CoordinateLocation\n  unreadMessagesCount: Int\n\n  dailyActiveUsage(from: DateTime, to: DateTime): [DailyActiveUsage!]!\n\n  monthlyActiveUsage(from: DateTime, to: DateTime): [MonthlyActiveUsage!]!\n\n  \"\"\"\n  Parent get all students with grades\n  \"\"\"\n  studentGradings: [StudentGrading!]!\n\n  \"\"\"\n  Student Overal Performance Trend\n  \"\"\"\n  studentOverallPerformanceTrend(id: ID!): StudentGradingExamPerformanceTrend\n  \"\"\"\n  Calendar Event Bookings\n  \"\"\"\n  calendarEventBookings(date: DateTime, eventId: ID, userId: [ID!]): [SchoolEventBooking!]!\n}\n\nscalar Upload\n# scalar JSON\n# scalar Date\n# scalar DateTime\n# scalar ID\nscalar Number\n\n# directive @toKebabCase on FIELD_DEFINITION\n# directive @defaultAvatarCheck on FIELD_DEFINITION\n# directive @defaultVehiclAvatarCheck on FIELD_DEFINITION\ntype LegacyDtbCustomer {\n  dTBId: String\n  isRatifed: Boolean\n  wallets: [String]\n  userId: String\n  isPinSet: Boolean\n  phoneVefired: Boolean\n  phone: String\n  queued: Boolean\n}\ntype QuickbooksConfiguration @key(fields: \"id\") {\n  id: ID\n  createQuickbookInvoices: Boolean\n  createQuickbookPayments: Boolean\n  createQuickbooksAccount: Boolean\n  voidInvoices: Boolean\n  tokenExpiry: Date\n}\n# moving from UPLOAD to uploaded file\n\ntype Error @key(fields: \"field\") {\n  field: String!\n  message: String!\n}\ntype ApiResponse @key(fields: \"message\") {\n  message: String\n  error: Error\n  id: ID\n}\n\ntype UpdateAccountResponse @key(fields: \"message\") {\n  message: String\n  error: Error\n  payload: Account\n}\ntype TripResponse @key(fields: \"message\") {\n  message: String\n  error: Error\n  tripId: String\n}\ntype SignInPayload @key(fields: \"token\") {\n  token: String\n  user: Account\n  school: SchoolAttributes\n  organisation: OrganisationResponse\n  partner: IFunzaPartnerEnvelope\n  disabledFeatures: [SupportedFeatures]\n}\ntype SignInResponse {\n  payload: SignInPayload\n  error: Error\n}\ntype Attachment @key(fields: \"id\") {\n  id: ID\n  file: String\n  mime: String\n  filename: String\n  encoding: String\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype AttachmentResponse {\n  error: Error\n  payload: Attachment\n}\n\n#schema for verification types\ntype UserVerificationType {\n  verificationFA: VerificationFinancialAnalysis\n  verificationPD: VerificationPersonalDetails\n  verificationED: VerificationEmploymentDetails\n}\n\ntype VerificationFinancialAnalysis @key(fields: \"id\") {\n  id: ID\n  primaryIncomeSource: String\n  primaryIncomeRange: String\n  secondaryIncomeSource: String\n  secondaryIncomeRange: String\n  typeOfResidence: String\n}\n\ntype VerificationPersonalDetails @key(fields: \"id\") {\n  id: ID\n  title: String\n  fname: String\n  mname: String\n  sname: String\n  blacklisted: BlackListParentFromLoan\n  krapin: String\n  dob: String\n  idType: String\n  idNo: String\n  gender: String\n  maritalStatus: String\n  nationality: String\n  foreignTaxable: Boolean\n  foreigntaxCountry: String\n  foreigntaxRef: String\n  mobile: String\n  mobile2: String\n  email: String\n  postalTown: String\n  postalAddress: String\n  postalCode: String\n  buildingName: String\n  surburb: String\n  street: String\n  town: String\n  county: String\n  country: String\n  idFront: Attachment\n  idBack: Attachment\n  mpesaStatement: Attachment\n  bankStatement: Attachment\n  selfieImage: Attachment\n  signature: String\n  payslip: String\n}\ntype VerificationEmploymentDetails @key(fields: \"id\") {\n  id: ID\n  employerName: String\n  occupation: String\n  isGovernmentEntity: Boolean\n  employerTel: String\n  role: String\n  occupationType: String\n  occupationDuration: Int\n}\n\"\"\"\nUser account model\n\"\"\"\ntype Account @key(fields: \"id\") @key(fields: \"id\") {\n  id: ID\n  name: String\n  isEstoreActivated: Boolean\n  email: String\n  availableAccounts: [UserRole]\n  phone: String\n  gender: String\n  account: String @toKebabCase\n  admNo: String\n  nemisNo: String\n  school: String\n  licenseNumber: String\n  idNumber: Number\n  tscNumber: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  signature: Attachment\n  partnerId: String\n  accountStatus: AccountStatus\n  allowPushNotifications: Boolean\n  allowEmail: Boolean\n  allowSms: Boolean\n  schoolAccountManager: [SchoolAccountManager]\n  canRecordFees: Boolean\n  canEditTransactions: Boolean\n  lastLoginDate: DateTime\n  \"\"\"\n  If a user is deleted, this will be true.\n  Use this flag to hide some functionalities like the ability to send message e.t.c\n  \"\"\"\n  deleted: Boolean\n  createdat: DateTime\n  updatedat: DateTime\n  myPaymentsMethods: SalaryPaymentMethod\n}\ntype SchoolAccountManager {\n  school: School\n  id: ID\n  createdat: DateTime\n  accountManager: Account\n}\n\ntype AccountEnvelope @key(fields: \"id\") {\n  id: ID\n  name: String\n  email: String\n  phone: String\n  account: String @toKebabCase\n  gender: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  verificationPD: VerificationPersonalDetails\n  verificationFA: VerificationFinancialAnalysis\n  verificationE: VerificationEmploymentDetails\n\n  createdat: DateTime\n  updatedat: DateTime\n}\n\ntype SchoolConfiguration {\n  sendInvoiceEmail: Boolean\n  allTeachersTakeAttendance: Boolean\n  allowSecretaryToRecordFees: Boolean\n  requireclearPreviousInvoice: Boolean\n  settleInvoiceWithOverpayment: Boolean\n}\n\ntype StudentEnvelope @key(fields: \"id\") {\n  id: ID\n  name: String\n  email: String\n  phone: String\n  admNo: String\n  mode: StudentMode\n  nemisNo: String\n  dateOfBirth: DateTime\n  account: String @toKebabCase\n  gender: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  inSchool: SchoolAttributes\n  createdat: DateTime\n  updatedat: DateTime\n  activeStudentStatus: StudentStatusType\n  status: [StudentStatus]\n  points: Number\n  classroom: Classroom\n}\ntype AddAccountResponse {\n  error: Error\n  payload: Account\n}\ntype Parent @key(fields: \"id\") {\n  id: ID\n  name: String\n  email: String\n  phone: String\n  gender: String\n  idNumber: Number\n  relationship: String\n\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  students: [StudentEnvelope!]\n  \"\"\"\n  If a user is deleted, this will be true.\n  Use this flag to hide some functionalities like the ability to send message e.t.c\n  \"\"\"\n  deleted: Boolean\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype ParentsResponse @key(fields: \"total\") {\n  total: Int\n  parents: [ParentEnvelope]\n  hasNextPage: Boolean\n  page: Int\n}\n\ntype ParentEnvelope @key(fields: \"id\") {\n  id: ID\n  name: String\n  account: String\n  email: String\n  phone: String\n  gender: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  students: [StudentEnvelope!]\n  lastLoginDate: Date\n  \"\"\"\n  If a user is deleted, this will be true.\n  Use this flag to hide some functionalities like the ability to send message e.t.c\n  \"\"\"\n  deleted: Boolean\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype LenderCustomer @key(fields: \"id\") {\n  id: ID\n  name: String\n  email: String\n  phone: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  totalRequested: Number\n  totalApproved: Number\n  blacklisted: BlackListParentFromLoan\n  lastVerified: DateTime\n}\n\ntype StudentsResponse @key(fields: \"total\") {\n  total: Int\n  payload: [Student!]\n  hasNextPage: Boolean\n  page: Int\n}\ntype Student @key(fields: \"id\") {\n  id: ID\n  name: String\n  admNo: String\n  nemisNo: String\n  authCode: String\n  phone: String\n  mode: StudentMode\n  homeAddress: HomeAddress\n  gender: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  parents: [Parent!]\n  activeStudentStatus: StudentStatusType\n  status: [StudentStatus]\n  classrooms: [Classroom]\n  dateOfBirth: DateTime\n  createdat: DateTime\n  updatedat: DateTime\n  points: Number\n  account: String @toKebabCase\n}\ntype StudentProfile @key(fields: \"id\") {\n  id: ID\n  name: String\n  admNo: String\n  authCode: String\n  nemisNo: String\n  assessmentNumber: String\n  mode: StudentMode\n  homeAddress: HomeAddress\n  gender: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  parents: [Parent!]\n  activeStudentStatus: StudentStatusType\n  status: [StudentStatus]\n  journals: [JournalWithCount!]\n  classrooms: Classroom\n  assignedEquipments: [StudentAssignedEquipments!]\n  dateOfBirth: DateTime\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype StudentStatus @key(fields: \"date\") {\n  type: StudentStatusType\n  date: DateTime\n  createdat: DateTime\n}\ntype JournalAuthor @key(fields: \"id\") {\n  id: ID\n  name: String\n  phone: String\n  email: String\n  deleted: Boolean\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  account: String @toKebabCase\n  gender: String\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype TeacherClassroom @key(fields: \"id\") {\n  id: ID\n  grade: String\n  name: String\n  teacher: Account\n  teacherId: ID\n  students: Number\n  createdat: DateTime\n  updatedat: DateTime\n  isClassTeacher: Boolean\n}\ntype TeacherClub @key(fields: \"id\") {\n  id: ID\n  name: String\n  students: Number\n  postings: Number\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype Teacher @key(fields: \"id\") {\n  id: ID\n  name: String\n  email: String\n  phone: String\n  gender: String\n  tscNumber: String\n  idNumber: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  account: String @toKebabCase\n  classrooms: [TeacherClassroom!]\n  clubs: [TeacherClub!]\n  subjects: [ClassroomSubject]\n  isClassTeacher: Boolean\n  \"\"\"\n  If a user is deleted, this will be true.\n  Use this flag to hide some functionalities like the ability to send message e.t.c\n  \"\"\"\n  deleted: Boolean\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype HomeAddress @key(fields: \"id\") {\n  id: ID\n  address: [String!]\n  lat: Number\n  lng: Number\n}\ntype CoordinateLocation @key(fields: \"lat\") {\n  lat: Number\n  lng: Number\n  accuracy: Number\n  altitude: Number\n  heading: Number\n  speed: Number\n  speedAccuracy: Number\n}\ntype JournalWithCount @key(fields: \"id\") {\n  id: ID\n  title: String\n  content: String\n  author: JournalAuthor\n  students: Int\n  attachments: [Attachment!]\n  classrooms: [ID!]\n  comments: Int\n  clubs: Int\n  likes: Int\n  allowComments: Boolean\n  postType: ContentPostType\n  status: JournalStatus\n  \"\"\"\n  If user has viewed journal\n  \"\"\"\n  viewed: Boolean\n  \"\"\"\n  True if user has liked the journal, else false\n  \"\"\"\n  liked: Boolean\n  viewCount: Int\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype ClassroomSubject @key(fields: \"id\") {\n  id: ID\n  classroomId: ID\n  subjectName: String\n  subjectTotalMarks: Float\n  subjectCode: String\n  teacherId: String\n  createdAt: DateTime\n  teacher: Teacher\n  rubricKeys: [Rubric]\n  classTeacherSubmitted: Boolean\n  dataSubmitted: Boolean\n  subjectTypeId: String\n}\ntype ClassroomSubjectEnvelope @key(fields: \"id\") {\n  id: ID\n  classroomId: ID\n  subjectName: String\n  subjectTotalMarks: Float\n  subjectCode: String\n  teacherId: String\n  createdAt: DateTime\n  teacher: Teacher\n  showInAssessment: Boolean\n  hasExams: Boolean\n  classroom: Classroom\n  gradingExam: [GradingExam]\n  gradingPeriod: [GradingPeriod]\n  rubric: ExamRubric\n  subjectType: SubjectType\n  exams: [Exams]\n  strands: [SubjectStrand]\n}\ntype ParentToKidsSubjectsStrand {\n  student: Student\n  subjects: [StudentSubjectsStrand]\n}\ntype StudentSubjectsStrand @key(fields: \"id\") {\n  id: ID\n  classroomId: ID\n  subjectName: String\n  subjectTotalMarks: Float\n  subjectCode: String\n  teacherId: ID\n  student: Student\n  subjectTypeId: ID\n  rubricId: ID\n  createdAt: DateTime\n  updatedAt: DateTime\n  teacher: Teacher\n  strands: [SubjectStrand]\n}\ntype SubjectStrand @key(fields: \"id\") {\n  id: ID\n  name: String\n  description: String\n  number: String\n  topics: [SubjectSubStrand]\n}\ntype SubjectSubStrand @key(fields: \"id\") {\n  id: ID\n  name: String\n  description: String\n  marks: SubStrandMarks\n  number: String\n}\ntype SubStrandMarks @key(fields: \"id\") {\n  id: ID\n  marks: String\n  startDate: DateTime\n  comment: String\n  endDate: DateTime\n}\ntype GradingPeriod @key(fields: \"id\") {\n  id: ID\n  name: String\n  from: DateTime\n  to: DateTime\n  schoolId: ID\n  hidden: Boolean\n  dataSubmitted: Boolean\n  createdAt: DateTime\n  gradingExams: [GradingExam]\n  classrooms: [Classroom]\n  subjects: [ClassroomSubject]\n  updatedAt: DateTime\n}\ntype Exams @key(fields: \"id\") {\n  id: ID\n  gradingExamsId: ID\n  gradingExams: GradingExam\n  name: String\n  subjectId: String\n  subject: ClassroomSubject\n  dataSubmitted: Boolean\n  submitedDate: DateTime\n  classTeacherSubmittedDate: DateTime\n  classTeacherSubmitted: Boolean\n  createdAt: DateTime\n  updatedAt: DateTime\n  students: Int\n  maxScore: Int\n  scores: [studentExamScore]\n  classroom: Classroom\n  topics: [ExamTopic]\n  rubric: ExamRubric\n}\ntype ExamTopic @key(fields: \"id\") {\n  id: ID\n  name: String\n  description: String\n}\n\ntype studentExamScore @key(fields: \"id\") {\n  id: ID\n  score: Float\n  examId: String\n  rubricValue: String\n  attachment: String\n  outofMarks: Int\n  comment: String\n  present: Boolean\n  student: Student\n  studentId: ID\n  createdAt: DateTime\n  updatedAt: DateTime\n  recorded: Boolean\n  rubric: Rubric\n  topics: [StudentExamScoreTopic]\n}\ntype StudentExamScoreTopic @key(fields: \"id\") {\n  id: ID\n  score: Float\n  comment: String\n  rubricValue: String\n  examTopics: ExamTopic\n  examTopic: ID\n  studentScore: studentExamScore\n  studentScoreId: ID\n  createdAt: DateTime\n  updatedAt: DateTime\n  rubric: Rubric\n}\ntype ExamScoreBreakdown @key(fields: \"rank\") {\n  rank: Int\n  total: Int\n  average: Float\n  student: Student\n  subjects: [SubjectMarks]\n  classroom: Classroom\n  present: Boolean\n  classTeacherComment: String\n  schoolAdminComment: String\n  parentComment: String\n  conduct: String\n  cleanliness: String\n  competency: String\n  rubric: Rubric\n}\ntype SubjectMarks @key(fields: \"id\") {\n  id: ID\n  scoreId: ID\n  value: Float\n  name: String\n  outofMarks: Int\n  rubric: Rubric\n  examId: ID\n  comment: String\n  rubricValue: String\n  attachment: String\n  maxScore: Float\n  topics: [StudentExamScoreTopic]\n  present: Boolean\n  teacher: Teacher\n}\ntype Rubric @key(fields: \"id\") {\n  id: ID\n  name: String\n  maxScore: Float\n  minScore: Float\n  value: Float\n  rubricId: ID\n  label: String\n}\ntype Journal @key(fields: \"id\") {\n  id: ID\n  title: String\n  content: String\n  author: JournalAuthor\n  students: [StudentEnvelope!]\n  attachments: [Attachment!]\n  classrooms: [ID!]\n  comments: [JournalComment!]\n  clubs: [ClubInJournal!]\n  likes: [JournalLike!]\n  allowComments: Boolean\n  postType: ContentPostType\n  status: JournalStatus\n  \"\"\"\n  If user has viewed journal\n  \"\"\"\n  viewed: Boolean\n  \"\"\"\n  True if user has liked the journal, else false\n  \"\"\"\n  liked: Boolean\n  viewCount: Int\n  createdat: DateTime\n  updatedat: DateTime\n  views: [Account]\n}\ntype JournalComment @key(fields: \"id\") {\n  id: ID\n  text: String\n  hidden: Boolean\n  date: DateTime\n  user: Account\n  attachments: [Attachment]\n}\ntype JournalLike @key(fields: \"id\") {\n  id: ID\n  date: DateTime\n  user: Account\n}\ntype Announcement @key(fields: \"id\") {\n  id: ID\n  title: String\n  message: String\n  author: Account\n  classrooms: [Classroom]\n  audience: [Audience!]\n  attachments: [Attachment!]\n  \"\"\"\n  If user has opened announcement\n  \"\"\"\n  viewed: Boolean\n  \"\"\"\n  Number of users the announcement was sent to\n  \"\"\"\n  users: Int\n  \"\"\"\n  Number of views\n  \"\"\"\n  viewCount: Int\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype CalendarEvent @key(fields: \"id\") {\n  id: ID\n  title: String\n  event: String\n  message: String\n  date: DateTime\n  endDate: DateTime\n  location: String\n  bookable: Boolean\n  timeSlotsize: Int\n  startTime: String\n  time: String\n  endTime: String\n  author: Account\n  rollOverDates: DateTime\n  audience: [Audience!]\n  attachments: [Attachment!]\n  classrooms: [ID]\n  teachers: [ID]\n  schools: [ID]\n  drivers: [ID]\n  \"\"\"\n  If user has opened announcement\n  \"\"\"\n  viewed: Boolean\n  \"\"\"\n  Number of users the announcement was sent to\n  \"\"\"\n  users: Int\n  \"\"\"\n  Number of views\n  \"\"\"\n  viewCount: Int\n  bookings: [SchoolEventBooking]\n  createdat: DateTime\n  updatedat: DateTime\n}\n\ntype SchoolEventBooking {\n  id: ID\n  startTime: String\n  endTime: String\n  open: Boolean\n  date: DateTime\n  schoolEvent: CalendarEvent\n  schoolEventId: ID\n  user: Account\n  userId: ID\n  createdat: DateTime\n  updatedat: DateTime\n}\n\ntype Newsletter @key(fields: \"id\") {\n  id: ID\n  title: String\n  content: String\n  audience: [Audience!]\n  users: Int\n  createdat: DateTime\n  updatedat: DateTime\n  authorId: ID\n  attachments: [Attachment]\n}\ntype ClassroomEnvelope @key(fields: \"id\") {\n  id: String\n  name: String\n  grade: String\n  students: Number\n  teachers: Number\n  subjects: Number\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype ClassEnvelope @key(fields: \"id\") {\n  id: String\n  name: String\n  grade: String\n  students: Number\n  teachers: Number\n  subjects: Number\n  streams: Number\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype Classroom @key(fields: \"id\") {\n  id: ID\n  name: String\n  grade: String\n  teachers: [Teacher]\n  students: [Student!]\n  createdat: DateTime\n  updatedat: DateTime\n  subjects: [ClassroomSubject]\n  points: Number\n  average: Float\n  classTeacher: Teacher\n}\ntype ClassroomGradingEnvelope @key(fields: \"id\") {\n  id: ID\n  name: String\n  grade: String\n  classteacher: Teacher\n  teachers: Int\n  students: Int\n  subjects: Int\n  gradebookBuilt: Boolean\n  numberBuilt: Int\n}\ntype ClassroomExamEnvelope {\n  classTeacherSubmittedToSchoolAdmin: Boolean\n  classroom: Classroom\n  subjects: [ClassroomSubject]\n  scores: [ExamScoreBreakdown]\n  gradingExam: GradingExam\n  subjectPerformance: [SubjectPerformance]\n}\ntype ClassExamEnvelope {\n  classroom: [Classroom]\n  subjects: [ClassroomSubject]\n  scores: [ExamScoreBreakdown]\n  gradingExam: GradingExam\n  subjectPerformance: [SubjectPerformance]\n}\ntype SubjectPerformance @key(fields: \"name\") {\n  name: String\n  value: Float\n  rubric: Float\n}\ntype GeocodeResponse @key(fields: \"address\") {\n  address: [String!]\n  location: CoordinateLocation\n}\ntype ChatSession @key(fields: \"sender\") {\n  id: ID!\n  sender: String\n  unread: Boolean\n  message: Message\n  recipient: Account\n  unreadCount: Number\n}\ntype Message @key(fields: \"id\") {\n  id: ID\n  message: String\n  attachments: [Attachment!]\n  sender: Account\n  receiver: Account\n  createdat: DateTime\n  read: Boolean\n  receiverId: ID\n  senderId: ID\n}\ntype CreateJournalResponse {\n  error: Error\n  payload: Journal\n}\ntype ClubTeam @key(fields: \"id\") {\n  id: ID\n  role: String\n  user: Account!\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype GroupOrClub @key(fields: \"id\") {\n  id: ID\n  name: String\n  description: String\n  groupType: String\n  students: [Student]\n  team: [ClubTeam!]\n  hidden: Boolean\n  createdat: DateTime\n}\ntype TransportRoute @key(fields: \"id\") {\n  id: ID\n  groupName: String\n  active: Boolean\n  totalStudents: Int\n  groupId: ID\n  tripId: ID\n  tripStartTime: DateTime\n  description: String\n  tripType: TripType\n  createdat: DateTime\n}\ntype GroupStudent @key(fields: \"id\") {\n  id: ID\n  student: Student\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype BillingGroupFee @key(fields: \"id\") {\n  id: ID\n  amount: Number\n  recurring: Boolean\n}\ntype BillingGroupEnvelope @key(fields: \"id\") {\n  id: ID\n  groupType: String\n  name: String\n  description: String\n  fee: BillingGroupFee\n  students: Int\n  team: Int\n  hidden: Boolean\n  createdat: DateTime\n}\ntype BillingGroup @key(fields: \"id\") {\n  id: ID\n  name: String\n  description: String\n  fee: BillingGroupFee\n  groupType: String\n  students: [StudentEnvelope!]\n  team: [ClubTeam!]\n  periods: [BillingPeriodEnvelope!]\n  invoices: [StudentInvoiceEnvelope!]\n  hidden: Boolean\n  createdat: DateTime\n}\ntype BillingPeriodEnvelope @key(fields: \"id\") {\n  id: ID\n  name: String\n  from: DateTime\n  to: DateTime\n  invoices: Int\n  items: [BillingItemEnvelope!]\n  createdat: DateTime\n}\ntype BillingPeriodMinimal @key(fields: \"id\") {\n  id: ID\n  name: String\n  from: Date\n  to: Date\n  createdat: DateTime\n}\ntype BillingItemEnvelope @key(fields: \"id\") {\n  id: ID\n  sno: String\n  item: String\n  amount: BillingItemAmount\n  createdat: DateTime\n}\ntype BillingItemAmount @key(fields: \"id\") {\n  id: ID\n  boarding: Float\n  dayScholar: Float\n}\ntype BillingPeriodItem @key(fields: \"id\") {\n  id: ID\n  sno: String\n  item: String\n  amount: BillingItemAmount\n  classrooms: [ClassroomEnvelope!]\n  createdat: DateTime\n}\ntype BillingPeriodItemEnvelope @key(fields: \"id\") {\n  id: ID\n  sno: String\n  item: String\n  amount: BillingItemAmount\n  createdat: DateTime\n}\ntype InvoiceItem {\n  id: ID\n  name: String\n  sno: String\n  amount: Float\n  paid: Float\n  date: DateTime\n  type: InvoiceItemType\n  invoiceId: ID\n}\ntype BillingPeriod @key(fields: \"id\") {\n  id: ID\n  name: String\n  from: DateTime\n  to: DateTime\n  invoices: [StudentInvoice]\n  invoiceCount: Int\n  items: [BillingPeriodItem!]\n  createdat: DateTime\n  stats: SchoolFeesStats\n  groups: [BillingGroup]\n}\ntype InvoiceBillingPeriod @key(fields: \"id\") {\n  id: ID\n  name: String\n  from: Date\n  to: Date\n  createdat: DateTime\n}\ntype InvoiceEnvelope @key(fields: \"id\") {\n  id: ID\n  studentMode: StudentMode\n  items: [BillingItemEnvelope!]\n  billingPeriod: [InvoiceBillingPeriod!]\n  createdat: DateTime\n}\ntype ClubInJournal @key(fields: \"id\") {\n  id: ID\n  name: String\n  description: String\n  hidden: Boolean\n  createdat: DateTime\n}\ntype BusLocation @key(fields: \"id\") {\n  id: ID\n  phone: String\n  name: String\n  longitude: Number\n  latitude: Number\n  accuracy: Number\n  altitude: Number\n  heading: Number\n  speed: Number\n  speedAccuracy: Number\n}\ntype ResetStudentPasswordResponse @key(fields: \"password\") {\n  password: String\n  error: Error\n}\ntype PrintablePDFResponse @key(fields: \"file\") {\n  file: String\n  error: Error\n}\ntype AttendanceOverall @key(fields: \"present\") {\n  present: Int\n  absent: Int\n}\ntype SchoolFeesStats @key(fields: \"paid\") {\n  paid: Float\n  unpaid: Float\n  total: Float\n}\ntype SchoolStats @key(fields: \"admins\") {\n  admins: Int\n  students: Int\n  teachers: Int\n  parents: Int\n  classrooms: Int\n  announcements: Int\n  # attendance: AttendanceStats\n  # schoolFees: SchoolFeesStats\n}\ntype SchoolAttributes @key(fields: \"id\") {\n  id: ID\n  name: String\n  address: String\n  contact: String\n  logo: Attachment\n  code: String\n  mode: String\n  mission: String\n  vision: String\n  motto: String\n  createdat: DateTime\n  isLive: Boolean\n  disabledFeatures: [DisabledFeatures]\n}\n\ntype DisabledFeatures {\n  feature: IfunzaFeatureResponse!\n}\n\ntype SchoolWithStats @key(fields: \"id\") {\n  id: ID\n  name: String\n  address: String\n  state: String\n  zipCode: String\n  contact: String\n  logo: Attachment @defaultAvatarCheck\n  code: String\n  mode: String\n  mission: String\n  vision: String\n  motto: String\n  stats: SchoolStats\n  organisation: OrganisationResponse\n  createdat: DateTime\n}\ntype OrganisationAggregate @key(fields: \"id\") {\n  id: ID\n  name: String\n  contact: String\n  address: String\n  state: String\n  zipCode: String\n  country: String\n  type: OrganisationType\n  schoolfields: [School]\n  currency: SupportedCurrency\n  locale: SupportedLocales\n  admins: Int\n  districts: Int\n  schools: Int\n  logo: Attachment\n  createdat: DateTime\n}\ntype OrganisationResponse @key(fields: \"id\") {\n  id: ID\n  name: String\n  contact: String\n  address: String\n  country: String\n  schools: [School]\n  type: OrganisationType\n  logo: Attachment\n  currency: SupportedCurrency\n  locale: SupportedLocales\n  createdat: DateTime\n}\ntype OrganisationMutationResponse {\n  error: Error\n  payload: OrganisationResponse\n}\ntype Organisation @key(fields: \"id\") {\n  id: ID\n  name: String\n  contact: String\n  address: String\n  state: String\n  zipCode: String\n  country: String\n  currency: SupportedCurrency\n  locale: SupportedLocales\n  type: OrganisationType\n  logo: Attachment\n  admins: [AccountEnvelope!]\n  districts: [DistrictAggregate!]\n  schools: [SchoolAggregate!]\n  createdat: DateTime\n}\n\ntype PartnerResponse {\n  error: Error\n  payload: Partner\n}\n\ntype PartnersResponse {\n  error: Error\n  payload: [Partner]\n}\n\ntype Partner @key(fields: \"id\") {\n  id: ID\n  name: String\n  address: String\n  type: IFunzaPartnerType\n  enabled: Boolean\n  accountManager: [AccountEnvelope!]\n  loanOfficer: [AccountEnvelope!]\n  createdat: DateTime\n  settings: PartnerSettings\n  appliedLoans: [StudentLoan]\n}\n\ntype DistrictAggregate @key(fields: \"id\") {\n  id: ID\n  name: String\n  contact: String\n  address: String\n  state: String\n  zipCode: String\n  admins: Int\n  schools: Int\n  logo: Attachment\n  createdat: DateTime\n}\ntype District @key(fields: \"id\") {\n  id: ID\n  name: String\n  contact: String\n  address: String\n  state: String\n  zipCode: String\n  logo: Attachment\n  admins: [Account!]\n  schools: [SchoolAggregate!]\n  createdat: DateTime\n}\ntype School @key(fields: \"id\") {\n  id: ID\n  name: String\n  contact: String\n  address: String\n  latitude: Float\n  longitude: Float\n  logo: Attachment\n  motto: String\n  mission: String\n  vision: String\n  mode: String\n  admins: [Account!]\n  district: DistrictAggregate\n  mpesa: ShortCode\n  organisation: OrganisationAggregate\n  createdat: DateTime\n  bankAccount: [BankAccount]\n  isLive: Boolean\n}\ntype SchoolAggregateResponse @key(fields: \"page\") {\n  total: Int\n  payload: [SchoolAggregate]\n  hasNextPage: Boolean\n  page: Int\n}\n\ntype SchoolAggregate @key(fields: \"id\") {\n  id: ID\n  name: String\n  contact: String\n  address: String\n  motto: String\n  mission: String\n  vision: String\n  mode: String\n  state: String\n  zipCode: String\n  logo: Attachment\n  admins: Int\n  district: DistrictAggregate\n  organisation: OrganisationAggregate\n  createdat: DateTime\n  isLive: Boolean\n  latitude: Float\n  longitude: Float\n}\ntype CreateDistrictResponse {\n  error: Error\n  payload: DistrictAggregate\n}\ntype CreateSchoolResponse {\n  error: Error\n  payload: SchoolAggregate\n}\n\ntype NotificationCount @key(fields: \"count\") {\n  count: Int\n}\ntype Notification @key(fields: \"id\") {\n  id: ID\n  ref: String\n  read: Boolean\n  type: String @toKebabCase\n  title: String\n  message: String\n  createdat: DateTime\n}\n\ntype StatEntry @key(fields: \"value\") {\n  key: String\n  value: Number\n}\n\ntype StudentHealth @key(fields: \"id\") {\n  id: ID\n  accomodation: String\n  disability: String\n  disabilitySubType: String\n  notes: String\n}\ntype StudentAssignedEquipments @key(fields: \"id\") {\n  id: ID\n  name: String\n  notes: String\n}\n\ntype OrganisationStats @key(fields: \"teacher\") {\n  teacher: Int\n  student: Int\n  parent: Int\n  districts: Int\n  schools: Int\n  sessions: Int\n}\ntype JournalReactions {\n  comments: [JournalComment]!\n  likes: [JournalLike]!\n}\ntype TeacherDashboardStats @key(fields: \"students\") {\n  students: Int\n  parents: Int\n  districts: Int\n  classrooms: Int\n  schools: Int\n  sessions: Int\n  events: Int\n  journals: Int\n}\ntype PartnerSettings @key(fields: \"phone\") {\n  phone: String\n  helplineContacts: [String]\n  emailaddress: String\n  minimumLoanAmount: Float\n  maximumLoanAmount: Float\n  logo: Attachment\n  policy: String\n  terms: String\n  about: String\n  loanPaymentDetails: LoanPaymentDetails\n  interestRate: Float\n  sendInvoice: Boolean\n  interestType: INTERESTTYPE\n  interestPeriod: INTERESTPERIOD\n  alertAproval: Boolean\n  alertEmails: [String]\n}\n\ntype LoanPaymentDetails @key(fields: \"id\") {\n  paybillNumbers: [paybillNumbers]\n  bankAccountDetails: [bankAccountDetails]\n  id: ID\n}\ntype paybillNumbers @key(fields: \"id\") {\n  id: ID\n  payBillNumber: String\n}\n\ntype bankAccountDetails @key(fields: \"id\") {\n  id: ID\n  bankName: String\n  bankAccountNumber: String\n}\n\ntype TeacherDashboardStatsResponse {\n  error: Error\n  payload: TeacherDashboardStats\n}\ntype AssignedPersonnel @key(fields: \"id\") {\n  id: ID\n  course: String\n  role: String\n  personnel: Account\n  createdat: DateTime\n}\ntype IFunzaAdminStats @key(fields: \"students\") {\n  students: Int\n  parents: Int\n  districts: Int\n  schools: Int\n  sessions: Int\n  events: Int\n  teachers: Int\n  organisations: Int\n  payments: Float\n}\ntype BankAccount @key(fields: \"id\") {\n  id: String\n  name: String\n  \"\"\"\n  Bank Code. You can provide a selection of available codes from\n  \"\"\"\n  bankCode: String\n  \"\"\"\n  Phone number linked to bank acocunt\n  \"\"\"\n  phone: String\n  \"\"\"\n  Account number\n  \"\"\"\n  account: String\n  \"\"\"\n  Account name\n  \"\"\"\n  accountName: String\n  branchCode: String\n  branch: String\n  isDefault: Boolean\n}\ntype ShortCode @key(fields: \"id\") {\n  id: ID\n  identity: ShortCodeIdentity\n  shortCode: Int\n  consumerKey: String\n  consumerSecret: String\n  initiatorName: String\n  operatorPassword: String\n  lipaNaMpesaShortPass: String\n  lipaNaMpesaShortCode: String\n  owner: ShortCodeOwner\n  createdAt: Date\n}\ntype SchoolWallet @key(fields: \"id\") {\n  id: ID\n  name: String\n  address: String\n  state: String\n  zipCode: String\n  contact: String\n  logo: Attachment @defaultAvatarCheck\n  code: String\n  mode: String\n  mission: String\n  vision: String\n  motto: String\n  shortCodes: [ShortCode!]\n  bankAccount: BankAccount\n}\ntype IFunzaPartnerEnvelope @key(fields: \"id\") {\n  id: ID\n  name: String\n  type: IFunzaPartnerType\n  address: String\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype IFunzaPartner @key(fields: \"id\") {\n  id: ID\n  name: String\n  address: String\n  contract: Attachment\n  accountManager: AccountEnvelope\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype FeesPaymentStats @key(fields: \"date\") {\n  date: DateTime\n  payments: Number\n}\ntype AttendanceResponse @key(fields: \"id\") {\n  id: ID\n  name: String\n  email: String\n  phone: String\n  admNo: String\n  dateOfBirth: DateTime\n  account: String @toKebabCase\n  gender: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  createdat: DateTime\n  updatedat: DateTime\n  attendance: AttendanceEnvelope\n}\ntype AttendanceEnvelope @key(fields: \"id\") {\n  id: ID\n  date: Date\n  present: Boolean\n  reason: String\n  excused: Boolean\n  period: [AttendanceAbsentPeriod!]\n  createdat: Date\n  student: Student\n}\ntype PaginatedResponse @key(fields: \"page\") {\n  page: Number\n  total: Number\n  payload: [Account]\n  hasNext: Boolean\n}\ntype ClassroomAttendanceStats {\n  classroomName: String\n  grade: String\n  attendance: [AttendanceEnvelope]\n}\ntype AttendanceStats @key(fields: \"date\") {\n  date: Date\n  present: Int\n  absent: Int\n  excused: Int\n  student: Student\n}\ntype BillingPeriodStats @key(fields: \"sent\") {\n  sent: Int\n  students: Int\n}\ntype StudentInvoiceEnvelope @key(fields: \"id\") {\n  id: String\n  from: DateTime\n  to: DateTime\n  billedAmount: Float\n  paidAmount: Float\n  billingPeriod: BillingPeriodMinimal\n  attachment: Attachment\n  student: StudentEnvelope\n  linkedLoans: [StudentLoan]\n  createdat: DateTime\n  studentMode: StudentMode\n  invoiceNo: String\n  status: InvoiceStatus\n  removedItemsId: [String]\n}\ntype StudentInvoice @key(fields: \"id\") {\n  id: String\n  from: DateTime\n  to: DateTime\n  billedAmount: Float\n  invoiceNo: String\n  paidAmount: Float\n  student: StudentEnvelope\n  parents: [AccountEnvelope!]\n  studentMode: StudentMode\n  billingPeriod: BillingPeriodMinimal\n  billingGroups: [BillingGroupEnvelope!]\n  attachment: Attachment\n  removedItemsId: [String]\n  items: [BillingPeriodItemEnvelope!]\n  studentItems: [BillingPeriodItemEnvelope!]\n  loans: [StudentLoanEnvelope!]\n  createdat: DateTime\n  schoolId: String\n  status: InvoiceStatus\n  linkedLoans: [StudentLoan]\n}\ntype StudentLoan @key(fields: \"id\") {\n  id: ID\n  amount: Float\n  compliance: String\n  invoiceId: ID\n  disbursedAmount: Float\n  invoice: StudentInvoice\n  statuses: StudentLoanStatus\n  student: StudentEnvelope\n  parent: AccountEnvelope\n  disburseMode: DisburseMode\n  parentId: ID\n  createdat: DateTime\n  updatedat: DateTime\n  school: School\n  terms: [LoanTerms]\n  installments: [LoanInstallment]\n  statusHistory: [LoanStatusHistory]\n  defaulted: Boolean\n  repaid: Boolean\n  mpesaStatement: Attachment\n  idFront: Attachment\n  idBack: Attachment\n  selfieImage: Attachment\n  signature: String\n  payslip: String\n  bankStatement: Attachment\n  extraCompliance: ExtraCompliance\n}\ntype LoanStatusHistory {\n  id: ID\n  status: SchoolFeesLoanStatus\n  comment: String\n  date: DateTime\n  createdAt: DateTime\n  updatedAt: DateTime\n  updatedById: String\n  schoolFeesLoanId: String\n}\ntype StudentLoanEnvelope @key(fields: \"id\") {\n  id: ID\n  amount: Float\n  compliance: String\n  statuses: StudentLoanStatus!\n  createdat: DateTime\n  updatedat: DateTime\n}\n\ntype SinglePayment @key(fields: \"id\") {\n  id: ID\n  amount: Float\n  balance: Float\n  mode: String\n  payer: AccountEnvelope\n  payerId: ID\n  school: SchoolAttributes\n  schoolId: ID\n  paymentId: String\n  student: StudentEnvelope\n  datePaid: DateTime\n  studentId: ID\n  createdat: DateTime\n  bankid: ID\n  bankAccount: BankAccount\n  payments: [InvoicePayment]\n  invoiceId: String\n}\ntype SinglePaymentEnvelope @key(fields: \"id\") {\n  id: ID\n  amount: Float\n  balance: Float\n  mode: String\n  payer: AccountEnvelope\n  payerId: ID\n  school: SchoolAttributes\n  schoolId: ID\n  paymentId: String\n  student: StudentEnvelope\n  datePaid: DateTime\n  studentId: ID\n  createdat: DateTime\n  bankid: ID\n  bankAccount: BankAccount\n  invoiceId: String\n}\ntype InvoicePayment {\n  id: ID\n  amount: Float\n  mode: String\n  invoiceId: ID\n  invoice: StudentInvoice\n  payerId: ID\n  schoolId: ID\n  paymentId: String\n  datePaid: DateTime\n  studentId: ID\n  createdat: DateTime\n  bankid: ID\n  items: [FeePaymentItems]\n  paymentEnvelope: SinglePaymentEnvelope\n}\ntype FeePaymentItems {\n  id: ID\n  amount: Float\n  itemId: ID\n  feePaymentId: ID\n  studentItemId: ID\n  billedGroupId: ID\n}\n\ntype StudentLoanStatus @key(fields: \"id\") {\n  id: ID\n  value: SchoolFeesLoanStatus\n  reason: String\n  createdBy: Account\n  createdat: DateTime\n  updatedat: DateTime\n}\n\ntype LenderDashboardStats @key(fields: \"approved\") {\n  approved: Int\n  declined: Int\n  pending: Int\n  totalRequested: Float\n  totalApproved: Float\n  totalPending: Float\n  processing: Number\n  lender_processed: Number\n  lastmonthApproved: Number\n  lastMonthDeclined: Number\n  lastMonthPending: Number\n  lastMonthProcessing: Number\n  lastMonthLenderProcessed: Number\n  alltimeApproved: Number\n  alltimeProcessing: Number\n  alltimeRejected: Number\n  alltimeTotalApproved: Number\n  alltimeTotalProcessing: Number\n  allTimeTotalRejected: Number\n}\ntype LenderDashboardStatsResponse {\n  error: Error\n  payload: LenderDashboardStats\n}\ntype Vehicle @key(fields: \"id\") {\n  id: ID\n  plateNumber: String\n  capacity: Int\n  avatar: Attachment @defaultVehiclAvatarCheck\n  avatarUrl: String\n  driver: Account\n  createdat: DateTime\n  updatedat: DateTime\n  type: VehicleType\n  ownership: VehicleOwnership\n  trip: [Trip]\n}\ntype Trip @key(fields: \"id\") {\n  id: ID\n  name: String\n  driver: Account\n  startTime: DateTime\n  endTime: DateTime\n  origin: CoordinateLocation\n  destination: CoordinateLocation\n  schoolLocation: CoordinateLocation\n  currentLocation: CoordinateLocation\n  school: School\n  createdat: DateTime\n  updatedat: DateTime\n  type: TripType\n  vehicle: Vehicle\n  students: [StudentTrip!]\n}\ntype StudentTrip @key(fields: \"id\") {\n  id: ID\n  pickUp: StudentTripPickupDropOff\n  dropOff: StudentTripPickupDropOff\n  trip: Trip\n  student: Student\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype StudentTripPickupDropOff @key(fields: \"id\") {\n  id: ID\n  date: DateTime\n  lat: String\n  lng: String\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype ExamRubric @key(fields: \"id\") {\n  name: String\n  id: ID\n  criteria: [Rubric]\n  classroom: Classroom\n}\n\ntype TripStats @key(fields: \"complete\") {\n  complete: Number\n  inProgress: Number\n}\ntype FleetStatsResponse @key(fields: \"drivers\") {\n  drivers: Number\n  vehicle: Number\n  trips: TripStats\n}\ntype StudentFeeStats @key(fields: \"total\") {\n  total: Float\n  paid: Float\n  balance: Float\n  overPayment: Float\n}\ntype SchoolFeesArrear @key(fields: \"id\") {\n  id: ID\n  name: String\n  email: String\n  phone: String\n  admNo: String\n  mode: String\n  nemisNo: String\n  dateOfBirth: DateTime\n  account: String @toKebabCase\n  gender: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  fees: StudentFeeStats\n}\ntype AttendanceGrouped @key(fields: \"date\") {\n  date: DateTime\n  students: [AttendanceResponse]\n}\ntype LenderTicketsMonthly @key(fields: \"amount\") {\n  amount: Number\n  month: [MonthlyAggretage]\n}\ntype MonthlyAggretage @key(fields: \"value\") {\n  date: DateTime\n  value: Number\n}\ntype AttendanceSummary @key(fields: \"students\") {\n  students: Int\n  overall: AttendanceOverall\n  currentMonth: AttendanceOverall\n  today: AttendanceOverall\n  mostAbsent: AttendanceAggregate\n}\ntype DailyAttendanceSummary @key(fields: \"date\") {\n  totalStudents: Int\n  totalPresent: Int\n  totalAbsent: Int\n  totalExcused: Int\n  studentsPresent: [Student]\n  studentsAbsent: [Student]\n  studentsExcused: [Student]\n  date: Date\n}\ntype TotalFeeStats @key(fields: \"paid\") {\n  paid: Number!\n  unpaid: Number!\n}\ntype AttendanceAggregate {\n  student: StudentProfile\n  stats: AttendanceStats\n}\n\ntype BehavioralTags @key(fields: \"id\") {\n  id: ID\n  tagAllowed: Boolean\n  tags: [BehaviouralTag]\n}\ntype BehaviouralTag @key(fields: \"id\") {\n  id: ID\n  name: String\n  minimum: Int\n  maximum: Int\n  color: String\n}\ntype BehaviouralNotification @key(fields: \"id\") {\n  id: ID\n  allowed: Boolean\n}\ntype BehaviouralSuspension @key(fields: \"id\") {\n  id: ID\n  allowed: Boolean\n  threshold: Int\n}\ntype AttendanceBehavoural @key(fields: \"id\") {\n  id: ID\n  allowed: Boolean\n  threshold: Int\n}\ntype BehaviouralPermissions @key(fields: \"id\") {\n  id: ID\n  allowParents: Boolean\n}\n\ntype SchoolMeritsConfiguration {\n  behavioralTags: BehavioralTags\n  behaviouralNotification: BehaviouralNotification\n  behaviouralSuspension: BehaviouralSuspension\n  attendanceBehavoural: AttendanceBehavoural\n  behaviouralPermissions: BehaviouralPermissions\n}\ntype StudentMerit @key(fields: \"date\") {\n  student: StudentEnvelope\n  merit: [StudentMeritsEnvelope]\n  date: DateTime\n  totalPoints: Int\n}\ntype StudentMeritStats @key(fields: \"type\") {\n  type: String\n  points: Number\n  merits: [StudentMeritsEnvelope]\n}\ntype BehaviouralStats @key(fields: \"type\") {\n  type: String\n  aboveAverage: Number\n  belowAverage: Number\n  average: Number\n  averageScore: Number\n  highestStudent: StudentEnvelope\n  lowestStudent: StudentEnvelope\n}\ntype MeritGroupedByDate @key(fields: \"date\") {\n  date: Date\n  points: Number\n}\ntype StudentMeritsEnvelope @key(fields: \"id\") {\n  id: String\n  date: DateTime\n  studentId: String\n  comment: String\n  point: Int\n  merit: String\n  schoolMeritId: String\n  type: BehavioralType\n  marker: Account\n  createdat: DateTime\n  updatedAt: DateTime\n}\ntype SchoolMerits @key(fields: \"id\") {\n  id: ID\n  name: String!\n  type: MeritsType!\n  description: String\n  point: Number!\n  createdat: DateTime\n  updatedAt: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  negativeOnDemerit: Boolean\n  count: Number\n}\ntype SchoolMeritsEnvelope {\n  merit: SchoolMerits\n  students: [Student]\n}\ntype SubjectType @key(fields: \"id\") {\n  id: ID\n  name: String\n}\ntype GradingExam @key(fields: \"id\") {\n  id: ID\n  name: String\n  from: DateTime\n  to: DateTime\n  submissionDeadline: DateTime\n  periodType: PeriodType\n  gradingPeriod: GradingPeriod\n  gradingPeriodId: ID\n  dataSubmitted: Boolean\n  createdAt: DateTime\n  updatedAt: DateTime\n  hidden: Boolean\n  exams: [Exams]\n  classrooms: [Classroom]\n  gradebook: [StudentGradeBook]\n}\ntype ParentToKidGradingExam @key(fields: \"id\") {\n  id: ID\n  name: String\n  from: DateTime\n  to: DateTime\n  periodType: PeriodType\n  gradingPeriod: GradingPeriod\n  gradingPeriodId: ID\n  dataSubmitted: Boolean\n  createdAt: DateTime\n  updatedAt: DateTime\n  hidden: Boolean\n  exams: [Exams]\n  classrooms: [Classroom]\n  student: Student\n}\ntype GradingExamEnvelope @key(fields: \"id\") {\n  id: ID\n  name: String\n  from: DateTime\n  to: DateTime\n  periodType: PeriodType\n  gradingPeriod: GradingPeriod\n  gradingPeriodId: ID\n  dataSubmitted: Boolean\n  createdAt: DateTime\n  updatedAt: DateTime\n  hidden: Boolean\n  classrooms: [Classroom]\n}\ntype ClassTeacherGradingExamEnvelope @key(fields: \"id\") {\n  id: ID\n  name: String\n  from: DateTime\n  to: DateTime\n  periodType: PeriodType\n  gradingPeriod: GradingPeriod\n  gradingPeriodId: ID\n  dataSubmitted: Boolean\n  createdAt: DateTime\n  updatedAt: DateTime\n  hidden: Boolean\n  exams: Number\n  examsSubmitted: Number\n  classroom: Classroom\n  submittedToSchoolAdmin: Boolean\n}\ntype TeacherGradingScores {\n  subject: ClassroomSubject\n  students: [studentExamScore]\n  exams: Exams\n  teacher: TeacherClassroom\n}\ntype GradebookTemplate @key(fields: \"id\") {\n  id: ID\n  name: String\n  location: String\n  description: String\n  avatar: Attachment\n  avatartId: ID\n  pdf: Attachment\n  pdfId: String\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype StudentGradeBook @key(fields: \"id\") {\n  id: String\n  name: String\n  from: DateTime\n  to: DateTime\n  classroom: Classroom\n  teacherComments: String\n  adminCommnets: String\n  type: PeriodType\n  teacherDate: DateTime\n  adminDate: DateTime\n  attachment: Attachment\n  student: Student\n  studentId: String\n  createdAt: DateTime\n  updatedAt: DateTime\n  gradingExam: GradingExam\n  gradingPeriod: GradingPeriod\n  gradebookType: StudentGradebookType\n}\n\ntype IWallet @key(fields: \"walletId\") {\n  walletId: Number\n  customerId: String\n  name: String\n  description: String\n  currentBalance: Float\n  availableBalance: Float\n  reservations: Number\n  status: String\n  created: DateTime\n  walletTypeId: Number\n  externalUniqueId: String\n  currency: String\n  friendlyId: String\n  accountNumber: String\n}\n\ntype Info @key(fields: \"val\") {\n  att: String\n  val: String\n}\ntype PerformanceAggregate @key(fields: \"name\") {\n  name: String\n  term: String\n  total: Float\n  average: Float\n  rubricTotal: Float\n  rubricAverage: Float\n}\ntype PerformanceTrend {\n  date: DateTime\n  points: Float\n}\n\ntype StudentGradingExamPerformanceTrend {\n  id: ID!\n  focusArea: Info\n  general: Info\n  bestSubject: Info\n}\ntype SchemeOfWork {\n  id: ID\n  title: String\n  weeks: Int\n  topic: String\n  lessons: Int\n  classroom: Classroom\n  schemeOfWorkSubject: ClassroomSubject\n  gradingPeriod: GradingPeriod\n  isVerified: Boolean\n  rows: [SchemesOfWorkRow]\n  isSubmittedForVerificaton: Boolean\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype SchemesOfWorkRow {\n  id: ID\n  week: Int\n  lesson: Int\n  topic: String\n  subTopic: String\n  specificOutomes: [String!]\n  keyInquiry: [String!]\n  learningExperiences: [String!]\n  learningResources: [String!]\n  assessmentMethods: [String!]\n  reflection: String\n}\ntype IfunzaFeatureResponse @key(fields: \"id\") {\n  name: SupportedFeatures!\n  description: String\n  monthlyCost: Float\n  id: ID!\n  active: Boolean\n}\n\ntype ModulesDashboardStats @key(fields: \"allmodules\") {\n  allmodules: Number\n  alldisabledmodules: Number\n  mostdisabledmodule: SupportedFeatures\n  recentlydisabled: [SchoolDisabledFeatures]\n}\ntype SchoolDisabledFeatures @key(fields: \"createdat\") {\n  feature: IfunzaFeatureResponse\n  createdat: DateTime\n  school: School\n  features: [SupportedFeatures!]\n  schoolId: ID!\n}\n\ntype SchoolFeatures {\n  id: ID\n  name: SupportedFeatures\n  description: String\n  active: Boolean\n  updatedat: DateTime\n}\ntype MobileFeePrepayment {\n  dtbCustomer: LegacyDtbCustomer\n  bankAccount: BankAccount\n  hasWallet: Boolean\n}\ntype LoanTerms @key(fields: \"sno\") {\n  sno: String\n  name: String\n  details: String\n}\ninput TermsInput {\n  sno: String!\n  name: String!\n  details: String!\n}\ntype LoanInstallment @key(fields: \"sno\") {\n  sno: String\n  name: String\n  repaymentDate: DateTime\n  amount: Float\n}\ntype MpesaStkPushResponse @key(fields: \"amount\") {\n  phone: String\n  amount: String\n  accountNumber: String\n  school: String\n  from: String\n  mode: String\n  payer: String\n  checkoutId: String\n  error: String\n  message: String\n}\ntype AfricasTalkingDeliveryReportResponse @key(fields: \"page\") {\n  total: Int\n  hasNextPage: Boolean\n  page: Int\n  payload: [AfricasTalkingDeliveryReport]\n}\n\ntype AfricasTalkingDeliveryReport @key(fields: \"id\") {\n  id: String\n  status: String\n  phoneNumber: String\n  networkCode: String\n  failureReason: String\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype MailgunDeliveryReportResponse @key(fields: \"page\") {\n  total: Int\n  hasNextPage: Boolean\n  page: Int\n  payload: [MailgunDeliveryReport]\n}\ntype MailgunDeliveryReport @key(fields: \"id\") {\n  id: String\n  description: String\n  reason: String\n  recipient: String\n  severity: String\n  event: String\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype Expense {\n  DueDate: DateTime\n  Balance: Float\n  Id: String\n  name: String\n  TxnDate: DateTime\n  Currency: String\n  TotalAmt: Float\n  Line: [ExpenseLine]\n  payslip: [Payslip]\n  VendorRef: VendorRef\n}\ntype VendorRef {\n  value: String\n  name: String\n}\ntype ExpenseLine {\n  Id: String\n  LineNum: Int\n  Description: String\n  Amount: Float\n  AmountPaid: Float\n  DetailType: String\n  expense: Expense\n  AccountBasedExpenseLineDetail: AccountBasedExpenseLineDetail\n}\ntype AccountBasedExpenseLineDetail {\n  AccountRef: AccountRef\n  BillableStatus: String\n}\ntype AccountRef {\n  value: String\n  name: String\n}\ntype ExpenseVendor {\n  TaxIdentifier: String\n  Balance: Float\n  BilledAmount: Float\n  PaidAmount: Float\n  BillRate: Float\n  AcctNum: String\n  Currency: String\n  Id: String\n  Title: String\n  GivenName: String\n  FamilyName: String\n  CompanyName: String\n  Mobile: String\n  PrimaryPhone: String\n  Email: String\n}\ntype IExpenseAccount {\n  Name: String\n  Id: String\n  SyncToken: String\n  sparse: Boolean\n  FullyQualifiedName: String\n  Active: Boolean\n  CurrentBalance: Float\n  Total: Float\n  Classification: String\n  AccountType: String\n}\ntype IExpenseAccountEnvelope {\n  Name: String\n  Id: String\n  SyncToken: String\n  sparse: Boolean\n  FullyQualifiedName: String\n  Active: Boolean\n  CurrentBalance: Float\n  Total: Float\n  Classification: String\n  AccountType: String\n  expenses: [ExpenseLine]\n  vendors: [ExpenseVendor]\n}\ntype ValueTrend {\n  name: String\n  value: Float\n}\ntype VendorSpend {\n  name: String\n  billed: Float\n  paid: Float\n}\ntype ExpenseCategoryBreakdown {\n  total: Float\n  paid: Float\n  lastTrend: Float\n  trend: [VendorSpend]\n}\ntype ExpenseBreakdown {\n  total: Float\n  overDue: Float\n  paid: Float\n  upcoming: Float\n  count: Int\n}\ntype ProfitAndLoss {\n  income: Float\n  spend: Float\n  total: Float\n  lastPeriod: Float\n}\ntype VerificationStatusLoan {\n  verified: Boolean\n  blacklisted: Boolean\n  additionalDocuments: Boolean\n  verificationDate: DateTime\n}\ntype SalesReport {\n  link: String\n  from: DateTime\n  to: DateTime\n  createdAt: DateTime\n  updatedAt: DateTime\n}\n\ntype SalesAnalyticsOverview {\n  isAttendanceTakenToday: Boolean\n  isJournalCreatedToday: Boolean\n  isAnnouncementCreatedToday: Boolean\n  isMessagesSentToday: Boolean\n}\n\ntype SchoolAnalyticsOverview {\n  loanApplied: Int\n  loanApproved: Int\n  loanAppliedAmount: Float\n  percentageLoggedIn: Float\n  invoiceSent: Boolean\n  tripsCreated: Boolean\n  loanApprovedAmount: Float\n  announcementCreated: Int\n  attendanceTaken: Int\n  journalCreated: Int\n  messagesSent: Int\n  walletCreated: Int\n  walletAmount: Float\n}\ntype ClassroomAnalyticsOverview {\n  student: Account\n  parents: [Account]\n  journals: Int\n  newsletters: Int\n  messages: Int\n  attendance: Int\n  announcements: Int\n  loans: Int\n}\ntype StudentAssessment {\n  id: ID\n  report: String\n  studentId: String\n  student: Student\n  date: DateTime\n  scores: [StudentAssesmentScores]\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype StudentAssesmentScores {\n  id: ID\n  questionNo: String\n  score: Int\n  type: AssesmentQuestionType\n  studentAssessmentId: ID\n}\ntype SchoolFeesReminder {\n  id: ID\n  name: String\n  message: String\n  billingPeriodReminder: [BillingReminder]\n  createdAt: DateTime\n  updatedAt: DateTime\n}\n\ntype BillingReminder {\n  id: ID\n  periods: Int\n  minimumAmount: Float\n  bilingPeriods: [BillingPeriod]\n}\ntype SchoolStudentsStats {\n  total: Number\n  inSession: Number\n  onLeave: Number\n  supsended: Number\n  transferred: Number\n  completed: Number\n}\n\ntype ExtraCompliance {\n  id: String\n  repaymentPeriod: String\n  primaryBank: String\n  otherPrimaryBank: String\n  hasDtbAccount: Boolean\n  dtbAccountNumber: String\n  branchNearest: String\n  schoolFeesLoanId: String\n  createdat: DateTime\n  updatedat: DateTime\n}\n\ntype GrowthStat {\n  value: Number\n  change: Number\n  dates: [PerformanceTrend!]\n}\ntype DailyActiveUsage {\n  id: String\n  date: DateTime\n  activeUser: Int\n  teachers: Int\n  parents: Int\n  schoolAdmins: Int\n  drivers: Int\n  vendor: Int\n  fleetManagers: Int\n  secretary: Int\n  headTeacher: Int\n  financeManagers: Int\n  schools: Int\n  createdat: DateTime\n}\ntype MonthlyActiveUsage {\n  month: String\n  activeUser: Int\n  teachers: Int\n  parents: Int\n  schoolAdmins: Int\n  drivers: Int\n  vendor: Int\n  fleetManagers: Int\n  secretary: Int\n  headTeacher: Int\n  financeManagers: Int\n}\n\ntype StudentGrading {\n  id: ID\n  name: String\n  admNo: String\n  nemisNo: String\n  authCode: String\n  mode: StudentMode\n  gender: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  activeStudentStatus: StudentStatusType\n  classroom: Classroom\n  dateOfBirth: DateTime\n  account: String @toKebabCase\n  grade: StudentGrade\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype StudentGrade {\n  grade: String\n  comment: String\n  score: Float\n}\ntype ScannedScore {\n  studentName: String\n  score: Float\n  rubricValue: String\n  comment: String\n  scoreId: ID\n}\n# End of type definitions\n# Inputs\n# Beginning of input type definitions\n\ninput WhereId {\n  id: ID!\n}\n\ninput SchoolMeritsConfigurationInput {\n  id: String\n  automaticSuspension: Boolean\n  automaticSuspensionTreshold: Int\n  nearSuspensionNotification: Boolean\n  positiveNotification: Boolean\n  postiveTreshold: Int\n  negativeNotification: Boolean\n  allowParentsToViewPoints: Boolean\n  automaticAttendance: Boolean\n  adminNegativeNotification: Boolean\n  adminPostiveNotification: Boolean\n}\n\ninput BehavioralTagsInput {\n  tagAllowed: Boolean\n  behavioralTagsId: ID\n  tags: [BehavioralTagInput]\n}\n\ninput BehavioralTagInput {\n  name: String\n  minimum: Int\n  maximum: Int\n  id: ID\n  color: String\n}\n\ninput CreateBehavioralSuspensionInput {\n  allowed: Boolean\n  threshold: Int\n}\ninput CreateBehavioralNotificationInput {\n  allowed: Boolean\n}\n\ninput CreateBehavioralAttendanceInput {\n  allowed: Boolean\n}\ninput AllowParentsToViewBehavioralInformationInput {\n  parentsAllowed: Boolean\n}\n\ninput WhereStringId {\n  id: ID!\n}\n\ninput WhereYear {\n  year: Int!\n}\ninput BillingGroupsFilter {\n  billable: Boolean\n  type: String\n}\ninput WhereIds {\n  ids: [ID!]\n}\ninput WhereOrganisation {\n  organisation: ID\n  inOrganisations: Boolean\n  pagination: PaginationInput\n  name: String\n  hasAccountManager: Boolean\n}\n\n\"\"\"\nStart Brainverse\n\"\"\"\ninput WhereUserVID {\n  user_id: ID\n}\n\"\"\"\nEnd Brainverse\n\"\"\"\ninput WhereCreateSchool {\n  organisation: ID\n  district: ID\n  districtName: String\n}\ninput WhereCreateAccount {\n  school: ID!\n}\ninput WhereTeacher {\n  teacher: ID!\n}\ninput WhereClassroom {\n  classroom: ID!\n}\ninput WhereStudent {\n  student: ID!\n}\n\ninput BulkUploadStudentsInput {\n  csvUploadFile: UploadInput!\n  classroom: String\n  school: String\n}\ninput ResetPasswordInput {\n  value: String\n  authCode: String\n  phone: String\n  password: String\n  origin: RequestOrigin\n}\ninput CreateSchoolInput {\n  name: String!\n  address: String\n  state: String\n  zipCode: String\n  logo: UploadInput\n  code: String\n  mode: String\n  contact: String\n  mission: String\n  vision: String\n  motto: String\n  country: String\n  adminIds: [ID!]\n  currency: SupportedCurrency\n  admin: UserAccountInput\n  mpesa: MPesaShortCodeInput\n  bankAccount: BankCredentialsInput\n  organization: ID\n}\ninput UpdateSchoolInput {\n  name: String\n  address: String\n  state: String\n  zipCode: String\n  logo: UploadInput\n  code: String\n  mode: String\n  contact: String\n  mission: String\n  vision: String\n  motto: String\n  country: String\n  currency: SupportedCurrency\n  district: UpdateLinkedSchoolDistrictInput\n  admin: UpdateLinkedUserInput\n  mpesa: MPesaShortCodeInput\n  bankAccount: BankCredentialsInput\n  latitude: Float\n  longitude: Float\n}\n\ninput CreatePartnerInput {\n  name: String!\n  address: String\n  type: IFunzaPartnerType\n  accountManager: UserAccountInput\n}\ninput UpdatePartnerInput {\n  name: String!\n  address: String\n  type: IFunzaPartnerType\n  accountManager: UserAccountInput\n}\n\ninput UpdateLinkedSchoolDistrictInput {\n  add: ID\n  remove: ID\n}\ninput EditUserAccountWithId {\n  where: WhereId!\n  input: UserAccountInput!\n}\ninput UpdateLinkedUserInput {\n  add: UserAccountInput\n  edit: EditUserAccountWithId\n  remove: [ID!]\n}\ninput SignInInput {\n  \"\"\"\n  Can either be email, phone number or student admission number\n  \"\"\"\n  value: String!\n  password: String!\n  role: UserRole\n}\ninput HomeAddressInput {\n  address: [String!]!\n  location: CoordinateLocationInput!\n}\ninput CoordinateLocationInput {\n  lat: Number!\n  lng: Number!\n}\ninput StudentsFilter {\n  query: String\n  classrooms: [ID]\n  schools: [ID!]\n  teachers: [ID!]\n  parents: Boolean\n  statuses: [StudentStatusType!]\n  pagination: PaginationInput\n  mode: StudentMode\n  inClassroom: Boolean\n  hasNemisNumber: Boolean\n  withoutParents: Boolean\n}\ninput ClassroomsFilter {\n  students: [ID!]\n  schools: [ID!]\n  teachers: [ID!]\n  attendance: Boolean\n}\ninput PaymentHistoryFilter {\n  from: DateTime\n  to: DateTime\n  billingPeriod: [ID!]\n  classroom: [ID!]\n  invoiceId: [ID!]\n}\ninput UserAccountInput {\n  name: String\n  email: String\n  idNumber: String\n  isEstoreActivated: Boolean\n  phone: String\n  gender: String\n  nemisNo: String\n  address: String\n  city: String\n  country: String\n  region: String\n  latitude: Float\n  longitude: Float\n  relationship: String\n  admNo: String\n  account: [UserRole!]\n  dateOfBirth: DateTime\n  mode: StudentMode\n  password: String\n  avatar: UploadInput\n  licenseNumber: String\n  tscNumber: String\n  partnerId: String\n  studentStatus: StudentStatusType\n  allowPushNotifications: Boolean\n  canEditTransactions: Boolean\n  allowEmail: Boolean\n  allowSms: Boolean\n  schools: [ID!]\n  signatureUrl: String\n  schoolsToRemove: [ID!]\n}\n\ninput StudentAccountInput {\n  name: String\n  email: String\n  gender: String\n  nemisNo: String\n  assessmentNumber: String\n\n  admNo: String\n  homeAddress: HomeAddressInput\n  dateOfBirth: DateTime\n  mode: StudentMode\n  classroom: ID\n  avatar: UploadInput\n  \"\"\"\n  Student status. Adds student status to existing statuses\n  \"\"\"\n  status: String\n  equipments: StudentEquipmentInput\n  management: StudentAssignedPersonnelsInput\n  parents: LinkParentToStudentInput\n}\n\ninput SyncQuickBooksCustomersWithSchoolStudentsInput {\n  school: ID!\n  syncDirection: [QuickbooksSyncDirection]\n  classrooms: [ID!]\n}\n\ninput UserAccountWhere {\n  id: ID!\n}\ninput AnnouncementInput {\n  title: String!\n  message: String!\n  audience: [Audience!]\n  teachers: [ID!]\n  classrooms: [ID!]\n  schools: [ID!]\n  districts: [ID!]\n  drivers: [ID!]\n  secretaries: [ID!]\n}\ninput EventInput {\n  title: String!\n  message: String!\n  date: DateTime!\n  endDate: DateTime\n  startTime: String\n  endTime: String\n  audience: [Audience!]\n  teachers: [ID!]\n  classrooms: [ID!]\n  schools: [ID!]\n  drivers: [ID!]\n  secretaries: [ID!]\n  bookable: Boolean  \n  timeSlotsize: Int\n  slots: [TimeslotInput!]\n  location: String\n}\n\ninput TimeslotInput {\n  startTime: String!\n  endTime: String!\n  date: DateTime\n}\ninput SendSMSInput {\n  message: String!\n  audience: [Audience!]\n  teachers: [ID!]\n  parents: [ID!]!\n  classrooms: [ID!]\n}\ntype SentSmsResponse {\n  id: ID\n  message: String\n  isSent: Boolean\n  sender: Account\n  audience: [Audience!]\n  users: [Account!]\n  smsUsed: Number\n  classrooms: [Classroom!]\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype UserDocument {\n  id: ID\n  name: String\n  type: String\n  userId: ID\n  attachment: Attachment\n  createdat: DateTime\n  updatedat: DateTime\n}\ninput UpdateAnnouncementInput {\n  title: String\n  message: String\n  attachments: AttachmentsInput\n  audience: [Audience!]\n  classrooms: [ID!]\n  teachers: [ID!]\n  drivers: [ID!]\n  secretaries: [ID!]\n}\ninput SubjectTypeInput {\n  name: String\n  id: ID\n}\ninput CreateNewsletterInput {\n  title: String\n  audience: [Audience!]\n  content: String\n  attachments: [UploadInput]\n}\ninput UpdateAudienceInput {\n  add: [String!]\n  remove: [String!]\n}\ninput QuickbooksConfigurationInput {\n  createQuickbookInvoices: Boolean\n  createQuickbookPayments: Boolean\n  createQuickbooksAccount: Boolean\n  voidInvoices: Boolean\n}\ninput UpdateNewsletterInput {\n  title: String\n  audience: [Audience!]\n  content: String\n}\n\"\"\"\nPagination input\n\"\"\"\ninput PaginationInput {\n  \"\"\"\n  Number of items to take e.g. 10\n  \"\"\"\n  pageSize: Int\n  \"\"\"\n  Number of items to skip\n  \"\"\"\n  page: Int\n}\n\ninput ParentsFilter {\n  \"\"\"\n  Pass this filter to return students\n  \"\"\"\n  students: Boolean\n  \"\"\"\n  Filter parents linked to a student\n  \"\"\"\n  student: ID\n  \"\"\"\n  Filter parents with students in in schools\n  \"\"\"\n  schools: [ID!]\n  \"\"\"\n  Filter parents with students in classrooms\n  \"\"\"\n  classrooms: [ID!]\n  \"\"\"\n  Paginate parents\n  \"\"\"\n  pagination: PaginationInput\n  \"\"\"\n  IN ORGANISATION\n  \"\"\"\n  inOrganisations: Boolean\n}\ninput TeachersFilter {\n  \"\"\"\n  Filter teachers with students in in schools\n  \"\"\"\n  schools: [ID!]\n  \"\"\"\n  Filter teachers with students in classrooms\n  \"\"\"\n  classrooms: [ID!]\n}\ninput SendMessageInput {\n  to: ID!\n  message: String!\n  sessionId: ID\n}\ninput JournalStudentsInput {\n  \"\"\"\n  Pass true to tag all students in selected classrooms\n  \"\"\"\n  allStudents: Boolean\n  ids: [ID!]\n}\ninput CreateJournalInput {\n  title: String!\n  content: String!\n  students: JournalStudentsInput!\n  postType: ContentPostType\n  status: JournalStatus\n  classrooms: [ID!]\n  clubs: [ID!]\n  tags: [String!]\n  allowComments: Boolean\n}\ninput JournalCommentInput {\n  add: [String!]\n  remove: [ID!]\n  attachments: [UploadInput!]\n  hide: [ID!]\n  unhide: [ID!]\n}\ninput AttachmentsInput {\n  \"\"\"\n  This is an array of attachments urls\n  \"\"\"\n  remove: [String!]\n  add: [UploadInput!]\n}\ninput UpdateJournalInput {\n  students: JournalStudentsInput\n  postType: ContentPostType\n  status: JournalStatus\n  classrooms: [ID!]\n  clubs: [ID!]\n  tags: [String!]\n  title: String\n  content: String\n  allowComments: Boolean\n  \"\"\"\n  Always send true as it will be negated based on if user has liked the journal before\n  \"\"\"\n  like: Boolean\n  attachments: AttachmentsInput\n  comments: JournalCommentInput\n}\ninput ReactToJournalInput {\n  comments: JournalCommentInput\n  like: Boolean\n}\ninput GroupFeeInput {\n  amount: Number\n  recurring: Boolean\n}\ninput BusLocationInput {\n  id: ID\n  phone: String\n  name: String\n  longitude: Number\n  latitude: Number\n  accuracy: Number\n  altitude: Number\n  heading: Number\n  speed: Number\n  speedAccuracy: Number\n}\ninput GroupTeam {\n  id: ID\n  role: String\n}\ninput GroupTeamInput {\n  add: [GroupTeam!]\n  remove: [ID!]\n}\ninput GroupStudentsInput {\n  add: [ID!]\n  remove: [ID!]\n}\ninput CreateGroupInput {\n  name: String\n  fee: GroupFeeInput\n  groupType: String\n  description: String\n  hidden: Boolean\n  students: GroupStudentsInput\n  team: GroupTeamInput\n}\ninput UpdateGroupInput {\n  name: String\n  fee: GroupFeeInput\n  groupType: String\n  description: String\n  hidden: Boolean\n  students: GroupStudentsInput\n  team: GroupTeamInput\n}\ninput PrintFeeReceiptInput {\n  id: ID!\n}\ninput CreateClassroomInput {\n  name: String!\n  grade: String!\n  teachers: ClassroomTeachersInput\n  type: CLASSROOM_TYPE!\n}\ninput ClassroomStudentsInput {\n  add: [ID!]\n  remove: [ID!]\n}\ninput ClassroomTeachersInput {\n  add: [ClassroomTeacherSubjectInput!]\n  remove: [ID!]\n}\ninput ClassroomTeacherSubjectInput {\n  id: ID!\n  subjectId: [ID]\n}\ninput UpdateClassroomInput {\n  name: String\n  grade: String\n  students: ClassroomStudentsInput\n  teachers: ClassroomTeachersInput\n  type: CLASSROOM_TYPE\n}\ninput MoveStudentsInput {\n  to: ID\n  move: [ID]\n}\ninput PromoteStudentsInput {\n  type: PromoteStudentsType!\n  value: String!\n}\n\ninput UpdateLinkedSchoolInput {\n  add: CreateSchoolInput\n  link: [ID!]\n  remove: [ID!]\n}\ninput CreateDistrictInput {\n  name: String!\n  state: String\n  zipCode: String\n  contact: String\n  logo: UploadInput\n  admin: UserAccountInput\n  school: CreateSchoolInput\n}\ninput UpdateDistrictInput {\n  name: String\n  state: String\n  zipCode: String\n  contact: String\n  logo: UploadInput\n  admin: UpdateLinkedUserInput\n  schools: UpdateLinkedSchoolInput\n}\ninput MPesaShortCodeCredentialInput {\n  shortCode: Int!\n  identity: ShortCodeIdentity!\n  consumerKey: String!\n  consumerSecret: String!\n  \"\"\"\n  Required for B2C short codes\n  \"\"\"\n  initiatorName: String\n  \"\"\"\n  Required for B2C short codes\n  \"\"\"\n  operatorPassword: String\n  \"\"\"\n  Required for STK Push short codes (Lipa na M-Pesa online)\n  \"\"\"\n  lipaNaMpesaShortPass: String\n  lipaNaMpesaShortCode: Number\n}\ninput EditMPesaShortCodeCredentialInput {\n  shortCode: Int\n  identity: ShortCodeIdentity\n  consumerKey: String\n  consumerSecret: String\n  \"\"\"\n  Required for B2C short codes\n  \"\"\"\n  initiatorName: String\n  \"\"\"\n  Required for B2C short codes\n  \"\"\"\n  operatorPassword: String\n  \"\"\"\n  Required for STK Push short codes (Lipa na M-Pesa online)\n  \"\"\"\n  lipaNaMpesaShortPass: String\n  lipaNaMpesaShortCode: Number\n}\ninput EditMpesaShortCodeInput {\n  where: WhereId!\n  input: EditMPesaShortCodeCredentialInput!\n}\ninput MPesaShortCodeInput {\n  add: MPesaShortCodeCredentialInput\n  remove: [ID!]\n  edit: EditMpesaShortCodeInput\n}\ninput TeacherStudentCourseInput {\n  student: ID!\n  course: String\n}\ninput SchemeOfWorkInput {\n  weeks: Int!\n  lessons: Int!\n  classroomId: String!\n  title: String!\n  subjectId: String!\n  period: String\n  topic: String\n}\ninput createSchemeWhere {\n  classroomId: ID!\n  subjectId: ID!\n  gradingPeriodId: ID!\n  classroomTeacherId: ID\n  title: String!\n}\ninput verifySchemesWhere {\n  id: ID!\n  role: UserRole!\n  verified: Boolean\n}\ninput TeacherClassroomInput {\n  id: ID!\n  subjectId: [ID!]\n}\ninput AssignTeacherToClassInput {\n  add: [TeacherClassroomInput!]\n  remove: [ID!]\n}\ninput AssignStudentToTeacherInput {\n  add: [TeacherStudentCourseInput!]\n  remove: [TeacherStudentCourseInput!]\n}\ninput StudentParentRelationshipInput {\n  parent: ID!\n  relationship: String\n}\ninput LinkParentToStudentInput {\n  add: UserAccountInput\n  addArray: [UserAccountInput]\n  link: [StudentParentRelationshipInput!]\n  remove: [ID!]\n}\ninput StudentHealthInput {\n  accomodation: String\n  disability: String\n  disabilitySubType: String\n  notes: String\n}\ninput AssignedPersonnelInput {\n  id: ID\n  role: String\n}\ninput StudentAssignedPersonnelsInput {\n  add: [AssignedPersonnelInput!]\n  remove: [ID!]\n}\ninput StudentEquipmentInput {\n  add: [EquipmentInput!]\n  remove: [ID!]\n}\ninput EquipmentInput {\n  name: String!\n  notes: String\n}\n\ninput FilterMerits {\n  from: DateTime\n  to: DateTime\n  studentId: [ID!]\n  schoolId: [ID!]\n  meritId: [ID!]\n  marker: [ID!]\n  classroomId: [ID]\n}\n\ninput AccountFilter {\n  school: [ID]\n  account: [UserRole]\n  accountStatus: [AccountStatus]\n  search: String\n  gender: [String!]\n}\ninput UserOrderBy {\n  gender: OrderBy\n  createdat: OrderBy\n}\n\ninput DisabledSchoolFeaturesInput {\n  featureId: ID!\n  schoolId: ID!\n}\ninput IFunzaFeatureInput {\n  name: SupportedFeatures!\n  description: String\n  monthlyCost: Float\n}\n\ninput BankDetailsInput {\n  \"\"\"\n  Name of the Bank. You can provide a selection of supported banks\n  https://www.ipsl.co.ke/partners/banks\n  \"\"\"\n  name: String!\n  \"\"\"\n  Bank Code. You can provide a selection of available codes from\n  https://www.centralbank.go.ke/images/docs/Bank%20Supervision%20Reports/KBA_Bank_Branch_Listing_14th_October_2011.pdf\n  \"\"\"\n  bankCode: String!\n  \"\"\"\n  Phone number linked to bank acocunt\n  \"\"\"\n  phone: String!\n  \"\"\"\n  Account number\n  \"\"\"\n  account: String!\n  \"\"\"\n  Account name\n  \"\"\"\n  accountName: String!\n  \"\"\"\n  Branch Name\n  \"\"\"\n  branch: String!\n  isDefault: Boolean\n}\ninput BankDetailsEditInput {\n  name: String\n  bankCode: String\n  phone: String\n  account: String\n  accountName: String\n}\ninput BankCredentialsInput {\n  add: BankDetailsInput\n  edit: BankDetailsEditInput\n  remove: ID\n  editId: ID\n}\ninput FirebaseDeviceTokenInput {\n  token: String!\n}\n\ninput BillingGroupInput {\n  name: String!\n  from: Date!\n  to: Date!\n  items: BillingItemEntryInput\n}\ninput BillingItemEntryInput {\n  remove: [ID!]\n  add: [BillingItemInput!]\n}\ninput BillingItemInput {\n  sno: String!\n  item: String!\n  amount: BillingItemAmountInput\n  classrooms: BillingItemClassroomsInput\n}\ninput EditBillingItemInput {\n  id: ID!\n  sno: String!\n  item: String!\n  amount: BillingItemAmountInput\n  classrooms: BillingItemClassroomsInput\n}\ninput BillingItemStudentInput {\n  sno: String!\n  item: String!\n  amount: Number\n}\ninput BillingItemClassroomsInput {\n  add: [ID!]\n  remove: [ID!]\n}\ninput BillingItemAmountInput {\n  dayScholar: Float\n  boarding: Float\n}\ninput IFunzaPartnerInput {\n  name: String\n  address: String\n  type: IFunzaPartnerType\n  accountManager: UserAccountInput\n}\ninput IFunzaPartnerAccountManagerInput {\n  add: UserAccountInput\n  remove: ID\n}\ninput TakeAttendanceInput {\n  student: String!\n  present: Boolean!\n  period: [AttendanceAbsentPeriod!]\n  reason: String\n  excused: Boolean\n}\ninput TakeAttendanceParams {\n  \"\"\"\n  If date is not null or not specified, current day is set as the default\n  \"\"\"\n  date: Date\n  classroom: ID!\n}\n\ninput ManualCheckoutInput {\n  amount: Number!\n  mode: PaymentMode!\n  payer: String\n  chequeNumber: String\n  transactionId: String\n  bankName: ID\n  date: DateTime\n  items: [FeePaymentItem]\n  studentId: ID\n}\n\ninput FeePaymentItem {\n  itemId: ID!\n  type: FeePaymentType!\n  amount: Float!\n  invoiceId: ID!\n}\ninput AttendanceRecordsFilter {\n  from: DateTime\n  to: DateTime\n  teacher: ID\n  classroom: String\n  absent: Boolean\n  excused: Boolean\n  studentId: ID\n}\ninput UserVerificationsFilter {\n  parent: ID\n}\ninput BillingPeriodItemAmountInput {\n  boarding: Float\n  dayScholar: Float\n}\ninput BillingPeriodItemInput {\n  sno: String\n  item: String\n  amount: BillingPeriodItemAmountInput\n  classrooms: [ID!]\n}\ninput BillingPeriodInput {\n  name: String!\n  from: DateTime\n  to: DateTime\n  dueDate: DateTime\n  includePastArrears: Boolean\n  items: [BillingPeriodItemInput]\n}\n\ninput UpdateBillingPeriodItems {\n  remove: [ID!]\n  add: [BillingPeriodItemInput!]\n  edit: [EditBillingPeriodItemInput!]\n}\ninput EditBillingPeriodItemInput {\n  item: BillingPeriodItemInput!\n  where: WhereId!\n}\ninput UpdateBillingPeriodInput {\n  name: String\n  from: DateTime\n  to: DateTime\n  dueDate: DateTime\n  includePastArrears: Boolean\n  items: UpdateBillingPeriodItems\n}\ninput RequestStudentLoanInput {\n  invoices: [ID!]!\n  amount: Float!\n  mpesaStatement: UploadInput\n  repaymentPeriod: String\n  primaryBank: String\n  otherPrimaryBank: String\n  hasDtbAccount: Boolean\n  dtbAccountNumber: String\n  nearestBranch: String\n  debitDay: String\n}\ninput FilterInvoices {\n  student: ID\n  \"\"\"\n  Not required. By default, invoices for the current year will be returned\n\n  e.g 202\n  \"\"\"\n  year: Int\n  billingPeriod: [ID!]\n  invoiceYear: Int\n  mode: [InvoiceStatus]\n  page: Int\n  pageSize: Int\n  hasLoan: Boolean\n  query: String\n  studentStatus: [StudentStatusType!]\n}\n\ninput FilterFeePayment {\n  studentId: [ID]\n  billingPeriod: [ID!]\n  invoiceYear: Int\n  mode: InvoiceStatus\n  classrooms: [ID]\n  from: DateTime\n  to: DateTime\n}\n\n\"\"\"\nDon't more than one variable at a time\n\"\"\"\ninput RequestedLoansFilter {\n  \"\"\"\n  Lender ID\n  \"\"\"\n  lender: ID\n\n  \"\"\"\n  Loans applied for student\n  \"\"\"\n  student: ID\n  \"\"\"\n  Loans a parent has applied\n  \"\"\"\n  parent: ID\n\n  \"\"\"\n  Invoice ID\n  \"\"\"\n  invoice: ID\n\n  \"\"\"\n  School ID\n  \"\"\"\n  school: ID\n  status: [SchoolFeesLoanStatus]\n}\ninput AttendanceStudentFilter {\n  classroomIds: [ID!]!\n  from: DateTime\n  to: DateTime\n  teacher: ID\n}\ninput SyncInvoicesFilter {\n  billingPeriod: [ID!]\n  syncDirection: [QuickbooksSyncDirection]\n  periodName: String\n  from: DateTime\n  to: DateTime\n}\n\ninput DisconectGroupInput {\n  studentId: ID!\n  invoiceId: ID!\n  groupId: ID!\n}\n\"\"\"\nFilter Invoice Loan Check\n\"\"\"\ninput invoiceLoanFilter {\n  invoice: ID\n}\n\ninput UpdateLoanStatusInput {\n  status: SchoolFeesLoanStatus!\n  reason: String\n  disburseMode: DisburseMode\n  installments: [LoanInstallmentInput!]\n  terms: [TermsInput!]\n  disburseAmount: Float\n}\ninput MpesaStkPushInput {\n  amount: Float!\n  phone: String!\n}\n\ninput LoanInstallmentInput {\n  sno: String!\n  name: String!\n  repaymentDate: DateTime!\n  amount: Float!\n}\n# Response for initiating mpesa stk push\n\n# schema for verification inputs\n\ninput AddUserVerificationInput {\n  financialAnalysis: VerificationFinancialAnalysisInput\n  employmentDetails: VerificationEmploymentDetailsInput\n  personalDetails: VerificationPersonalDetailsInput\n}\ninput VerificationEmploymentDetailsInput {\n  occupation: String\n  employerName: String\n  isGovernmentEntity: Boolean\n  employerTel: String\n  role: String\n  occupationDuration: Int\n  occupationType: String\n  employmentAddress: String\n}\n\ninput UpdateUserVerificationInput {\n  financialAnalysis: VerificationFinancialAnalysisInput\n  personalDetails: VerificationPersonalDetailsInput\n  employmentDetails: VerificationEmploymentDetailsInput\n}\n\ninput UpdateBlacklistStatusInput {\n  blacklist: BlackListParentFromLoan\n  userId: ID\n}\n\ninput VerificationFinancialAnalysisInput {\n  primaryIncomeSource: String\n  primaryIncomeRange: String\n  secondaryIncomeSource: String\n  secondaryIncomeRange: String\n  typeOfResidence: String\n}\n\ninput VerificationPersonalDetailsInput {\n  title: String\n  fname: String\n  mname: String\n  sname: String\n  krapin: String\n  dob: String\n  idType: String\n  idNo: String\n  gender: String\n  maritalStatus: String\n  nationality: String\n  foreignTaxable: Boolean\n  foreigntaxCountry: String\n  foreigntaxRef: String\n  mobile: String\n  mobile2: String\n  email: String\n  postalTown: String\n  postalAddress: String\n  postalCode: String\n  buildingName: String\n  street: String\n  town: String\n  county: String\n  country: String\n  surburb: String\n}\ninput PromotionNotificationInput {\n  title: String!\n  message: String!\n  audience: [String!]!\n  type: NotificationChannel!\n  schools: [ID!]\n}\n\n# end of verification inputs\ninput CreateOrUpdateLoanPaymentDetailsInput {\n  payBillDetails: [PayBillDetailsInput]\n  bankDetails: [BankDetailsInputForLoanPayment]\n}\n\ninput UpdateLoanPaymentDetailsInput {\n  payBillDetails: [UpdatePayBillDetailsInput]\n  bankDetails: [UpdateBankDetailsInputForLoanPayment]\n}\n\ninput UpdatePayBillDetailsInput {\n  payBillNumber: String\n  id: ID\n}\ninput PayBillDetailsInput {\n  payBillNumber: String\n}\n\ninput BankDetailsInputForLoanPayment {\n  bankName: String\n  bankAccountNumber: String\n}\n\ninput UpdateBankDetailsInputForLoanPayment {\n  bankName: String\n  bankAccountNumber: String\n  id: ID\n}\n\n# Trip Inputs\ninput CreateStartTripInput {\n  name: String\n  type: TripType!\n  zoneId: ID!\n  origin: CoordinateLocationInput\n}\n\ninput PickDropInput {\n  action: DropPick!\n  students: [ID!]\n  location: CoordinateLocationInput\n}\ninput PartnerSettingsInput {\n  policy: String\n  terms: String\n  about: String\n  phone: String\n  minimumLoanAmount: Float\n  maximumLoanAmount: Float\n  helplineContacts: [String]\n  emailAddress: String\n  interestRate: Number\n  sendInvoice: Boolean\n  interestType: INTERESTTYPE\n  interestPeriod: INTERESTPERIOD\n  alertAproval: Boolean\n  alertEmails: [String]\n}\n\ninput SchoolMeritsInput {\n  avatar: UploadInput\n  name: String!\n  type: MeritsType!\n  description: String\n  point: Number!\n  negativeOnDemerit: Boolean\n}\ninput UpdateSchoolMeritsInput {\n  name: String\n  type: MeritsType\n  description: String\n  point: Number\n  avatar: UploadInput\n  negativeOnDemerit: Boolean\n}\ninput StudentMeritInput {\n  studentMeritId: ID\n  meritId: String!\n  date: DateTime!\n  comment: String\n  markerId: String\n  studentId: ID!\n  type: BehavioralType!\n}\n\ninput GradingPeriodInput {\n  name: String!\n  from: DateTime!\n  to: DateTime!\n  gradingExams: [GradingExamsInput!]!\n}\ninput GradingExamsInput {\n  periodType: PeriodType\n  name: String\n  from: DateTime\n  to: DateTime\n  submissionDeadline: DateTime\n  classroomPeriodInput: [ClassroomPeriodInput]!\n}\ninput ClassroomPeriodInput {\n  classroomId: ID!\n  classroomName: String!\n  subjectId: [ID!]!\n  subjectName: String!\n}\ninput StudentGradeInput {\n  score: Float!\n  scoreId: ID!\n  outofMarks: Int\n  present: Boolean!\n  comment: String\n  attachment: String\n  rubricValue: String\n  topics: [TopicScoreInput]\n}\ninput TopicScoreInput {\n  id: ID!\n  score: Float!\n  rubricValue: String!\n  comment: String\n}\ninput createOrganizationInput {\n  schools: [ID!]\n  name: String!\n  address: String\n  type: OrganisationType\n  currency: SupportedCurrency\n  contact: String\n}\ninput updateOrganizationInput {\n  removeSchools: [ID!]\n  addSchools: [ID!]\n  name: String\n  address: String\n  type: OrganisationType\n  currency: SupportedCurrency\n  contact: String\n}\ninput transferSchoolsToOrgFromInput {\n  schools: [ID!]\n}\ninput transferSchoolsToOrgToInput {\n  organisation: ID!\n}\n\ntype GeneralSchoolPerformance {\n  meanPoints: Float\n  meanMarks: Float\n  meanGrade: String\n  totalStudents: Int\n  gradingExam: GradingExam\n  gradeName: String\n  streamName: String\n  streamId: ID\n  subjectPerformance: [SubjectPerformanceAnalysis]\n  totalStudentsPerGrade: TotalStudentsPerGrade\n}\ntype TotalStudentsPerGrade {\n  gradeCounts: [GradeCount]\n  totalStudents: Int\n  classAverageInfo: [ClassAverageInfo]\n  X: Float\n  Y: Float\n  classTeacher: Teacher\n}\ntype ClassAverageInfo {\n  average: Float\n  grade: String\n  description: String\n  points: Float\n}\ntype GradeCount {\n  grade: String\n  count: Int\n  description: String\n}\n\ntype SubjectPerformanceAnalysis {\n  subjectName: String\n  grade: String\n  meanMark: Float\n  meanRubric: Float\n  description: String\n  id: ID\n}\n\"\"\"\nCreate Vehicle Input\n\"\"\"\ninput VehicleInput {\n  type: VehicleType\n  capacity: Number\n  owner: VehicleOwnership\n  plate: String\n  avatar: UploadInput\n  driverId: ID\n}\n\ninput UpdateStudentStatusInput {\n  student: ID!\n  status: StudentStatusType!\n}\ninput GradingPeriodFilter {\n  id: [ID]\n  from: DateTime\n  to: DateTime\n  hidden: Boolean\n  periodType: PeriodType\n  dataSubmitted: Boolean\n}\ninput ExamsFilter {\n  id: [ID]\n  gradingPeriod: [ID]\n  subjects: String\n  classrooms: [ID]\n  from: DateTime\n  to: DateTime\n  gradingExams: [ID]\n  page: Int\n  pageSize: Int\n}\ninput StudentScoreFilter {\n  studentId: [ID]\n  exams: [ID]\n  classrooms: [ID]\n}\ninput GradingExamsFilter {\n  gradingPeriod: [ID]\n  from: DateTime\n  to: DateTime\n  classrooms: [ID]\n  year: Int\n  students: [ID]\n}\ninput ExamRubricInput {\n  name: String\n  examId: ID\n  criteria: [RubricCriteriaInput!]!\n}\ninput RubricCriteriaInput {\n  id: ID\n  name: String!\n  maxScore: Int!\n  minScore: Int!\n  value: Float!\n  label: String\n}\ninput UpdateExamInput {\n  name: String\n  maxScore: Int\n  dataSubmitted: Boolean\n}\n\ninput CreateExamTopicInput {\n  name: String\n  description: String\n}\ninput EditExamTopicInput {\n  name: String\n  description: String\n  id: ID\n}\ninput GradebookTemplateInput {\n  name: String!\n  location: String!\n  description: String!\n  avatar: UploadInput!\n  pdf: UploadInput!\n  type: [GRADEBOOKTEMPLATETYPE!]!\n}\n\ninput ExamComments {\n  examsId: String!\n  classTeacherComment: String\n  schoolAdminComment: String\n  parentComment: String\n  conduct: String\n  cleanliness: String\n  competency: String\n  studentId: String!\n}\ninput SubjectInputType {\n  id: ID\n  type: SUBJECT_TYPE\n}\ninput CreateGradebookOptions {\n  showOnlyRubrics: Boolean\n  classrooms: [ID!]\n  logo: UploadInput\n  gradebook: String\n  signature: UploadInput\n  term: String\n  openingdate: DateTime\n  closingdate: DateTime\n  showTopics: Boolean\n  showRubricsInGradebooks: Boolean\n  showTeachersComments: Boolean\n  type: StudentGradebookType\n  title: String\n  adminId: String!\n}\n\ninput StrandInput {\n  number: String!\n  name: String\n  description: String!\n  substand: [SubStrandInput!]\n}\ninput StrandMarksInput {\n  subStrandId: ID!\n  studentId: ID!\n  marks: String\n  marksId: ID\n  comment: String\n  startDate: DateTime!\n  endDate: DateTime!\n}\n\ninput SubStrandInput {\n  number: String!\n  name: String\n  description: String!\n}\ninput GradebookTemplateFilter {\n  stranded: Boolean\n  type: [GRADEBOOKTEMPLATETYPE]\n}\n\ninput UploadInput {\n  link: String\n  mimetype: String\n  filename: String\n  encoding: String\n}\ninput StudentGradebookInput {\n  studentId: ID!\n  gradingExamId: ID!\n  file: UploadInput!\n}\ninput ExpenseVendorInput {\n  givenName: String!\n  companyName: String!\n  phone: String!\n  email: String\n  acctNum: String\n  otherPhone: String\n  title: String\n  fname: String\n  lname: String\n}\ninput CreateBillInput {\n  date: DateTime!\n  payerId: String!\n  accountId: String\n  items: [BillLineInput!]!\n  refNo: String\n  dueDate: DateTime\n  paymentMode: PaymentMode\n}\ninput UpdateBillInput {\n  date: DateTime!\n  payerId: String!\n  accountId: String\n  refNo: String\n  dueDate: DateTime\n  paymentMode: PaymentMode\n}\ninput BillLineInput {\n  id: String\n  amount: Float\n  description: String\n  AccountId: String\n}\ninput CreateExpenseAccountInput {\n  accountType: ExpenseAccountType\n  name: String\n}\ninput ExpensePaymentInput {\n  amount: Float!\n  date: DateTime!\n  paymentMethod: PaymentMode\n  bankId: String\n  paymentRef: String\n  id: String\n  paymentMode: String\n}\ninput SchoolFeesRemindersInput {\n  reminderName: String!\n  reminderDays: Int!\n  isRecurrent: Boolean!\n  isActive: Boolean!\n  sms: Boolean!\n  message: String\n  bilings: [BillingReminderInput!]\n  classroom: [ID!]\n  classroomMiniFees: Float\n}\ninput BillingReminderInput {\n  periodIds: [ID!]!\n  schoolfees: Float!\n}\ninput BuySchoolSMSInput {\n  phone: String!\n  amount: Int!\n}\ninput SchoolConfigurationInput {\n  sendInvoiceEmail: Boolean\n  allTeachersTakeAttendance: Boolean\n  allowSecretaryToRecordFees: Boolean\n  requireclearPreviousInvoice: Boolean\n  settleInvoiceWithOverpayment: Boolean\n}\ntype SchoolSms {\n  sms: Int\n  used: Int\n  id: ID\n  createdAt: DateTime\n  updatedAt: DateTime\n  schoolId: ID\n}\ntype SchoolFeesReminderStats {\n  sent: Int\n  failed: Int\n  total: Int\n  pending: Int\n  reminders: [Reminder]\n}\ntype Reminder {\n  id: ID\n  isActive: Boolean\n  isRecurrent: Boolean\n  sentTimes: Int\n  nextReminder: DateTime\n  createBy: Account\n  createdat: DateTime\n  afterDays: Int\n  classroomNames: [String]\n  classroomMiniFees: Float\n  reminderBillings: [BillingPeriodReminder]\n  sendSms: Boolean\n  parents: [ParentReminder]\n  schoolFeesReminders: SchoolFeesReminder\n}\ntype BillingPeriodReminder {\n  minimumAmount: Float\n  bilingPeriods: [BillingGroup]\n}\ntype ParentReminder {\n  id: ID\n  name: String\n  isEstoreActivated: Boolean\n  email: String\n  availableAccounts: [UserRole]\n  phone: String\n  gender: String\n  account: String @toKebabCase\n  admNo: String\n  nemisNo: String\n  school: String\n  licenseNumber: String\n  idNumber: Number\n  tscNumber: String\n  avatar: Attachment @defaultAvatarCheck\n  avatarUrl: String\n  signature: Attachment\n  partnerId: String\n  accountStatus: AccountStatus\n  allowPushNotifications: Boolean\n  reminderDocument: Attachment\n  feesBalance: Float\n  message: String\n  studentName: String\n}\n\ntype ParentTotalPaidAndUnpaidSchoolFees {\n  totalPaid: Float\n  totalBilled: Float\n  totalUnpaid: Float\n}\ninput ReminderPrintInput {\n  name: String!\n  message: String!\n}\ninput UpdateReminderInput {\n  reminderName: String!\n  reminderDays: Int!\n  isRecurrent: Boolean!\n  sms: Boolean!\n  message: String!\n}\ninput AssessmentInput {\n  score: Int!\n  questionNumber: String!\n  type: AssesmentQuestionType!\n}\n\ninput salesInputFilter {\n  classroom: ID\n  date: DateTime\n}\ninput AttendanceReportFilter {\n  from: DateTime\n  to: DateTime\n}\n\ninput salaryStructureInput {\n  # name: String!\n  employeesIds: [ID]\n  earnings: [EarningInput]\n  deductions: [DeductionsInput]\n}\n\ninput EarningInput {\n  title: String\n  amount: Float\n}\ninput DeductionsInput {\n  title: String\n  amount: Float\n  isOtherDeduction: Boolean\n}\ninput PaymentInput {\n  phone: String\n  accountName: String\n  accountNumber: String\n  bankCode: String\n  branchCode: String\n  bankName: String\n}\ntype SalaryPaymentMethod {\n  id: ID\n  phone: String\n  method: [PayslipPaymentMethod]\n  banks: [BankAccount]\n  walletId: String\n}\ntype SalaryStructure {\n  id: ID\n  isActive: Boolean\n  employee: Account\n  crreatedAt: Date\n  updatedAt: Date\n  earnings: [Earning]\n  deductions: [Deduction]\n}\n\ntype Earning {\n  id: ID\n  title: String\n  amount: Float\n}\ntype Deduction {\n  id: ID\n  title: String\n  amount: Float\n}\ntype Payslip {\n  id: ID\n  employee: Account\n  month: Int\n  year: Int\n  isPaid: Boolean\n  payslipType: PayslipType\n  paymentMethod: PayslipPaymentMethod\n  isSigned: Boolean\n  paidAt: DateTime\n  totalEarnings: Float\n  totalDeductions: Float\n  netAmount: Float\n  earnings: [Earning]\n  deductions: [Deduction]\n  payslipPDf: String\n  salaryStructure: SalaryStructure\n}\n\ntype PayslipStat {\n  totalDeductions: Float\n  month: Int\n  year: Int\n  totalEarnings: Float\n}\n\ninput BookEventInput {\n  eventId: ID!\n  startTime: String!\n  endTime: String!\n  date: DateTime!\n}\n# end input definitions\n\n# begin enum definitions\nenum PayslipType {\n  HOURLY\n  MONTHLY\n  WEEKLY\n}\nenum PayslipPaymentMethod {\n  CASH\n  WALLET\n  CHEQUE\n  M_PESA\n  BANK_TRANSFER\n}\nenum AssesmentQuestionType {\n  STEM\n  ARTS\n  SOCIAL\n  VISUAL_LEARNING\n  AUDITORY_LEARNING\n  KINESTHETIC_LEARNING\n}\nenum DatePeriod {\n  MONTH\n  LAST_30_DAYS\n  YEAR\n  QUARTER\n}\nenum GRADEBOOKTEMPLATETYPE {\n  STRANDED\n  MARKS\n  RUBRIC\n  YEARLY\n  TERMLY\n  ASSESMENT_BOOK\n}\nenum LOCALE {\n  EN\n  SW\n}\nenum DEVIATION {\n  POSITIVE\n  NEGATIVE\n}\nenum PeriodType {\n  CBC\n  EIGHT_FOUR_FOUR\n  IGCSE\n  BRITISH_CURRICULUM\n  MONTESSORI\n}\n\nenum UserRole {\n  NURSE\n  PARENT\n  IFUNZA_SALES_OFFICER\n  DRIVER\n  STUDENT\n  TEACHER\n  SUPERVISOR\n  FACILITATOR\n  SCHOOLADMIN\n  HEAD_TEACHER\n  CASE_MANAGER\n  ADMINISTRATOR\n  FLEET_MANAGER\n  DISTRICT_ADMIN\n  FINANCE_MANAGER\n  ORGANISATION_ADMIN\n  LENDER_ACCOUNT_MANAGER\n  INSURANCE_ACCOUNT_MANAGER\n  LOAN_OFFICER\n  SECRETARY\n  VENDOR\n  LENDER_SALES_OFFICER\n  STAFF_MEMBER\n  DEAN_OF_STUDIES\n}\nenum StudentStatusType {\n  ON_LEAVE\n  COMPLETED\n  SUSPENDED\n  IN_SESSION\n  TRANSFERRED\n}\nenum Audience {\n  Parents\n  Teachers\n  Students\n  Drivers\n  FLEET_MANAGER\n  Secretary\n  HEADTEACHER\n  FINANCE_MANAGER\n  ALL_STAFF\n  ALL_MEMBERS\n}\nenum EmployeeType {\n  Teachers\n  Drivers\n  FLEET_MANAGER\n  Secretary\n  HEADTEACHER\n  SCHOOLADMIN\n  FINANCE_MANAGER\n  ALL_STAFF\n}\nenum ContentPostType {\n  JOURNAL\n  CLUB_POST\n  COURSE_MATERIAL\n}\n\nenum JournalStatus {\n  DRAFT\n  PUBLISHED\n}\nenum PromoteStudentsType {\n  CLASSROOM\n  STATUS\n}\nenum OrganisationType {\n  GROUP_OF_SCHOOLS\n  SPECIAL_EDUCATION\n  WITH_SCHOOL_DISTRICTS\n}\nenum SupportedCurrency {\n  KES\n  USD\n  EUR\n  JPY\n  GBP\n  CAD\n  CHF\n  AUD\n}\nenum SupportedLocales {\n  en\n  ch\n  es\n  fr\n}\n\nenum ShortCodeIdentity {\n  PAYBILL\n  TILL_NUMBER\n}\n\nenum NOTIFICATION_TYPE {\n  INVOICE\n  JOURNAL\n  ACTIVITY\n  NEWSLETTER\n  ANNOUNCEMENT\n  EVENT_REMINDER\n  ADDED_TO_GROUP\n  JOURNAL_COMMENT\n  ASSIGNED_STUDENT\n  DROPOFF_OR_PICKUP\n  ASSIGNMENT_POSTED\n  REACTED_TO_JOURNAL\n  ASSIGNED_CLASSROOM\n  ASSIGNEMT_REACTION\n  SCHOOL_FEES_RECEIVED\n  ASSIGNMENT_SUBMISSION\n  ATTENDANCE_NOTIFICATION\n  LOAN_NOTIFICATION_MESSAGE\n  ASSIGNED_CLASS\n  ACCOUNT\n  ASSESMENT_BOOK\n  LOAN_REPAYMENT_REMAINDER\n  MESSAGE\n  VENDOR\n  WALLET\n  REMINDER\n  ASSESSMENT_REPORT\n  ASSESSMENT_REPORT_DONE\n  EXAM\n  TRIP_STARTED\n  TEACHER_EXAM_REMINDER\n  EVENT_BOOKING\n  EVENT_BOOKING_CANCELLED\n}\n\nenum IFunzaPartnerType {\n  LENDER\n  INSURER\n}\nenum ShortCodeOwner {\n  SCHOOL\n  ORGANISATION\n  MAIN_IFUNZA_ACCOUNT\n}\nenum AttendanceAbsentPeriod {\n  Afternoon\n  Evening\n  Morning\n}\nenum SchoolFeesLoanStatus {\n  PENDING\n  APPROVED\n  REJECTED\n  PROCESSING\n  LENDER_PROCESSED\n  CONFIRMED_RECEIPT\n}\nenum VehicleType {\n  VAN\n  BUS\n  MINI_BUS\n}\nenum TripType {\n  PICK_UP\n  DROP_OFF\n  EXCURSION\n}\nenum DropPick {\n  PICK_UP\n  DROP_OFF\n}\nenum VehicleOwnership {\n  LEASED\n  SCHOOL_PROPERTY\n}\nenum PaymentMode {\n  CASH\n  CARD\n  CHEQUE\n  BANK_TRANSFER\n  M_PESA\n  BALANCE\n  REFUND\n  BANK_SLIP\n  BANK_PAYBILL\n}\nenum BlackListParentFromLoan {\n  YES\n  NO\n}\n\nenum AccountStatus {\n  ENABLED\n  DISABLED\n  UNVERIFIED\n  REQUIRES_ATTENTION\n  DELETED\n  REQUIRES_PASSWORD_UPDATE\n}\n\nenum NotificationChannel {\n  SMS\n  EMAIL\n  PUSH_NOTIFICATION\n}\n\nenum DisburseMode {\n  M_PESA\n  BANK_TRANSFER\n  WALLET_TRANSFER\n}\nenum InvoiceStatus {\n  DELETED\n  NULL\n  VOID\n}\nenum SupportedFeatures {\n  JOURNAL\n  ANNOUNCEMENT\n  EVENT\n  INSURANCE\n  LOAN\n  BUS_TRACKER\n  NEWSLETTER\n  ATTENDANCE\n  MESSAGING\n  WALLET\n  GRADEBOOK\n  E_STORE\n  INVEST\n}\nenum DisabledFeatureExtension {\n  PARENT_TO_TEACHER\n  TEACHER_TO_PARENT\n  TEACHER_TO_TEACHER\n  TEACHER_TO_SCHOOLADMIN\n  PARENT_TO_SCHOOLADMIN\n  DRIVER_TO_PARENT\n  PARENT_TO_DRIVER\n  DRIVER_TO_SCHOOLADMIN\n}\n\nenum QuickbooksSyncDirection {\n  QUICKBOOKS_TO_IFUNZA\n  IFUNZA_TO_QUICKBOOKS\n}\n\nenum MeritsType {\n  ATTENDANCE\n  GRADES\n  BILLING\n  OTHERS\n}\n\nenum BehavioralType {\n  MERIT\n  DEMERIT\n}\nenum AdressType {\n  PHYSICAL\n  POSTAL\n}\n\nenum SUBJECT_TYPE {\n  CLASSROOM\n  SUBJECT\n}\n\nenum StudentGradebookType {\n  GRADING_EXAM\n  GRADING_PERIOD\n  WORKBOOK\n  UPLOADED\n}\nenum FeePaymentType {\n  GROUP\n  PERIOD\n  STUDENT_ITEM\n}\n\nenum StudentMode {\n  DAYSCHOLAR\n  BOARDING\n}\n\nenum ExpenseAccountType {\n  AdvertisingPromotional\n  Auto\n  BadDebts\n  BankCharges\n  CharitableContributions\n  Communication\n  CostOfLabor\n  DuesSubscriptions\n  Entertainment\n  EntertainmentMeals\n  EquipmentRental\n  FinanceCosts\n  Insurance\n  InterestPaid\n  LegalProfessionalFees\n  OfficeGeneralAdministrativeExpenses\n  OtherBusinessExpenses\n  OtherMiscellaneousServiceCost\n  PayrollExpenses\n  PayrollTaxExpenses\n  PayrollWageExpenses\n  PromotionalMeals\n  RentOrLeaseOfBuildings\n  RepairMaintenance\n  ShippingFreightDelivery\n  SuppliesMaterials\n  TaxesPaid\n  Travel\n  TravelMeals\n  UnappliedCashBillPaymentExpense\n  Utilities\n}\n\nenum FinancialReportType {\n  PROFIT_AND_LOSS\n  TRIAL_BALANCE\n  BALANCE_SHEET\n}\nenum InvoiceItemType {\n  GROUP\n  BILLING_ITEM\n}\nenum INTERESTTYPE {\n  SIMPLE\n  COMPOUND\n}\nenum INTERESTPERIOD {\n  MONTHLY\n  QUARTERLY\n  YEARLY\n}\nenum OrderBy {\n  DESC\n  ASC\n}\nenum RequestOrigin {\n  WEB\n  MOBILE\n}\n\nenum PrintType {\n  PDF\n  EXCEL\n  CSV\n}\n\nenum PrintMode {\n  MULTIPLE\n  SINGLE\n}\n\nenum PerformanceTrendPeriod {\n  YEAR\n  TERM\n  LAST_TERM\n  LAST_YEAR\n}\n\nenum CLASSROOM_TYPE {\n  KINDERGARTEN\n  PRIMARY\n  JUNIOR_SECONDARY\n  SECONDARY\n}\n\ntype Subscription {\n  newMessage(id: ID!): Message\n  newNotification(input: ID!): Notification\n  tripLocation(id: ID!): BusLocation\n  newDisabledFeature(input: ID!): [IfunzaFeatureResponse]\n  updatedUser(id: ID!): ID\n  balanceUpdated(id: ID!): IWallet\n  tripsInProgress(schoolId: ID!): [Trip!]!\n  tripEnded(schoolId: ID!): Boolean\n}\n"}}}