{"version":3,"file":"parenta-sauron-client.mjs","sources":["../../../projects/sauron-client/src/lib/sauron.service.ts","../../../projects/sauron-client/src/lib/entities/commands/base-command.ts","../../../projects/sauron-client/src/lib/entities/commands/commands.ts","../../../projects/sauron-client/src/lib/command-runners.ts","../../../projects/sauron-client/src/lib/entities/enums/enums.ts","../../../projects/sauron-client/src/public-api.ts","../../../projects/sauron-client/src/parenta-sauron-client.ts"],"sourcesContent":["\r\nimport {IExecutionResult} from './entities/commandresults/iexecution-result';\r\nimport {IBaseCommandResult} from './entities/commandresults/ibase-command-result';\r\nimport {BaseCommand} from './entities/commands/base-command';\r\nimport {HttpHeaders, HttpClient} from '@angular/common/http';\r\nimport {UUID} from 'angular2-uuid';\r\nimport {IBaseQuery} from './entities/queries/ibase-query';\r\nimport {IApiQueryResponse} from './entities/queries/iapi-query-response';\r\nimport {Injectable} from '@angular/core';\r\nimport { Tso } from '@parenta/ts-odata';\r\n\r\n@Injectable()\r\nexport class SauronService {\r\n\tprivate authToken: string | undefined;\r\n\tprivate apiUrl: string | undefined;\r\n\tprivate errorHandler: any;\r\n\r\n    constructor(private http: HttpClient) {\r\n    }\r\n\r\n\tpublic setAuthToken(newToken: string){\r\n\t\tthis.authToken = newToken;\r\n\t}\r\n\r\n\tpublic getAuthToken(): string | undefined {\r\n\t    return this.authToken;\r\n    }\r\n\r\n\tpublic setApiUrl(apiUrl: string){\r\n\t\tthis.apiUrl = apiUrl;\r\n\t}\r\n\r\n    public getFileUploadUrl() {\r\n        return this.apiUrl + \"/v1/File/UploadPartialFile\";\r\n    }\r\n\r\n    public setErrorHandler(handler: any){\r\n\t\tthis.errorHandler = handler;\r\n\t}\r\n\r\n    public createQuery(namespace: string, entity: string): Tso {\r\n        const url = this.apiUrl\r\n            + UUID.UUID() + '/read/' + namespace + '/'\r\n            + entity;\r\n\r\n        return new Tso(url);\r\n    }\r\n\r\n    public runQuery<TReadEntity extends IBaseQuery>(query: Tso): Promise<IApiQueryResponse<TReadEntity>> {\r\n        const localThis = this;\r\n        return this.query<TReadEntity>(query);\r\n    }\r\n\r\n    private query<TReadEntity extends IBaseQuery>(query: Tso): Promise<IApiQueryResponse<TReadEntity>> {\r\n        const that = this;\r\n        const headers = this.generateHeaders(null);\r\n        const options = {headers: headers};\r\n        return this.http.get(query.toString(), options)\r\n            .toPromise()\r\n            .then((res: Object | undefined) => {\r\n                return res as IApiQueryResponse<TReadEntity> || {} as IApiQueryResponse<TReadEntity>;\r\n            })\r\n            .catch((error: any) => {\r\n\t\t\t\tif(this.errorHandler) this.errorHandler(error);\r\n                const errMsg = (error.message) ? error.message :\r\n                    error.status ? `${error.status} - ${error.statusText}` : 'Server error';\r\n                console.error(errMsg); // log to console instead\r\n                return Promise.reject(errMsg);\r\n            });\r\n    }\r\n\r\n    executeCommand<TBaseCommand extends BaseCommand, TBaseCommandResult extends IBaseCommandResult>(cmd: TBaseCommand, overridenToken?: string):\r\n        Promise<IExecutionResult<TBaseCommandResult>> {\r\n            return this.execute<TBaseCommand, TBaseCommandResult>(cmd, overridenToken);\r\n    }\r\n\r\n\texecuteVersionedCommand<RequestType, ResultType>(request: RequestType, theNamespace : string, theCommand: string, overridenToken?: string) : Promise<ResultType> {\r\n\t\tconsole.log('Executing command', theNamespace, theCommand);\r\n\t\tconst that = this;\r\n        const headers = this.generateHeaders(overridenToken);\r\n        const options = {headers: headers};\r\n\t\tlet url = this.getCommandUrl(theNamespace, theCommand);\r\n\r\n    return this.http.post(url, request, options)\r\n            .toPromise()\r\n            .then((res: object | undefined) => {\r\n              return (res as unknown as ResultType) || {} as ResultType;\r\n            })\r\n            .catch((error: any) => {\r\n\t\t\t\tif(this.errorHandler) this.errorHandler(error);\r\n                const errMsg = (error.message) ? error.message :\r\n                    error.status ? `${error.status} - ${error.statusText}` : 'Server error';\r\n                console.error(errMsg); // log to console instead\r\n                return Promise.reject(errMsg);\r\n            });\r\n\t}\r\n\r\n\texecuteFileDownload<RequestType>(request: RequestType, theNamespace : string, theCommand: string, overridenToken?: string) : Promise<void>{\r\n\t\tlet form = document.createElement('form');\r\n\t\tform.style.display = \"none\";\r\n\t\tform.action = this.getCommandUrl(theNamespace, theCommand);\r\n\r\n\t\tform.method = \"post\";\r\n\t\tif(this.authToken != null || overridenToken != null){\r\n\t\t\tlet authTokenInput = document.createElement(\"input\");\r\n\t\t\tauthTokenInput.name = \"authToken\";\r\n\t\t\tauthTokenInput.type = \"hidden\";\r\n\t\t\tauthTokenInput.value = this.authToken as string;\r\n\r\n\t\t\tif(overridenToken != null){\r\n\t\t\t\tauthTokenInput.value = overridenToken;\r\n\t\t\t}\r\n\t\t\tform.appendChild(authTokenInput);\r\n\t\t}\r\n\t\tlet subdomain = document.createElement(\"input\");\r\n\t\tsubdomain.type = \"hidden\";\r\n\t\tsubdomain.name = \"subdomain\";\r\n\t\tsubdomain.value = window.location.hostname;\r\n\t\tlet body = document.createElement(\"input\");\r\n\t\tbody.name = \"body\";\r\n\t\tbody.type = \"hidden\";\r\n\t\tlet jsonData = JSON.stringify(request);\r\n\t\tbody.value = jsonData;\r\n\t\tform.appendChild(body);\r\n\t\tform.appendChild(subdomain);\r\n\t\tdocument.body.appendChild(form);\r\n\t\tform.submit();\r\n\t\treturn Promise.resolve();\r\n\t}\r\n\r\n\tgetFileDownloadUrl<RequestType>(request: RequestType, theNamespace : string, theCommand: string, temporaryToken?: UUID) : string{\r\n\t\tconsole.log('Executing command', theNamespace, theCommand);\r\n\t\tlet url = this.getCommandUrl(theNamespace, theCommand) + \"?\";\r\n\r\n\t\tif(temporaryToken != null) {\r\n\t\t\turl += \"token=\" + temporaryToken.toString();\r\n\t\t}\r\n\r\n\t\tfor(let property in request){\r\n\t\t\tif (temporaryToken != null)\r\n\t\t\t\turl += \"&\";\r\n\t\t\turl += property.toString() + \"=\" + request[property];\r\n\t\t\tif (temporaryToken == null)\r\n\t\t\t\turl += \"&\";\r\n\t\t}\r\n\t\treturn url;\r\n\t}\r\n\r\n\tprivate getCommandUrl(theNamespace: string, theCommand: string) : string{\r\n\t\treturn this.apiUrl + '/v1/' + theNamespace + '/' + theCommand;\r\n\t}\r\n\r\n    private execute<TBaseCommand extends BaseCommand, TBaseCommandResult extends IBaseCommandResult>(cmd: TBaseCommand, overridenToken?: string):\r\n        Promise<IExecutionResult<TBaseCommandResult>> {\r\n        const that = this;\r\n        const headers = this.generateHeaders(overridenToken);\r\n        const options = {headers: headers};\r\n        return this.http.post(this.generateCommandUrl(cmd), cmd, options)\r\n            .toPromise()\r\n            .then((res: object | undefined) => {\r\n                return res as IExecutionResult<TBaseCommandResult> || {} as IExecutionResult<TBaseCommandResult>\r\n            })\r\n            .catch((error: any) => {\r\n\t\t\t\tif(this.errorHandler) this.errorHandler(error);\r\n                const errMsg = (error.message) ? error.message :\r\n                    error.status ? `${error.status} - ${error.statusText}` : 'Server error';\r\n                console.error(errMsg); // log to console instead\r\n                return Promise.reject(errMsg);\r\n            });\r\n    }\r\n\r\n    private generateCommandUrl(command: BaseCommand): string {\r\n        return this.apiUrl + UUID.UUID() + '/execute/' + command.getRoute();\r\n    }\r\n\r\n    generateHeaders(overridenToken: string | null | undefined):HttpHeaders{\r\n        let authKey = this.authToken;\r\n        if(overridenToken) authKey = overridenToken;\r\n        let headers: any = {\r\n            'Content-Type': 'application/json',\r\n            'Accept': 'q=0.8;application/json;q=0.9'\r\n        };\r\n        if(authKey) {\r\n            headers[\"Authorization\"] = authKey;\r\n        }\r\n\r\n        return new HttpHeaders(headers);\r\n    }\r\n}\r\n","export abstract class BaseCommand {\r\n    constructor(public route: string) {\r\n\r\n    }\r\n\r\n    getRoute(): string {\r\n        return this.route;\r\n    }\r\n}\r\n","import { BaseCommand } from './base-command';\r\nimport { UUID } from 'angular2-uuid';\r\nimport * as moment from 'moment';\r\nexport namespace ViewedSystemTourCommand {\r\n\r\n    export class UserViewedWelcomeTourCommand extends BaseCommand {\r\n        constructor() {\r\n            super('ViewedSystemTour/UserViewedWelcomeTourCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace UserPreferenceCommand {\r\n\r\n    export class CreateDashboardLayoutUserPreferenceCommand extends BaseCommand {\r\n        data: string;\r\n        constructor() {\r\n            super('UserPreference/CreateDashboardLayoutUserPreferenceCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateDiarySettingsUserPreferenceCommand extends BaseCommand {\r\n        data: string;\r\n        constructor() {\r\n            super('UserPreference/CreateDiarySettingsUserPreferenceCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateDashboardLayoutUserPreferenceCommand extends BaseCommand {\r\n        userPreferenceId: UUID;\r\n        data: string;\r\n        constructor() {\r\n            super('UserPreference/UpdateDashboardLayoutUserPreferenceCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateDiarySettingsUserPreferenceCommand extends BaseCommand {\r\n        userPreferenceId: UUID;\r\n        data: string;\r\n        constructor() {\r\n            super('UserPreference/UpdateDiarySettingsUserPreferenceCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace UserIntegrationCommand {\r\n\r\n    export class CreateCalendarEndpointCommand extends BaseCommand {\r\n        userId: UUID;\r\n        constructor() {\r\n            super('UserIntegration/CreateCalendarEndpointCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace UserCommand {\r\n\r\n    export class CreateNotificationForUserCommand extends BaseCommand {\r\n        message: string;\r\n        action: string;\r\n        actionType: any; // ActionType;\r\n        notificationType: any; // NotificationType;\r\n        userId: UUID;\r\n        constructor() {\r\n            super('User/CreateNotificationForUserCommand');\r\n        }\r\n    }\r\n\r\n    export class MarkAllNotificationsForUserAsReadCommand extends BaseCommand {\r\n        constructor() {\r\n            super('User/MarkAllNotificationsForUserAsReadCommand');\r\n        }\r\n    }\r\n\r\n    export class MarkNotificationAsReadCommand extends BaseCommand {\r\n        notificationId: UUID;\r\n        constructor() {\r\n            super('User/MarkNotificationAsReadCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateLegacyIdCommand extends BaseCommand {\r\n        legacyId: number;\r\n        userId: UUID;\r\n        constructor() {\r\n            super('User/UpdateLegacyIdCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateRoleGroupForUserCommand extends BaseCommand {\r\n        userId: UUID;\r\n        roleGroupId: UUID;\r\n        constructor() {\r\n            super('User/UpdateRoleGroupForUserCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace SystemMessageCommand {\r\n\r\n    export class CreateGlobalSystemMessageCommand extends BaseCommand {\r\n        message: string;\r\n        colourType: any; // ColourType;\r\n        constructor() {\r\n            super('SystemMessage/CreateGlobalSystemMessageCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateMultiBusinessSystemMessageCommand extends BaseCommand {\r\n        message: string;\r\n        colourType: any; // ColourType;\r\n        businessIds: any; // ICollection`1;\r\n        constructor() {\r\n            super('SystemMessage/CreateMultiBusinessSystemMessageCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateSingleBusinessSystemMessageCommand extends BaseCommand {\r\n        message: string;\r\n        colourType: any; // ColourType;\r\n        businessId: UUID;\r\n        constructor() {\r\n            super('SystemMessage/CreateSingleBusinessSystemMessageCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateSingleUserSystemMessageCommand extends BaseCommand {\r\n        message: string;\r\n        colourType: any; // ColourType;\r\n        userId: UUID;\r\n        constructor() {\r\n            super('SystemMessage/CreateSingleUserSystemMessageCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace RoleGroupCommand {\r\n\r\n    export class CreateRoleGroupCommand extends BaseCommand {\r\n        name: string;\r\n        corporationId: UUID;\r\n        constructor() {\r\n            super('RoleGroup/CreateRoleGroupCommand');\r\n        }\r\n    }\r\n\r\n    export class DeleteRoleGroupCommand extends BaseCommand {\r\n        roleGroupId: UUID;\r\n        constructor() {\r\n            super('RoleGroup/DeleteRoleGroupCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateRoleGroupCommand extends BaseCommand {\r\n        name: string;\r\n        constructor() {\r\n            super('RoleGroup/UpdateRoleGroupCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace PermissionCommand {\r\n\r\n    export class CreatePermissionCommand extends BaseCommand {\r\n        permissionType: any; // PermissionType;\r\n        name: string;\r\n        description: string;\r\n        constructor() {\r\n            super('Permission/CreatePermissionCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace ParentaStaffUserCommand {\r\n\r\n    export class ChangeBasicDetailsCommand extends BaseCommand {\r\n        firstName: string;\r\n        lastName: string;\r\n        constructor() {\r\n            super('ParentaStaffUser/ChangeBasicDetailsCommand');\r\n        }\r\n    }\r\n\r\n    export class ChangeEmailCommand extends BaseCommand {\r\n        oldEmailAddress: string;\r\n        newEmailAddress: string;\r\n        constructor() {\r\n            super('ParentaStaffUser/ChangeEmailCommand');\r\n        }\r\n    }\r\n\r\n    export class ChangePasswordCommand extends BaseCommand {\r\n        oldPassword: string;\r\n        newPassword: string;\r\n        constructor() {\r\n            super('ParentaStaffUser/ChangePasswordCommand');\r\n        }\r\n    }\r\n\r\n    export class OverrideBasicDetailsCommand extends BaseCommand {\r\n        firstName: string;\r\n        lastName: string;\r\n        userId: UUID;\r\n        constructor() {\r\n            super('ParentaStaffUser/OverrideBasicDetailsCommand');\r\n        }\r\n    }\r\n\r\n    export class OverrideEmailAddressCommand extends BaseCommand {\r\n        newEmailAddress: string;\r\n        userId: UUID;\r\n        constructor() {\r\n            super('ParentaStaffUser/OverrideEmailAddressCommand');\r\n        }\r\n    }\r\n\r\n    export class OverridePasswordCommand extends BaseCommand {\r\n        parentaStaffUserId: UUID;\r\n        newPassword: string;\r\n        constructor() {\r\n            super('ParentaStaffUser/OverridePasswordCommand');\r\n        }\r\n    }\r\n\r\n    export class ResetPasswordCommand extends BaseCommand {\r\n        token: string;\r\n        newPassword: string;\r\n        constructor() {\r\n            super('ParentaStaffUser/ResetPasswordCommand');\r\n        }\r\n    }\r\n\r\n    export class SendPasswordResetTokenCommand extends BaseCommand {\r\n        emailAddress: string;\r\n        constructor() {\r\n            super('ParentaStaffUser/SendPasswordResetTokenCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateProfileImageUrlCommand extends BaseCommand {\r\n        parentaStaffUserId: UUID;\r\n        profileImageUrl: string;\r\n        constructor() {\r\n            super('ParentaStaffUser/UpdateProfileImageUrlCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace DiaryCommand {\r\n\r\n    export class AddCustomDiaryEventToSeriesForBusinessCommand extends BaseCommand {\r\n        businessId: UUID;\r\n        customDiaryEventId: UUID;\r\n        customDiaryEventSeriesId: UUID;\r\n        constructor() {\r\n            super('Diary/AddCustomDiaryEventToSeriesForBusinessCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateCustomDiaryEventSeriesWithEndDateCommand extends BaseCommand {\r\n        subject: string;\r\n        notes: string;\r\n        diaryEventTypeId: UUID;\r\n        whenFrom: string | moment.Moment | Date;\r\n        whenTo: string | moment.Moment | Date;\r\n        rooms: string;\r\n        userIds: any; // IEnumerable`1;\r\n        whenToStartSeries: string | moment.Moment | Date;\r\n        whenToEndSeries: string | moment.Moment | Date;\r\n        recurrenceType: any; // RecurrenceType;\r\n        legacyRef: string;\r\n        constructor() {\r\n            super('Diary/CreateCustomDiaryEventSeriesWithEndDateCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateCustomDiaryEventSeriesWithFixedNumberCommand extends BaseCommand {\r\n        subject: string;\r\n        notes: string;\r\n        diaryEventTypeId: UUID;\r\n        whenFrom: string | moment.Moment | Date;\r\n        whenTo: string | moment.Moment | Date;\r\n        rooms: string;\r\n        userIds: any; // IEnumerable`1;\r\n        whenToStartSeries: string | moment.Moment | Date;\r\n        totalInSeries: number;\r\n        recurrenceType: any; // RecurrenceType;\r\n        legacyRef: string;\r\n        constructor() {\r\n            super('Diary/CreateCustomDiaryEventSeriesWithFixedNumberCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateCustomDiaryEventTypeCommand extends BaseCommand {\r\n        name: string;\r\n        constructor() {\r\n            super('Diary/CreateCustomDiaryEventTypeCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateDiaryEventTypeCommand extends BaseCommand {\r\n        diaryEventTypeId: UUID;\r\n        name: string;\r\n        constructor() {\r\n            super('Diary/CreateDiaryEventTypeCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateEmptyCustomDiaryEventSeriesWithEndDateForBusinessCommand extends BaseCommand {\r\n        businessId: UUID;\r\n        whenToStartSeries: string | moment.Moment | Date;\r\n        whenToEndSeries: string | moment.Moment | Date;\r\n        recurrenceType: any; // RecurrenceType;\r\n        legacyRef: string;\r\n        constructor() {\r\n            super('Diary/CreateEmptyCustomDiaryEventSeriesWithEndDateForBusinessCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateEmptyCustomDiaryEventSeriesWithFixedNumberForBusinessCommand extends BaseCommand {\r\n        whenToStartSeries: string | moment.Moment | Date;\r\n        totalInSeries: number;\r\n        recurrenceType: any; // RecurrenceType;\r\n        legacyRef: string;\r\n        businessId: UUID;\r\n        constructor() {\r\n            super('Diary/CreateEmptyCustomDiaryEventSeriesWithFixedNumberForBusinessCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateSingleCustomDiaryEventCommand extends BaseCommand {\r\n        subject: string;\r\n        notes: string;\r\n        diaryEventTypeId: UUID;\r\n        whenFrom: string | moment.Moment | Date;\r\n        whenTo: string | moment.Moment | Date;\r\n        rooms: string;\r\n        userIds: any; // IEnumerable`1;\r\n        legacyRef: string;\r\n        constructor() {\r\n            super('Diary/CreateSingleCustomDiaryEventCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateSingleCustomDiaryEventForBusinessCommand extends BaseCommand {\r\n        subject: string;\r\n        notes: string;\r\n        diaryEventTypeId: UUID;\r\n        whenFrom: string | moment.Moment | Date;\r\n        whenTo: string | moment.Moment | Date;\r\n        rooms: string;\r\n        userIds: any; // IEnumerable`1;\r\n        legacyRef: string;\r\n        businessId: UUID;\r\n        constructor() {\r\n            super('Diary/CreateSingleCustomDiaryEventForBusinessCommand');\r\n        }\r\n    }\r\n\r\n    export class DeleteCustomDiaryEventCommand extends BaseCommand {\r\n        customDiaryEventId: UUID;\r\n        constructor() {\r\n            super('Diary/DeleteCustomDiaryEventCommand');\r\n        }\r\n    }\r\n\r\n    export class DeleteCustomDiaryEventSeriesCommand extends BaseCommand {\r\n        customDiaryEventSeriesId: UUID;\r\n        constructor() {\r\n            super('Diary/DeleteCustomDiaryEventSeriesCommand');\r\n        }\r\n    }\r\n\r\n    export class DeleteCustomDiaryEventTypeCommand extends BaseCommand {\r\n        customDiaryEventTypeId: UUID;\r\n        constructor() {\r\n            super('Diary/DeleteCustomDiaryEventTypeCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateCustomDiaryEventSeriesWithEndDateCommand extends BaseCommand {\r\n        subject: string;\r\n        notes: string;\r\n        diaryEventTypeId: UUID;\r\n        whenFrom: string | moment.Moment | Date;\r\n        whenTo: string | moment.Moment | Date;\r\n        rooms: string;\r\n        userIds: any; // IEnumerable`1;\r\n        customDiaryEventSeriesId: UUID;\r\n        whenSeriesStarts: string | moment.Moment | Date;\r\n        whenSeriesEnds: string | moment.Moment | Date;\r\n        recurrenceType: any; // RecurrenceType;\r\n        constructor() {\r\n            super('Diary/UpdateCustomDiaryEventSeriesWithEndDateCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateCustomDiaryEventSeriesWithFixedNumberCommand extends BaseCommand {\r\n        subject: string;\r\n        notes: string;\r\n        diaryEventTypeId: UUID;\r\n        whenFrom: string | moment.Moment | Date;\r\n        whenTo: string | moment.Moment | Date;\r\n        rooms: string;\r\n        userIds: any; // IEnumerable`1;\r\n        customDiaryEventSeriesId: UUID;\r\n        whenSeriesStarts: string | moment.Moment | Date;\r\n        totalInSeries: number;\r\n        recurrenceType: any; // RecurrenceType;\r\n        constructor() {\r\n            super('Diary/UpdateCustomDiaryEventSeriesWithFixedNumberCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdatePartOfCustomDiaryEventSeriesWithEndDateCommand extends BaseCommand {\r\n        subject: string;\r\n        notes: string;\r\n        diaryEventTypeId: UUID;\r\n        whenFrom: string | moment.Moment | Date;\r\n        whenTo: string | moment.Moment | Date;\r\n        rooms: string;\r\n        userIds: any; // IEnumerable`1;\r\n        customDiaryEventSeriesId: UUID;\r\n        whenSeriesStarts: string | moment.Moment | Date;\r\n        whenSeriesEnds: string | moment.Moment | Date;\r\n        recurrenceType: any; // RecurrenceType;\r\n        constructor() {\r\n            super('Diary/UpdatePartOfCustomDiaryEventSeriesWithEndDateCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdatePartOfCustomDiaryEventSeriesWithFixedNumberCommand extends BaseCommand {\r\n        subject: string;\r\n        notes: string;\r\n        diaryEventTypeId: UUID;\r\n        whenFrom: string | moment.Moment | Date;\r\n        whenTo: string | moment.Moment | Date;\r\n        rooms: string;\r\n        userIds: any; // IEnumerable`1;\r\n        customDiaryEventSeriesId: UUID;\r\n        whenSeriesStarts: string | moment.Moment | Date;\r\n        totalInSeries: number;\r\n        recurrenceType: any; // RecurrenceType;\r\n        constructor() {\r\n            super('Diary/UpdatePartOfCustomDiaryEventSeriesWithFixedNumberCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateSingleCustomDiaryEventCommand extends BaseCommand {\r\n        subject: string;\r\n        notes: string;\r\n        diaryEventTypeId: UUID;\r\n        whenFrom: string | moment.Moment | Date;\r\n        whenTo: string | moment.Moment | Date;\r\n        rooms: string;\r\n        userIds: any; // IEnumerable`1;\r\n        customDiaryEventId: UUID;\r\n        constructor() {\r\n            super('Diary/UpdateSingleCustomDiaryEventCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace CorporationPreferenceCommand {\r\n\r\n    export class CreateCorporationPreferenceCommand extends BaseCommand {\r\n        corporationId: UUID;\r\n        systemPreference: any; // SystemPreference;\r\n        data: string;\r\n        constructor() {\r\n            super('CorporationPreference/CreateCorporationPreferenceCommand');\r\n        }\r\n    }\r\n\r\n    export class EditCorporationPreferenceCommand extends BaseCommand {\r\n        corporationId: UUID;\r\n        systemPreference: any; // SystemPreference;\r\n        data: string;\r\n        constructor() {\r\n            super('CorporationPreference/EditCorporationPreferenceCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace CorporationCommand {\r\n\r\n    export class AddExistingBusinessToCorporationCommand extends BaseCommand {\r\n        corporationId: UUID;\r\n        businessId: UUID;\r\n        constructor() {\r\n            super('Corporation/AddExistingBusinessToCorporationCommand');\r\n        }\r\n    }\r\n\r\n    export class AddExistingUserToCorporationCommand extends BaseCommand {\r\n        corporationId: UUID;\r\n        userId: UUID;\r\n        constructor() {\r\n            super('Corporation/AddExistingUserToCorporationCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateBusinessAgainstCorporationCommand extends BaseCommand {\r\n        corporationId: UUID;\r\n        name: string;\r\n        emailAddress: string;\r\n        addressIdentifier: string;\r\n        addressLine1: string;\r\n        addressLine2: string;\r\n        city: string;\r\n        postcode: string;\r\n        county: string;\r\n        region: string;\r\n        ownedParentaSystems: any; // ParentaSystem;\r\n        isActive: boolean;\r\n        legacyId: string;\r\n        officeType: any; // OfficeType;\r\n        constructor() {\r\n            super('Corporation/CreateBusinessAgainstCorporationCommand');\r\n        }\r\n    }\r\n\r\n    export class CreateCorporationCommand extends BaseCommand {\r\n        name: string;\r\n        constructor() {\r\n            super('Corporation/CreateCorporationCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateBasicDetailsCommand extends BaseCommand {\r\n        corporationId: UUID;\r\n        name: string;\r\n        constructor() {\r\n            super('Corporation/UpdateBasicDetailsCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace BusinessPreferenceCommand {\r\n\r\n    export class CreateBusinessPreferenceCommand extends BaseCommand {\r\n        systemPreference: any; // SystemPreference;\r\n        data: string;\r\n        constructor() {\r\n            super('BusinessPreference/CreateBusinessPreferenceCommand');\r\n        }\r\n    }\r\n\r\n    export class EditBusinessPreferenceCommand extends BaseCommand {\r\n        businessId: UUID;\r\n        systemPreference: any; // SystemPreference;\r\n        data: string;\r\n        constructor() {\r\n            super('BusinessPreference/EditBusinessPreferenceCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace BusinessCommand {\r\n\r\n    export class ActivateBusinessCommand extends BaseCommand {\r\n        businessId: UUID;\r\n        constructor() {\r\n            super('Business/ActivateBusinessCommand');\r\n        }\r\n    }\r\n\r\n    export class AddExternalUserToBusinessCommand extends BaseCommand {\r\n        userId: UUID;\r\n        businessId: UUID;\r\n        constructor() {\r\n            super('Business/AddExternalUserToBusinessCommand');\r\n        }\r\n    }\r\n\r\n    export class DeactivateBusinessCommand extends BaseCommand {\r\n        businessId: UUID;\r\n        constructor() {\r\n            super('Business/DeactivateBusinessCommand');\r\n        }\r\n    }\r\n\r\n    export class RemoveExternalUserFromBusinessCommand extends BaseCommand {\r\n        userId: UUID;\r\n        businessId: UUID;\r\n        constructor() {\r\n            super('Business/RemoveExternalUserFromBusinessCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateBusinessNameCommand extends BaseCommand {\r\n        businessId: UUID;\r\n        corporationId: UUID;\r\n        businessName: string;\r\n        constructor() {\r\n            super('Business/UpdateBusinessNameCommand');\r\n        }\r\n    }\r\n\r\n    export class UpdateOwnedBusinessCommand extends BaseCommand {\r\n        businessId: UUID;\r\n        ownedParentaSystems: any; // ParentaSystem;\r\n        constructor() {\r\n            super('Business/UpdateOwnedBusinessCommand');\r\n        }\r\n    }\r\n}\r\nexport namespace AuthCommand {\r\n\r\n    export class CheckPasswordCommand extends BaseCommand {\r\n        password: string;\r\n        constructor() {\r\n            super('Auth/CheckPasswordCommand');\r\n        }\r\n    }\r\n\r\n    export class CheckUserAuthCommand extends BaseCommand {\r\n        passwordPin: string;\r\n        constructor() {\r\n            super('Auth/CheckUserAuthCommand');\r\n        }\r\n    }\r\n\r\n    export class LoginParentaStaffUserCommand extends BaseCommand {\r\n        emailAddress: string;\r\n        password: string;\r\n        twoFactorCode: string;\r\n        constructor() {\r\n            super('Auth/LoginParentaStaffUserCommand');\r\n        }\r\n    }\r\n\r\n    export class RenewTokenCommand extends BaseCommand {\r\n        token: string;\r\n        constructor() {\r\n            super('Auth/RenewTokenCommand');\r\n        }\r\n    }\r\n}\r\n","\r\n                    import {Injectable, Inject} from '@angular/core';\r\n                    import { UUID } from 'angular2-uuid';\r\n                    import * as moment from 'moment';\r\n                    import {\r\n                        ViewedSystemTourCommand,\r\n                        UserPreferenceCommand,\r\n                        UserIntegrationCommand,\r\n                        UserCommand,\r\n                        SystemMessageCommand,\r\n                        RoleGroupCommand,\r\n                        PermissionCommand,\r\n                        ParentaStaffUserCommand,\r\n                        DiaryCommand,\r\n                        CorporationPreferenceCommand,\r\n                        CorporationCommand,\r\n                        BusinessPreferenceCommand,\r\n                        BusinessCommand,\r\n                        AuthCommand\r\n                    } from './entities/commands/commands';\r\n                \r\n                \r\n                    import { IExecutionResult } from './entities/commandresults/iexecution-result';\r\n                    import { SauronService } from './sauron.service';\r\n                \r\n                \r\n                    import {\r\n                        ViewedSystemTourCommandResult,\r\n                        UserPreferenceCommandResult,\r\n                        UserIntegrationCommandResult,\r\n                        UserCommandResult,\r\n                        SystemMessageCommandResult,\r\n                        RoleGroupCommandResult,\r\n                        PermissionCommandResult,\r\n                        ParentaStaffUserCommandResult,\r\n                        DiaryCommandResult,\r\n                        CorporationPreferenceCommandResult,\r\n                        CorporationCommandResult,\r\n                        BusinessPreferenceCommandResult,\r\n                        BusinessCommandResult,\r\n                        AuthCommandResult\r\n                    } from './entities/commandresults/command-results';\r\n\r\n                    import { Subject } from 'rxjs';\r\n\r\n                    export interface RequestInfo<TRequest, TResponse> {\r\n\t\t                request: TRequest;\r\n\t\t                response: TResponse;\r\n\t                }\r\n                \r\n                        export namespace ViewedSystemTour {\r\n                    \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ViewedSystemTourCommands {\r\n                    \r\n                            public onUserViewedWelcomeTour: Subject<IExecutionResult<ViewedSystemTourCommandResult.IUserViewedWelcomeTourCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async userViewedWelcomeTour(request : ViewedSystemTourCommand.UserViewedWelcomeTourCommand, overridenToken?: string): Promise<IExecutionResult<ViewedSystemTourCommandResult.IUserViewedWelcomeTourCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <ViewedSystemTourCommand.UserViewedWelcomeTourCommand, ViewedSystemTourCommandResult.IUserViewedWelcomeTourCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUserViewedWelcomeTour.next(response);\r\n                                return response;\r\n                             }\r\n                        } // End class\r\n                    \r\n                        export namespace UserPreference {\r\n                    \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class UserPreferenceCommands {\r\n                    \r\n                            public onCreateDashboardLayoutUserPreference: Subject<IExecutionResult<UserPreferenceCommandResult.ICreateDashboardLayoutUserPreferenceCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateDiarySettingsUserPreference: Subject<IExecutionResult<UserPreferenceCommandResult.ICreateDiarySettingsUserPreferenceCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateDashboardLayoutUserPreference: Subject<IExecutionResult<UserPreferenceCommandResult.IUpdateDashboardLayoutUserPreferenceCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateDiarySettingsUserPreference: Subject<IExecutionResult<UserPreferenceCommandResult.IUpdateDiarySettingsUserPreferenceCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async createDashboardLayoutUserPreference(request : UserPreferenceCommand.CreateDashboardLayoutUserPreferenceCommand, overridenToken?: string): Promise<IExecutionResult<UserPreferenceCommandResult.ICreateDashboardLayoutUserPreferenceCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <UserPreferenceCommand.CreateDashboardLayoutUserPreferenceCommand, UserPreferenceCommandResult.ICreateDashboardLayoutUserPreferenceCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateDashboardLayoutUserPreference.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createDiarySettingsUserPreference(request : UserPreferenceCommand.CreateDiarySettingsUserPreferenceCommand, overridenToken?: string): Promise<IExecutionResult<UserPreferenceCommandResult.ICreateDiarySettingsUserPreferenceCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <UserPreferenceCommand.CreateDiarySettingsUserPreferenceCommand, UserPreferenceCommandResult.ICreateDiarySettingsUserPreferenceCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateDiarySettingsUserPreference.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateDashboardLayoutUserPreference(request : UserPreferenceCommand.UpdateDashboardLayoutUserPreferenceCommand, overridenToken?: string): Promise<IExecutionResult<UserPreferenceCommandResult.IUpdateDashboardLayoutUserPreferenceCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <UserPreferenceCommand.UpdateDashboardLayoutUserPreferenceCommand, UserPreferenceCommandResult.IUpdateDashboardLayoutUserPreferenceCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateDashboardLayoutUserPreference.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateDiarySettingsUserPreference(request : UserPreferenceCommand.UpdateDiarySettingsUserPreferenceCommand, overridenToken?: string): Promise<IExecutionResult<UserPreferenceCommandResult.IUpdateDiarySettingsUserPreferenceCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <UserPreferenceCommand.UpdateDiarySettingsUserPreferenceCommand, UserPreferenceCommandResult.IUpdateDiarySettingsUserPreferenceCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateDiarySettingsUserPreference.next(response);\r\n                                return response;\r\n                             }\r\n                        } // End class\r\n                    \r\n                        export namespace UserIntegration {\r\n                    \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class UserIntegrationCommands {\r\n                    \r\n                            public onCreateCalendarEndpoint: Subject<IExecutionResult<UserIntegrationCommandResult.ICreateCalendarEndpointCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async createCalendarEndpoint(request : UserIntegrationCommand.CreateCalendarEndpointCommand, overridenToken?: string): Promise<IExecutionResult<UserIntegrationCommandResult.ICreateCalendarEndpointCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <UserIntegrationCommand.CreateCalendarEndpointCommand, UserIntegrationCommandResult.ICreateCalendarEndpointCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateCalendarEndpoint.next(response);\r\n                                return response;\r\n                             }\r\n                        } // End class\r\n                    \r\n                        export namespace User {\r\n                    \r\n                            export enum CreateBasicUserError {\r\n                                businessNotFound = 'businessNotFound',\r\n                                roleGroupNotFound = 'roleGroupNotFound',\r\n                                legacyUserIdNotFound = 'legacyUserIdNotFound'\r\n                            }\r\n                        \r\n                                export interface ICreateBasicUserRequest {\r\n                                    businessId: UUID,\r\n firstName: string,\r\n lastName: string,\r\n legacyId: number,\r\n emailAddress: string,\r\n roleGroupId: UUID\r\n                                }\r\n                            \r\n                                export interface ICreateBasicUserResult {\r\n                                    userId: UUID,\r\n successful: boolean,\r\n errors: CreateBasicUserError[]\r\n                                }\r\n                            \r\n                                export interface IMarkSystemAlertAsClosedRequest {\r\n                                    userSystemAlertId: UUID\r\n                                }\r\n                            \r\n                                export interface IMarkSystemAlertAsClosedResult {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IMarkSystemAlertAsSeenRequest {\r\n                                    userSystemAlertId: UUID\r\n                                }\r\n                            \r\n                                export interface IMarkSystemAlertAsSeenResult {\r\n                                    \r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class UserCommands {\r\n                    \r\n                            public onCreateNotificationForUser: Subject<IExecutionResult<UserCommandResult.ICreateNotificationForUserCommandResult>> = new Subject();\r\n                        \r\n                            public onMarkAllNotificationsForUserAsRead: Subject<IExecutionResult<UserCommandResult.IMarkAllNotificationsForUserAsReadCommandResult>> = new Subject();\r\n                        \r\n                            public onMarkNotificationAsRead: Subject<IExecutionResult<UserCommandResult.IMarkNotificationAsReadCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateLegacyId: Subject<IExecutionResult<UserCommandResult.IUpdateLegacyIdCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateRoleGroupForUser: Subject<IExecutionResult<UserCommandResult.IUpdateRoleGroupForUserCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateBasicUser: Subject<RequestInfo<User.ICreateBasicUserRequest, User.ICreateBasicUserResult>> = new Subject();\r\n                        \r\n                            public onMarkSystemAlertAsClosed: Subject<RequestInfo<User.IMarkSystemAlertAsClosedRequest, User.IMarkSystemAlertAsClosedResult>> = new Subject();\r\n                        \r\n                            public onMarkSystemAlertAsSeen: Subject<RequestInfo<User.IMarkSystemAlertAsSeenRequest, User.IMarkSystemAlertAsSeenResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async createNotificationForUser(request : UserCommand.CreateNotificationForUserCommand, overridenToken?: string): Promise<IExecutionResult<UserCommandResult.ICreateNotificationForUserCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <UserCommand.CreateNotificationForUserCommand, UserCommandResult.ICreateNotificationForUserCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateNotificationForUser.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async markAllNotificationsForUserAsRead(request : UserCommand.MarkAllNotificationsForUserAsReadCommand, overridenToken?: string): Promise<IExecutionResult<UserCommandResult.IMarkAllNotificationsForUserAsReadCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <UserCommand.MarkAllNotificationsForUserAsReadCommand, UserCommandResult.IMarkAllNotificationsForUserAsReadCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onMarkAllNotificationsForUserAsRead.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async markNotificationAsRead(request : UserCommand.MarkNotificationAsReadCommand, overridenToken?: string): Promise<IExecutionResult<UserCommandResult.IMarkNotificationAsReadCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <UserCommand.MarkNotificationAsReadCommand, UserCommandResult.IMarkNotificationAsReadCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onMarkNotificationAsRead.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateLegacyId(request : UserCommand.UpdateLegacyIdCommand, overridenToken?: string): Promise<IExecutionResult<UserCommandResult.IUpdateLegacyIdCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <UserCommand.UpdateLegacyIdCommand, UserCommandResult.IUpdateLegacyIdCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateLegacyId.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateRoleGroupForUser(request : UserCommand.UpdateRoleGroupForUserCommand, overridenToken?: string): Promise<IExecutionResult<UserCommandResult.IUpdateRoleGroupForUserCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <UserCommand.UpdateRoleGroupForUserCommand, UserCommandResult.IUpdateRoleGroupForUserCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateRoleGroupForUser.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                                 public async createBasicUser(request : User.ICreateBasicUserRequest, overridenToken?: string): Promise<User.ICreateBasicUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<User.ICreateBasicUserRequest, User.ICreateBasicUserResult>(request, 'User', 'CreateBasicUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateBasicUser.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async markSystemAlertAsClosed(request : User.IMarkSystemAlertAsClosedRequest, overridenToken?: string): Promise<User.IMarkSystemAlertAsClosedResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<User.IMarkSystemAlertAsClosedRequest, User.IMarkSystemAlertAsClosedResult>(request, 'User', 'MarkSystemAlertAsClosed', overridenToken);\r\n                                        \r\n                                            this.onMarkSystemAlertAsClosed.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async markSystemAlertAsSeen(request : User.IMarkSystemAlertAsSeenRequest, overridenToken?: string): Promise<User.IMarkSystemAlertAsSeenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<User.IMarkSystemAlertAsSeenRequest, User.IMarkSystemAlertAsSeenResult>(request, 'User', 'MarkSystemAlertAsSeen', overridenToken);\r\n                                        \r\n                                            this.onMarkSystemAlertAsSeen.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace Tokens {\r\n                    \r\n                            export enum CreateTokenFromEmailAddressError {\r\n                                emailAddressDoesNotExist = 'emailAddressDoesNotExist',\r\n                                emailAddressIsRequired = 'emailAddressIsRequired',\r\n                                emailAddressIsNotUnique = 'emailAddressIsNotUnique'\r\n                            }\r\n                        \r\n                                export interface ICreateTokenFromEmailAddressRequest {\r\n                                    emailAddress: string\r\n                                }\r\n                            \r\n                                export interface ICreateTokenFromEmailAddressResult {\r\n                                    successful: boolean,\r\n errors: CreateTokenFromEmailAddressError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class TokensCommands {\r\n                    \r\n                            public onCreateTokenFromEmailAddress: Subject<RequestInfo<Tokens.ICreateTokenFromEmailAddressRequest, Tokens.ICreateTokenFromEmailAddressResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createTokenFromEmailAddress(request : Tokens.ICreateTokenFromEmailAddressRequest, overridenToken?: string): Promise<Tokens.ICreateTokenFromEmailAddressResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Tokens.ICreateTokenFromEmailAddressRequest, Tokens.ICreateTokenFromEmailAddressResult>(request, 'Tokens', 'CreateTokenFromEmailAddress', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateTokenFromEmailAddress.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace TempAuth {\r\n                    \r\n                            export enum ValidatePortalTempAuthTokenError {\r\n                                invalidToken = 'invalidToken',\r\n                                invalidTokenDeleted = 'invalidTokenDeleted',\r\n                                invalidTokenNoUser = 'invalidTokenNoUser',\r\n                                invalidTokenExpired = 'invalidTokenExpired',\r\n                                userNotFound = 'userNotFound',\r\n                                footsteps2NotActivated = 'footsteps2NotActivated'\r\n                            }\r\n                        \r\n                                export interface IGetParentPortalCarerTemporaryAuthTokenResult {\r\n                                    token: UUID\r\n                                }\r\n                            \r\n                                export interface IGetParentPortalTemporaryAuthTokenRequest {\r\n                                    nurseryId: number,\r\n carerId: number\r\n                                }\r\n                            \r\n                                export interface IGetParentPortalTemporaryAuthTokenResult {\r\n                                    token: UUID\r\n                                }\r\n                            \r\n                                export interface IGetPortalTemporaryAuthTokenRequest {\r\n                                    nurseryId: number,\r\n legacyUserId: number\r\n                                }\r\n                            \r\n                                export interface IGetPortalTemporaryAuthTokenResult {\r\n                                    token: UUID\r\n                                }\r\n                            \r\n                                export interface IGetPortalUserTemporaryTokenRequest {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IGetPortalUserTemporaryTokenResult {\r\n                                    tempAuthToken: UUID\r\n                                }\r\n                            \r\n                                export interface IValidateParentPortalTempAuthTokenRequest {\r\n                                    token: UUID\r\n                                }\r\n                            \r\n                                export interface IValidateParentPortalTempAuthTokenResult {\r\n                                    successful: boolean,\r\n userId: UUID,\r\n legacyId: string,\r\n businessId: UUID,\r\n businessLegacyId: number,\r\n fullName: string,\r\n token: string,\r\n parentMessagingEnabled: boolean,\r\n footsteps2Standalone: boolean\r\n                                }\r\n                            \r\n                                export interface IValidatePortalTempAuthTokenRequest {\r\n                                    token: UUID\r\n                                }\r\n                            \r\n                                export interface IValidatePortalTempAuthTokenResult {\r\n                                    successful: boolean,\r\n errors: ValidatePortalTempAuthTokenError[],\r\n token: string,\r\n tokenExpiry: string | moment.Moment | Date | null,\r\n nurseryLegacyId: string,\r\n nurseryName: string,\r\n nurseryId: UUID,\r\n staffId: UUID,\r\n email: string,\r\n uniqueId: string,\r\n staffLegacyId: string,\r\n username: string,\r\n authDescription: string,\r\n hasAccessToDayshare: boolean,\r\n hasAccessToFootsteps2: boolean,\r\n hasAccessToAbacus: boolean,\r\n nurseryHasDayShare: boolean,\r\n nurseryHasFootsteps2: boolean,\r\n isFootsteps2Standalone: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class TempAuthCommands {\r\n                    \r\n                            public onGetParentPortalCarerTemporaryAuthToken: Subject<TempAuth.IGetParentPortalCarerTemporaryAuthTokenResult> = new Subject();\r\n                        \r\n                            public onGetParentPortalTemporaryAuthToken: Subject<RequestInfo<TempAuth.IGetParentPortalTemporaryAuthTokenRequest, TempAuth.IGetParentPortalTemporaryAuthTokenResult>> = new Subject();\r\n                        \r\n                            public onGetPortalTemporaryAuthToken: Subject<RequestInfo<TempAuth.IGetPortalTemporaryAuthTokenRequest, TempAuth.IGetPortalTemporaryAuthTokenResult>> = new Subject();\r\n                        \r\n                            public onGetPortalUserTemporaryToken: Subject<RequestInfo<TempAuth.IGetPortalUserTemporaryTokenRequest, TempAuth.IGetPortalUserTemporaryTokenResult>> = new Subject();\r\n                        \r\n                            public onValidateParentPortalTempAuthToken: Subject<RequestInfo<TempAuth.IValidateParentPortalTempAuthTokenRequest, TempAuth.IValidateParentPortalTempAuthTokenResult>> = new Subject();\r\n                        \r\n                            public onValidatePortalTempAuthToken: Subject<RequestInfo<TempAuth.IValidatePortalTempAuthTokenRequest, TempAuth.IValidatePortalTempAuthTokenResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getParentPortalCarerTemporaryAuthToken(overridenToken?: string): Promise<TempAuth.IGetParentPortalCarerTemporaryAuthTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},TempAuth.IGetParentPortalCarerTemporaryAuthTokenResult>({}, 'TempAuth', 'GetParentPortalCarerTemporaryAuthToken', overridenToken);\r\n                                        \r\n                                            this.onGetParentPortalCarerTemporaryAuthToken.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getParentPortalTemporaryAuthToken(request : TempAuth.IGetParentPortalTemporaryAuthTokenRequest, overridenToken?: string): Promise<TempAuth.IGetParentPortalTemporaryAuthTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<TempAuth.IGetParentPortalTemporaryAuthTokenRequest, TempAuth.IGetParentPortalTemporaryAuthTokenResult>(request, 'TempAuth', 'GetParentPortalTemporaryAuthToken', overridenToken);\r\n                                        \r\n                                            this.onGetParentPortalTemporaryAuthToken.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getPortalTemporaryAuthToken(request : TempAuth.IGetPortalTemporaryAuthTokenRequest, overridenToken?: string): Promise<TempAuth.IGetPortalTemporaryAuthTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<TempAuth.IGetPortalTemporaryAuthTokenRequest, TempAuth.IGetPortalTemporaryAuthTokenResult>(request, 'TempAuth', 'GetPortalTemporaryAuthToken', overridenToken);\r\n                                        \r\n                                            this.onGetPortalTemporaryAuthToken.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getPortalUserTemporaryToken(request : TempAuth.IGetPortalUserTemporaryTokenRequest, overridenToken?: string): Promise<TempAuth.IGetPortalUserTemporaryTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<TempAuth.IGetPortalUserTemporaryTokenRequest, TempAuth.IGetPortalUserTemporaryTokenResult>(request, 'TempAuth', 'GetPortalUserTemporaryToken', overridenToken);\r\n                                        \r\n                                            this.onGetPortalUserTemporaryToken.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async validateParentPortalTempAuthToken(request : TempAuth.IValidateParentPortalTempAuthTokenRequest, overridenToken?: string): Promise<TempAuth.IValidateParentPortalTempAuthTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<TempAuth.IValidateParentPortalTempAuthTokenRequest, TempAuth.IValidateParentPortalTempAuthTokenResult>(request, 'TempAuth', 'ValidateParentPortalTempAuthToken', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onValidateParentPortalTempAuthToken.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async validatePortalTempAuthToken(request : TempAuth.IValidatePortalTempAuthTokenRequest, overridenToken?: string): Promise<TempAuth.IValidatePortalTempAuthTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<TempAuth.IValidatePortalTempAuthTokenRequest, TempAuth.IValidatePortalTempAuthTokenResult>(request, 'TempAuth', 'ValidatePortalTempAuthToken', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onValidatePortalTempAuthToken.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace SystemMessage {\r\n                    \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class SystemMessageCommands {\r\n                    \r\n                            public onCreateGlobalSystemMessage: Subject<IExecutionResult<SystemMessageCommandResult.ICreateGlobalSystemMessageCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateMultiBusinessSystemMessage: Subject<IExecutionResult<SystemMessageCommandResult.ICreateMultiBusinessSystemMessageCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateSingleBusinessSystemMessage: Subject<IExecutionResult<SystemMessageCommandResult.ICreateSingleBusinessSystemMessageCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateSingleUserSystemMessage: Subject<IExecutionResult<SystemMessageCommandResult.ICreateSingleUserSystemMessageCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async createGlobalSystemMessage(request : SystemMessageCommand.CreateGlobalSystemMessageCommand, overridenToken?: string): Promise<IExecutionResult<SystemMessageCommandResult.ICreateGlobalSystemMessageCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <SystemMessageCommand.CreateGlobalSystemMessageCommand, SystemMessageCommandResult.ICreateGlobalSystemMessageCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateGlobalSystemMessage.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createMultiBusinessSystemMessage(request : SystemMessageCommand.CreateMultiBusinessSystemMessageCommand, overridenToken?: string): Promise<IExecutionResult<SystemMessageCommandResult.ICreateMultiBusinessSystemMessageCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <SystemMessageCommand.CreateMultiBusinessSystemMessageCommand, SystemMessageCommandResult.ICreateMultiBusinessSystemMessageCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateMultiBusinessSystemMessage.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createSingleBusinessSystemMessage(request : SystemMessageCommand.CreateSingleBusinessSystemMessageCommand, overridenToken?: string): Promise<IExecutionResult<SystemMessageCommandResult.ICreateSingleBusinessSystemMessageCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <SystemMessageCommand.CreateSingleBusinessSystemMessageCommand, SystemMessageCommandResult.ICreateSingleBusinessSystemMessageCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateSingleBusinessSystemMessage.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createSingleUserSystemMessage(request : SystemMessageCommand.CreateSingleUserSystemMessageCommand, overridenToken?: string): Promise<IExecutionResult<SystemMessageCommandResult.ICreateSingleUserSystemMessageCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <SystemMessageCommand.CreateSingleUserSystemMessageCommand, SystemMessageCommandResult.ICreateSingleUserSystemMessageCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateSingleUserSystemMessage.next(response);\r\n                                return response;\r\n                             }\r\n                        } // End class\r\n                    \r\n                        export namespace SystemAlert {\r\n                    \r\n                                export interface ICreateGlobalSystemAlertRequest {\r\n                                    subject: string,\r\n message: string,\r\n colourType: ColourType,\r\n isClosable: boolean,\r\n id: UUID\r\n                                }\r\n                            \r\n                                export interface ICreateGlobalSystemAlertResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                                export interface ICreateMultiBusinessSystemAlertRequest {\r\n                                    subject: string,\r\n message: string,\r\n colourType: ColourType,\r\n isClosable: boolean,\r\n businessIds: any; // System.Collections.Generic.ICollection`1[System.Guid]\r\n                                }\r\n                            \r\n                                export interface ICreateMultiBusinessSystemAlertResult {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface ICreateSingleBusinessSystemAlertRequest {\r\n                                    message: string,\r\n subject: string,\r\n colourType: ColourType,\r\n isClosable: boolean,\r\n businessId: UUID\r\n                                }\r\n                            \r\n                                export interface ICreateSingleBusinessSystemAlertResult {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface ICreateSingleUserSystemAlertRequest {\r\n                                    id: UUID,\r\n message: string,\r\n subject: string,\r\n colourType: ColourType,\r\n isClosable: boolean,\r\n userId: UUID\r\n                                }\r\n                            \r\n                                export interface ICreateSingleUserSystemAlertResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                                export interface IRemoveSystemAlertRequest {\r\n                                    systemAlertId: UUID\r\n                                }\r\n                            \r\n                                export interface IRemoveSystemAlertResult {\r\n                                    \r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class SystemAlertCommands {\r\n                    \r\n                            public onCreateGlobalSystemAlert: Subject<RequestInfo<SystemAlert.ICreateGlobalSystemAlertRequest, SystemAlert.ICreateGlobalSystemAlertResult>> = new Subject();\r\n                        \r\n                            public onCreateMultiBusinessSystemAlert: Subject<RequestInfo<SystemAlert.ICreateMultiBusinessSystemAlertRequest, SystemAlert.ICreateMultiBusinessSystemAlertResult>> = new Subject();\r\n                        \r\n                            public onCreateSingleBusinessSystemAlert: Subject<RequestInfo<SystemAlert.ICreateSingleBusinessSystemAlertRequest, SystemAlert.ICreateSingleBusinessSystemAlertResult>> = new Subject();\r\n                        \r\n                            public onCreateSingleUserSystemAlert: Subject<RequestInfo<SystemAlert.ICreateSingleUserSystemAlertRequest, SystemAlert.ICreateSingleUserSystemAlertResult>> = new Subject();\r\n                        \r\n                            public onRemoveSystemAlert: Subject<RequestInfo<SystemAlert.IRemoveSystemAlertRequest, SystemAlert.IRemoveSystemAlertResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createGlobalSystemAlert(request : SystemAlert.ICreateGlobalSystemAlertRequest, overridenToken?: string): Promise<SystemAlert.ICreateGlobalSystemAlertResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<SystemAlert.ICreateGlobalSystemAlertRequest, SystemAlert.ICreateGlobalSystemAlertResult>(request, 'SystemAlert', 'CreateGlobalSystemAlert', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateGlobalSystemAlert.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createMultiBusinessSystemAlert(request : SystemAlert.ICreateMultiBusinessSystemAlertRequest, overridenToken?: string): Promise<SystemAlert.ICreateMultiBusinessSystemAlertResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<SystemAlert.ICreateMultiBusinessSystemAlertRequest, SystemAlert.ICreateMultiBusinessSystemAlertResult>(request, 'SystemAlert', 'CreateMultiBusinessSystemAlert', overridenToken);\r\n                                        \r\n                                            this.onCreateMultiBusinessSystemAlert.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createSingleBusinessSystemAlert(request : SystemAlert.ICreateSingleBusinessSystemAlertRequest, overridenToken?: string): Promise<SystemAlert.ICreateSingleBusinessSystemAlertResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<SystemAlert.ICreateSingleBusinessSystemAlertRequest, SystemAlert.ICreateSingleBusinessSystemAlertResult>(request, 'SystemAlert', 'CreateSingleBusinessSystemAlert', overridenToken);\r\n                                        \r\n                                            this.onCreateSingleBusinessSystemAlert.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createSingleUserSystemAlert(request : SystemAlert.ICreateSingleUserSystemAlertRequest, overridenToken?: string): Promise<SystemAlert.ICreateSingleUserSystemAlertResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<SystemAlert.ICreateSingleUserSystemAlertRequest, SystemAlert.ICreateSingleUserSystemAlertResult>(request, 'SystemAlert', 'CreateSingleUserSystemAlert', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateSingleUserSystemAlert.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async removeSystemAlert(request : SystemAlert.IRemoveSystemAlertRequest, overridenToken?: string): Promise<SystemAlert.IRemoveSystemAlertResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<SystemAlert.IRemoveSystemAlertRequest, SystemAlert.IRemoveSystemAlertResult>(request, 'SystemAlert', 'RemoveSystemAlert', overridenToken);\r\n                                        \r\n                                            this.onRemoveSystemAlert.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace RoleGroupPermission {\r\n                    \r\n                                export interface ISetRoleGroupPermissionRequest {\r\n                                    roleGroupId: UUID,\r\n permissionId: UUID,\r\n value: number\r\n                                }\r\n                            \r\n                                export interface ISetRoleGroupPermissionResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class RoleGroupPermissionCommands {\r\n                    \r\n                            public onSetRoleGroupPermission: Subject<RequestInfo<RoleGroupPermission.ISetRoleGroupPermissionRequest, RoleGroupPermission.ISetRoleGroupPermissionResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async setRoleGroupPermission(request : RoleGroupPermission.ISetRoleGroupPermissionRequest, overridenToken?: string): Promise<RoleGroupPermission.ISetRoleGroupPermissionResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<RoleGroupPermission.ISetRoleGroupPermissionRequest, RoleGroupPermission.ISetRoleGroupPermissionResult>(request, 'RoleGroupPermission', 'SetRoleGroupPermission', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSetRoleGroupPermission.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace RoleGroup {\r\n                    \r\n                                export interface IGetRoleGroupsForCorporationRequest {\r\n                                    corporationId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetRoleGroupsForCorporationResult {\r\n                                    roleGroups: IGetRoleGroupsForCorporationCommandResultRoleGroupDataRow[]\r\n                                }\r\n                            \r\n                                export interface IGetRoleGroupsForCorporationCommandResultRoleGroupDataRow {\r\n                                    id: UUID,\r\n name: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class RoleGroupCommands {\r\n                    \r\n                            public onCreateRoleGroup: Subject<IExecutionResult<RoleGroupCommandResult.ICreateRoleGroupCommandResult>> = new Subject();\r\n                        \r\n                            public onDeleteRoleGroup: Subject<IExecutionResult<RoleGroupCommandResult.IDeleteRoleGroupCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateRoleGroup: Subject<IExecutionResult<RoleGroupCommandResult.IUpdateRoleGroupCommandResult>> = new Subject();\r\n                        \r\n                            public onGetRoleGroupsForCorporation: Subject<RequestInfo<RoleGroup.IGetRoleGroupsForCorporationRequest, RoleGroup.IGetRoleGroupsForCorporationResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async createRoleGroup(request : RoleGroupCommand.CreateRoleGroupCommand, overridenToken?: string): Promise<IExecutionResult<RoleGroupCommandResult.ICreateRoleGroupCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <RoleGroupCommand.CreateRoleGroupCommand, RoleGroupCommandResult.ICreateRoleGroupCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateRoleGroup.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async deleteRoleGroup(request : RoleGroupCommand.DeleteRoleGroupCommand, overridenToken?: string): Promise<IExecutionResult<RoleGroupCommandResult.IDeleteRoleGroupCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <RoleGroupCommand.DeleteRoleGroupCommand, RoleGroupCommandResult.IDeleteRoleGroupCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onDeleteRoleGroup.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateRoleGroup(request : RoleGroupCommand.UpdateRoleGroupCommand, overridenToken?: string): Promise<IExecutionResult<RoleGroupCommandResult.IUpdateRoleGroupCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <RoleGroupCommand.UpdateRoleGroupCommand, RoleGroupCommandResult.IUpdateRoleGroupCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateRoleGroup.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                                 public async getRoleGroupsForCorporation(request : RoleGroup.IGetRoleGroupsForCorporationRequest, overridenToken?: string): Promise<RoleGroup.IGetRoleGroupsForCorporationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<RoleGroup.IGetRoleGroupsForCorporationRequest, RoleGroup.IGetRoleGroupsForCorporationResult>(request, 'RoleGroup', 'GetRoleGroupsForCorporation', overridenToken);\r\n                                        \r\n                                            this.onGetRoleGroupsForCorporation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace Permission {\r\n                    \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class PermissionCommands {\r\n                    \r\n                            public onCreatePermission: Subject<IExecutionResult<PermissionCommandResult.ICreatePermissionCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async createPermission(request : PermissionCommand.CreatePermissionCommand, overridenToken?: string): Promise<IExecutionResult<PermissionCommandResult.ICreatePermissionCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <PermissionCommand.CreatePermissionCommand, PermissionCommandResult.ICreatePermissionCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreatePermission.next(response);\r\n                                return response;\r\n                             }\r\n                        } // End class\r\n                    \r\n                        export namespace ParentaStaffUser {\r\n                    \r\n                                export interface IResetCurrentParentaStaffUserTwoFactorResult {\r\n                                    secret: string\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentaStaffUserCommands {\r\n                    \r\n                            public onChangeBasicDetails: Subject<IExecutionResult<ParentaStaffUserCommandResult.IChangeBasicDetailsCommandResult>> = new Subject();\r\n                        \r\n                            public onChangeEmail: Subject<IExecutionResult<ParentaStaffUserCommandResult.IChangeEmailCommandResult>> = new Subject();\r\n                        \r\n                            public onChangePassword: Subject<IExecutionResult<ParentaStaffUserCommandResult.IChangePasswordCommandResult>> = new Subject();\r\n                        \r\n                            public onOverrideBasicDetails: Subject<IExecutionResult<ParentaStaffUserCommandResult.IOverrideBasicDetailsCommandResult>> = new Subject();\r\n                        \r\n                            public onOverrideEmailAddress: Subject<IExecutionResult<ParentaStaffUserCommandResult.IOverrideEmailAddressCommandResult>> = new Subject();\r\n                        \r\n                            public onOverridePassword: Subject<IExecutionResult<ParentaStaffUserCommandResult.IOverridePasswordCommandResult>> = new Subject();\r\n                        \r\n                            public onResetPassword: Subject<IExecutionResult<ParentaStaffUserCommandResult.IResetPasswordCommandResult>> = new Subject();\r\n                        \r\n                            public onSendPasswordResetToken: Subject<IExecutionResult<ParentaStaffUserCommandResult.ISendPasswordResetTokenCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateProfileImageUrl: Subject<IExecutionResult<ParentaStaffUserCommandResult.IUpdateProfileImageUrlCommandResult>> = new Subject();\r\n                        \r\n                            public onResetCurrentParentaStaffUserTwoFactor: Subject<ParentaStaffUser.IResetCurrentParentaStaffUserTwoFactorResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async changeBasicDetails(request : ParentaStaffUserCommand.ChangeBasicDetailsCommand, overridenToken?: string): Promise<IExecutionResult<ParentaStaffUserCommandResult.IChangeBasicDetailsCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <ParentaStaffUserCommand.ChangeBasicDetailsCommand, ParentaStaffUserCommandResult.IChangeBasicDetailsCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onChangeBasicDetails.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async changeEmail(request : ParentaStaffUserCommand.ChangeEmailCommand, overridenToken?: string): Promise<IExecutionResult<ParentaStaffUserCommandResult.IChangeEmailCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <ParentaStaffUserCommand.ChangeEmailCommand, ParentaStaffUserCommandResult.IChangeEmailCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onChangeEmail.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async changePassword(request : ParentaStaffUserCommand.ChangePasswordCommand, overridenToken?: string): Promise<IExecutionResult<ParentaStaffUserCommandResult.IChangePasswordCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <ParentaStaffUserCommand.ChangePasswordCommand, ParentaStaffUserCommandResult.IChangePasswordCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onChangePassword.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async overrideBasicDetails(request : ParentaStaffUserCommand.OverrideBasicDetailsCommand, overridenToken?: string): Promise<IExecutionResult<ParentaStaffUserCommandResult.IOverrideBasicDetailsCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <ParentaStaffUserCommand.OverrideBasicDetailsCommand, ParentaStaffUserCommandResult.IOverrideBasicDetailsCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onOverrideBasicDetails.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async overrideEmailAddress(request : ParentaStaffUserCommand.OverrideEmailAddressCommand, overridenToken?: string): Promise<IExecutionResult<ParentaStaffUserCommandResult.IOverrideEmailAddressCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <ParentaStaffUserCommand.OverrideEmailAddressCommand, ParentaStaffUserCommandResult.IOverrideEmailAddressCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onOverrideEmailAddress.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async overridePassword(request : ParentaStaffUserCommand.OverridePasswordCommand, overridenToken?: string): Promise<IExecutionResult<ParentaStaffUserCommandResult.IOverridePasswordCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <ParentaStaffUserCommand.OverridePasswordCommand, ParentaStaffUserCommandResult.IOverridePasswordCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onOverridePassword.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async resetPassword(request : ParentaStaffUserCommand.ResetPasswordCommand, overridenToken?: string): Promise<IExecutionResult<ParentaStaffUserCommandResult.IResetPasswordCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <ParentaStaffUserCommand.ResetPasswordCommand, ParentaStaffUserCommandResult.IResetPasswordCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onResetPassword.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async sendPasswordResetToken(request : ParentaStaffUserCommand.SendPasswordResetTokenCommand, overridenToken?: string): Promise<IExecutionResult<ParentaStaffUserCommandResult.ISendPasswordResetTokenCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <ParentaStaffUserCommand.SendPasswordResetTokenCommand, ParentaStaffUserCommandResult.ISendPasswordResetTokenCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onSendPasswordResetToken.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateProfileImageUrl(request : ParentaStaffUserCommand.UpdateProfileImageUrlCommand, overridenToken?: string): Promise<IExecutionResult<ParentaStaffUserCommandResult.IUpdateProfileImageUrlCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <ParentaStaffUserCommand.UpdateProfileImageUrlCommand, ParentaStaffUserCommandResult.IUpdateProfileImageUrlCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateProfileImageUrl.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                                    public async resetCurrentParentaStaffUserTwoFactor(overridenToken?: string): Promise<ParentaStaffUser.IResetCurrentParentaStaffUserTwoFactorResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},ParentaStaffUser.IResetCurrentParentaStaffUserTwoFactorResult>({}, 'ParentaStaffUser', 'ResetCurrentParentaStaffUserTwoFactor', overridenToken);\r\n                                        \r\n                                            this.onResetCurrentParentaStaffUserTwoFactor.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace NUser {\r\n                    \r\n                            export enum ChangeLegacyNUserPasswordError {\r\n                                abacusUserNotFound = 'abacusUserNotFound',\r\n                                invalidPassword = 'invalidPassword',\r\n                                nurseryNotFound = 'nurseryNotFound'\r\n                            }\r\n                        \r\n                            export enum CreateNUserError {\r\n                                invalidNursery = 'invalidNursery',\r\n                                invalidEmail = 'invalidEmail',\r\n                                invalidPassword = 'invalidPassword',\r\n                                invalidFirstName = 'invalidFirstName',\r\n                                invalidLastName = 'invalidLastName',\r\n                                emailInUse = 'emailInUse',\r\n                                duplicateUser = 'duplicateUser',\r\n                                usernameInvalid = 'usernameInvalid',\r\n                                usernameInUse = 'usernameInUse'\r\n                            }\r\n                        \r\n                            export enum CreateNUserForCurrentNurseryError {\r\n                                invalidNursery = 'invalidNursery',\r\n                                invalidEmail = 'invalidEmail',\r\n                                invalidPassword = 'invalidPassword',\r\n                                invalidFirstName = 'invalidFirstName',\r\n                                invalidLastName = 'invalidLastName',\r\n                                emailInUse = 'emailInUse',\r\n                                duplicateUser = 'duplicateUser',\r\n                                usernameInvalid = 'usernameInvalid',\r\n                                usernameInUse = 'usernameInUse'\r\n                            }\r\n                        \r\n                            export enum DeleteNUserError {\r\n                                invalidBabytechUser = 'invalidBabytechUser',\r\n                                invalidParentaServicesUser = 'invalidParentaServicesUser',\r\n                                duplicateMirkwoodUser = 'duplicateMirkwoodUser',\r\n                                duplicateParentaServicesUser = 'duplicateParentaServicesUser',\r\n                                nurseryNotFound = 'nurseryNotFound'\r\n                            }\r\n                        \r\n                            export enum DeleteNUserForCurrentNurseryError {\r\n                                invalidBabytechUser = 'invalidBabytechUser',\r\n                                invalidParentaServicesUser = 'invalidParentaServicesUser',\r\n                                duplicateMirkwoodUser = 'duplicateMirkwoodUser',\r\n                                duplicateParentaServicesUser = 'duplicateParentaServicesUser',\r\n                                nurseryNotFound = 'nurseryNotFound',\r\n                                cannotDeleteCurrentUser = 'cannotDeleteCurrentUser'\r\n                            }\r\n                        \r\n                            export enum UpdateCurrentUserPasswordError {\r\n                                userLoginNotFound = 'userLoginNotFound',\r\n                                passwordIsEmpty = 'passwordIsEmpty',\r\n                                passwordNotStrongEnough = 'passwordNotStrongEnough',\r\n                                passwordMustNotBeCurrent = 'passwordMustNotBeCurrent'\r\n                            }\r\n                        \r\n                            export enum DisableTwoFactorForUserError {\r\n                                userLoginNotFound = 'userLoginNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateNUserError {\r\n                                abacusUserNotFound = 'abacusUserNotFound',\r\n                                invalidDateOfBirth = 'invalidDateOfBirth',\r\n                                invalidEmail = 'invalidEmail',\r\n                                invalidFirstName = 'invalidFirstName',\r\n                                invalidLastName = 'invalidLastName',\r\n                                parentaServicesUserNotFound = 'parentaServicesUserNotFound',\r\n                                emailInUse = 'emailInUse',\r\n                                invalidMirkwoodUser = 'invalidMirkwoodUser',\r\n                                parentaServicesUniqueIdConflict = 'parentaServicesUniqueIdConflict',\r\n                                tooManyParentaServicesUsers = 'tooManyParentaServicesUsers',\r\n                                nurseryNotFound = 'nurseryNotFound',\r\n                                updatingOnlyAdministratorToUser = 'updatingOnlyAdministratorToUser',\r\n                                usernameInvalid = 'usernameInvalid',\r\n                                usernameInUse = 'usernameInUse'\r\n                            }\r\n                        \r\n                            export enum UpdateNUserForCurrentNurseryError {\r\n                                abacusUserNotFound = 'abacusUserNotFound',\r\n                                invalidDateOfBirth = 'invalidDateOfBirth',\r\n                                invalidEmail = 'invalidEmail',\r\n                                invalidFirstName = 'invalidFirstName',\r\n                                invalidLastName = 'invalidLastName',\r\n                                parentaServicesUserNotFound = 'parentaServicesUserNotFound',\r\n                                emailInUse = 'emailInUse',\r\n                                invalidMirkwoodUser = 'invalidMirkwoodUser',\r\n                                parentaServicesUniqueIdConflict = 'parentaServicesUniqueIdConflict',\r\n                                tooManyParentaServicesUsers = 'tooManyParentaServicesUsers',\r\n                                nurseryNotFound = 'nurseryNotFound',\r\n                                updatingOnlyAdministratorToUser = 'updatingOnlyAdministratorToUser',\r\n                                usernameInvalid = 'usernameInvalid',\r\n                                usernameInUse = 'usernameInUse'\r\n                            }\r\n                        \r\n                                export interface IChangeLegacyNUserPasswordRequest {\r\n                                    nurseryId: number,\r\n abacusUserId: number,\r\n password: string\r\n                                }\r\n                            \r\n                                export interface IChangeLegacyNUserPasswordResult {\r\n                                    successful: boolean,\r\n errors: ChangeLegacyNUserPasswordError[]\r\n                                }\r\n                            \r\n                                export interface ICreateNUserRequest {\r\n                                    userToCreate: ICreateNUserCommandNUser\r\n                                }\r\n                            \r\n                                export interface ICreateNUserResult {\r\n                                    successful: boolean,\r\n errors: CreateNUserError[]\r\n                                }\r\n                            \r\n                                export interface ICreateNUserCommandNUser {\r\n                                    firstName: string,\r\n lastName: string,\r\n email: string,\r\n username: string,\r\n userType: ParentaServicesUserType,\r\n password: string,\r\n userCode: ParentaServicesUserCode,\r\n homeTel: string,\r\n workTel: string,\r\n nurseryId: number,\r\n sharedGuid: UUID\r\n                                }\r\n                           \r\n                                export interface ICreateNUserForCurrentNurseryRequest {\r\n                                    firstName: string,\r\n lastName: string,\r\n email: string,\r\n username: string,\r\n password: string,\r\n userCode: ParentaServicesUserCode,\r\n homeTel: string,\r\n workTel: string\r\n                                }\r\n                            \r\n                                export interface ICreateNUserForCurrentNurseryResult {\r\n                                    successful: boolean,\r\n errors: CreateNUserForCurrentNurseryError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteNUserRequest {\r\n                                    abacusUserId: number,\r\n nurseryId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteNUserResult {\r\n                                    successful: boolean,\r\n errors: DeleteNUserError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteNUserForCurrentNurseryRequest {\r\n                                    abacusUserId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteNUserForCurrentNurseryResult {\r\n                                    successful: boolean,\r\n errors: DeleteNUserForCurrentNurseryError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateCurrentUserPasswordRequest {\r\n                                    newPassword: string\r\n                                }\r\n                            \r\n                                export interface IUpdateCurrentUserPasswordResult {\r\n                                    successful: boolean,\r\n errors: UpdateCurrentUserPasswordError[]\r\n                                }\r\n                            \r\n                                export interface IDisableTwoFactorForUserRequest {\r\n                                    userId: UUID\r\n                                }\r\n                            \r\n                                export interface IDisableTwoFactorForUserResult {\r\n                                    successful: boolean,\r\n errors: DisableTwoFactorForUserError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateNUserRequest {\r\n                                    nurseryId: number,\r\n userToUpdate: IUpdateNUserCommandNUser\r\n                                }\r\n                            \r\n                                export interface IUpdateNUserResult {\r\n                                    successful: boolean,\r\n errors: UpdateNUserError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateNUserCommandNUser {\r\n                                    abacusUserId: number,\r\n firstName: string,\r\n lastName: string,\r\n email: string,\r\n username: string,\r\n userType: ParentaServicesUserType,\r\n userCode: ParentaServicesUserCode,\r\n dateOfBirth: string | moment.Moment | Date,\r\n homeTel: string,\r\n workTel: string,\r\n disabled: boolean\r\n                                }\r\n                           \r\n                                export interface IUpdateNUserForCurrentNurseryRequest {\r\n                                    id: number,\r\n firstName: string,\r\n lastName: string,\r\n email: string,\r\n username: string,\r\n userCode: ParentaServicesUserCode,\r\n dateOfBirth: string | moment.Moment | Date,\r\n homeTel: string,\r\n workTel: string,\r\n disabled: boolean\r\n                                }\r\n                            \r\n                                export interface IUpdateNUserForCurrentNurseryResult {\r\n                                    successful: boolean,\r\n errors: UpdateNUserForCurrentNurseryError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class NUserCommands {\r\n                    \r\n                            public onChangeLegacyNUserPassword: Subject<RequestInfo<NUser.IChangeLegacyNUserPasswordRequest, NUser.IChangeLegacyNUserPasswordResult>> = new Subject();\r\n                        \r\n                            public onCreateNUser: Subject<RequestInfo<NUser.ICreateNUserRequest, NUser.ICreateNUserResult>> = new Subject();\r\n                        \r\n                            public onCreateNUserForCurrentNursery: Subject<RequestInfo<NUser.ICreateNUserForCurrentNurseryRequest, NUser.ICreateNUserForCurrentNurseryResult>> = new Subject();\r\n                        \r\n                            public onDeleteNUser: Subject<RequestInfo<NUser.IDeleteNUserRequest, NUser.IDeleteNUserResult>> = new Subject();\r\n                        \r\n                            public onDeleteNUserForCurrentNursery: Subject<RequestInfo<NUser.IDeleteNUserForCurrentNurseryRequest, NUser.IDeleteNUserForCurrentNurseryResult>> = new Subject();\r\n                        \r\n                            public onUpdateCurrentUserPassword: Subject<RequestInfo<NUser.IUpdateCurrentUserPasswordRequest, NUser.IUpdateCurrentUserPasswordResult>> = new Subject();\r\n                        \r\n                            public onDisableTwoFactorForUser: Subject<RequestInfo<NUser.IDisableTwoFactorForUserRequest, NUser.IDisableTwoFactorForUserResult>> = new Subject();\r\n                        \r\n                            public onUpdateNUser: Subject<RequestInfo<NUser.IUpdateNUserRequest, NUser.IUpdateNUserResult>> = new Subject();\r\n                        \r\n                            public onUpdateNUserForCurrentNursery: Subject<RequestInfo<NUser.IUpdateNUserForCurrentNurseryRequest, NUser.IUpdateNUserForCurrentNurseryResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async changeLegacyNUserPassword(request : NUser.IChangeLegacyNUserPasswordRequest, overridenToken?: string): Promise<NUser.IChangeLegacyNUserPasswordResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<NUser.IChangeLegacyNUserPasswordRequest, NUser.IChangeLegacyNUserPasswordResult>(request, 'NUser', 'ChangeLegacyNUserPassword', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onChangeLegacyNUserPassword.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createNUser(request : NUser.ICreateNUserRequest, overridenToken?: string): Promise<NUser.ICreateNUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<NUser.ICreateNUserRequest, NUser.ICreateNUserResult>(request, 'NUser', 'CreateNUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateNUser.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createNUserForCurrentNursery(request : NUser.ICreateNUserForCurrentNurseryRequest, overridenToken?: string): Promise<NUser.ICreateNUserForCurrentNurseryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<NUser.ICreateNUserForCurrentNurseryRequest, NUser.ICreateNUserForCurrentNurseryResult>(request, 'NUser', 'CreateNUserForCurrentNursery', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateNUserForCurrentNursery.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteNUser(request : NUser.IDeleteNUserRequest, overridenToken?: string): Promise<NUser.IDeleteNUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<NUser.IDeleteNUserRequest, NUser.IDeleteNUserResult>(request, 'NUser', 'DeleteNUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteNUser.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteNUserForCurrentNursery(request : NUser.IDeleteNUserForCurrentNurseryRequest, overridenToken?: string): Promise<NUser.IDeleteNUserForCurrentNurseryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<NUser.IDeleteNUserForCurrentNurseryRequest, NUser.IDeleteNUserForCurrentNurseryResult>(request, 'NUser', 'DeleteNUserForCurrentNursery', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteNUserForCurrentNursery.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateCurrentUserPassword(request : NUser.IUpdateCurrentUserPasswordRequest, overridenToken?: string): Promise<NUser.IUpdateCurrentUserPasswordResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<NUser.IUpdateCurrentUserPasswordRequest, NUser.IUpdateCurrentUserPasswordResult>(request, 'NUser', 'UpdateCurrentUserPassword', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateCurrentUserPassword.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async disableTwoFactorForUser(request : NUser.IDisableTwoFactorForUserRequest, overridenToken?: string): Promise<NUser.IDisableTwoFactorForUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<NUser.IDisableTwoFactorForUserRequest, NUser.IDisableTwoFactorForUserResult>(request, 'NUser', 'DisableTwoFactorForUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDisableTwoFactorForUser.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateNUser(request : NUser.IUpdateNUserRequest, overridenToken?: string): Promise<NUser.IUpdateNUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<NUser.IUpdateNUserRequest, NUser.IUpdateNUserResult>(request, 'NUser', 'UpdateNUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateNUser.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateNUserForCurrentNursery(request : NUser.IUpdateNUserForCurrentNurseryRequest, overridenToken?: string): Promise<NUser.IUpdateNUserForCurrentNurseryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<NUser.IUpdateNUserForCurrentNurseryRequest, NUser.IUpdateNUserForCurrentNurseryResult>(request, 'NUser', 'UpdateNUserForCurrentNursery', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateNUserForCurrentNursery.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace Logins {\r\n                    \r\n                            export enum ConsumePasswordResetTokenError {\r\n                                tokenNotFoundOrExpired = 'tokenNotFoundOrExpired',\r\n                                passwordNotStrongEnough = 'passwordNotStrongEnough'\r\n                            }\r\n                        \r\n                            export enum CreateUserLoginError {\r\n                                emailAddressIsEmpty = 'emailAddressIsEmpty',\r\n                                passwordIsEmpty = 'passwordIsEmpty',\r\n                                abacusUserNotFound = 'abacusUserNotFound',\r\n                                userLoginEmailAddressAlreadyExists = 'userLoginEmailAddressAlreadyExists',\r\n                                parentaServicesUserMissingForAbacusUser = 'parentaServicesUserMissingForAbacusUser',\r\n                                parentaServicesUserGuidIncorrect = 'parentaServicesUserGuidIncorrect',\r\n                                mirkwoodSharedGuidIncorrect = 'mirkwoodSharedGuidIncorrect',\r\n                                mirkwoodUserNotFound = 'mirkwoodUserNotFound',\r\n                                userAlreadyHasUserLogin = 'userAlreadyHasUserLogin',\r\n                                passwordNotStrongEnough = 'passwordNotStrongEnough',\r\n                                emailOrUsernameRequired = 'emailOrUsernameRequired',\r\n                                userLoginUsernameAlreadyExists = 'userLoginUsernameAlreadyExists',\r\n                                usernameInvalid = 'usernameInvalid'\r\n                            }\r\n                        \r\n                            export enum CreateUserLoginForCurrentUserError {\r\n                                emailAddressIsEmpty = 'emailAddressIsEmpty',\r\n                                passwordIsEmpty = 'passwordIsEmpty',\r\n                                abacusUserNotFound = 'abacusUserNotFound',\r\n                                userLoginEmailAddressAlreadyExists = 'userLoginEmailAddressAlreadyExists',\r\n                                parentaServicesUserMissingForAbacusUser = 'parentaServicesUserMissingForAbacusUser',\r\n                                parentaServicesUserGuidIncorrect = 'parentaServicesUserGuidIncorrect',\r\n                                mirkwoodSharedGuidIncorrect = 'mirkwoodSharedGuidIncorrect',\r\n                                mirkwoodUserNotFound = 'mirkwoodUserNotFound',\r\n                                userAlreadyHasUserLogin = 'userAlreadyHasUserLogin',\r\n                                passwordNotStrongEnough = 'passwordNotStrongEnough',\r\n                                emailOrUsernameRequired = 'emailOrUsernameRequired',\r\n                                userLoginUsernameAlreadyExists = 'userLoginUsernameAlreadyExists',\r\n                                usernameInvalid = 'usernameInvalid'\r\n                            }\r\n                        \r\n                            export enum UpdateUserLoginPasswordError {\r\n                                userLoginNotFound = 'userLoginNotFound',\r\n                                passwordIsEmpty = 'passwordIsEmpty',\r\n                                passwordNotStrongEnough = 'passwordNotStrongEnough'\r\n                            }\r\n                        \r\n                                export interface IConsumePasswordResetTokenRequest {\r\n                                    token: UUID,\r\n password: string\r\n                                }\r\n                            \r\n                                export interface IConsumePasswordResetTokenResult {\r\n                                    successful: boolean,\r\n errors: ConsumePasswordResetTokenError[]\r\n                                }\r\n                            \r\n                                export interface ICreateUserLoginRequest {\r\n                                    emailAddress: string,\r\n username: string,\r\n password: string,\r\n abacusUserId: number\r\n                                }\r\n                            \r\n                                export interface ICreateUserLoginResult {\r\n                                    successful: boolean,\r\n userSharedGuid: UUID,\r\n errors: CreateUserLoginError[]\r\n                                }\r\n                            \r\n                                export interface ICreateUserLoginForCurrentUserRequest {\r\n                                    emailAddress: string,\r\n username: string,\r\n password: string\r\n                                }\r\n                            \r\n                                export interface ICreateUserLoginForCurrentUserResult {\r\n                                    successful: boolean,\r\n errors: CreateUserLoginForCurrentUserError[]\r\n                                }\r\n                            \r\n                                export interface ISendUserPasswordResetEmailRequest {\r\n                                    email: string,\r\n username: string\r\n                                }\r\n                            \r\n                                export interface ISendUserPasswordResetEmailResult {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IUpdateUserLoginPasswordRequest {\r\n                                    userSharedGuid: UUID,\r\n password: string\r\n                                }\r\n                            \r\n                                export interface IUpdateUserLoginPasswordResult {\r\n                                    successful: boolean,\r\n errors: UpdateUserLoginPasswordError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class LoginsCommands {\r\n                    \r\n                            public onConsumePasswordResetToken: Subject<RequestInfo<Logins.IConsumePasswordResetTokenRequest, Logins.IConsumePasswordResetTokenResult>> = new Subject();\r\n                        \r\n                            public onCreateUserLogin: Subject<RequestInfo<Logins.ICreateUserLoginRequest, Logins.ICreateUserLoginResult>> = new Subject();\r\n                        \r\n                            public onCreateUserLoginForCurrentUser: Subject<RequestInfo<Logins.ICreateUserLoginForCurrentUserRequest, Logins.ICreateUserLoginForCurrentUserResult>> = new Subject();\r\n                        \r\n                            public onSendUserPasswordResetEmail: Subject<RequestInfo<Logins.ISendUserPasswordResetEmailRequest, Logins.ISendUserPasswordResetEmailResult>> = new Subject();\r\n                        \r\n                            public onUpdateUserLoginPassword: Subject<RequestInfo<Logins.IUpdateUserLoginPasswordRequest, Logins.IUpdateUserLoginPasswordResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async consumePasswordResetToken(request : Logins.IConsumePasswordResetTokenRequest, overridenToken?: string): Promise<Logins.IConsumePasswordResetTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Logins.IConsumePasswordResetTokenRequest, Logins.IConsumePasswordResetTokenResult>(request, 'Logins', 'ConsumePasswordResetToken', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onConsumePasswordResetToken.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createUserLogin(request : Logins.ICreateUserLoginRequest, overridenToken?: string): Promise<Logins.ICreateUserLoginResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Logins.ICreateUserLoginRequest, Logins.ICreateUserLoginResult>(request, 'Logins', 'CreateUserLogin', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateUserLogin.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createUserLoginForCurrentUser(request : Logins.ICreateUserLoginForCurrentUserRequest, overridenToken?: string): Promise<Logins.ICreateUserLoginForCurrentUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Logins.ICreateUserLoginForCurrentUserRequest, Logins.ICreateUserLoginForCurrentUserResult>(request, 'Logins', 'CreateUserLoginForCurrentUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateUserLoginForCurrentUser.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendUserPasswordResetEmail(request : Logins.ISendUserPasswordResetEmailRequest, overridenToken?: string): Promise<Logins.ISendUserPasswordResetEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Logins.ISendUserPasswordResetEmailRequest, Logins.ISendUserPasswordResetEmailResult>(request, 'Logins', 'SendUserPasswordResetEmail', overridenToken);\r\n                                        \r\n                                            this.onSendUserPasswordResetEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateUserLoginPassword(request : Logins.IUpdateUserLoginPasswordRequest, overridenToken?: string): Promise<Logins.IUpdateUserLoginPasswordResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Logins.IUpdateUserLoginPasswordRequest, Logins.IUpdateUserLoginPasswordResult>(request, 'Logins', 'UpdateUserLoginPassword', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateUserLoginPassword.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace File {\r\n                    \r\n                            export enum GetFileThumbnailUrlImageSize {\r\n                                small = 'small',\r\n                                medium = 'medium',\r\n                                large = 'large',\r\n                                full = 'full'\r\n                            }\r\n                        \r\n                            export enum GetFileThumbnailUrlError {\r\n                                fileNotFound = 'fileNotFound',\r\n                                thumbnailNotFound = 'thumbnailNotFound'\r\n                            }\r\n                        \r\n                            export enum GetFileUrlError {\r\n                                fileNotFound = 'fileNotFound'\r\n                            }\r\n                        \r\n                            export enum GetUserPhotoUrlError {\r\n                                userNotFound = 'userNotFound',\r\n                                photoNotFound = 'photoNotFound'\r\n                            }\r\n                        \r\n                            export enum StartUploadingFileError {\r\n                                invalidFileName = 'invalidFileName',\r\n                                invalidFileSize = 'invalidFileSize'\r\n                            }\r\n                        \r\n                            export enum UploadPartialFileError {\r\n                                fileNotFound = 'fileNotFound',\r\n                                invalidChunk = 'invalidChunk'\r\n                            }\r\n                        \r\n                                export interface IGetFileThumbnailUrlRequest {\r\n                                    uploadedFileId: UUID,\r\n size: GetFileThumbnailUrlImageSize\r\n                                }\r\n                            \r\n                                export interface IGetFileThumbnailUrlResult {\r\n                                    successful: boolean,\r\n errors: GetFileThumbnailUrlError[],\r\n color: string,\r\n thumbnailUrl: string\r\n                                }\r\n                            \r\n                                export interface IGetFileUrlRequest {\r\n                                    fileId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetFileUrlResult {\r\n                                    successful: boolean,\r\n errors: GetFileUrlError[],\r\n url: string,\r\n width: number,\r\n height: number\r\n                                }\r\n                            \r\n                                export interface IGetUserPhotoUrlRequest {\r\n                                    userId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetUserPhotoUrlResult {\r\n                                    photoUrl: string,\r\n successful: boolean,\r\n errors: GetUserPhotoUrlError[]\r\n                                }\r\n                            \r\n                                export interface IStartUploadingFileRequest {\r\n                                    fileName: string,\r\n fileSize: number\r\n                                }\r\n                            \r\n                                export interface IStartUploadingFileResult {\r\n                                    fileId: UUID,\r\n successful: boolean,\r\n errors: StartUploadingFileError[]\r\n                                }\r\n                            \r\n                                export interface IUploadPartialFileRequest {\r\n                                    fileId: UUID,\r\n currentChunk: number,\r\n chunkSize: number,\r\n partialData: any; // System.IO.MemoryStream\r\n                                }\r\n                            \r\n                                export interface IUploadPartialFileResult {\r\n                                    successful: boolean,\r\n errors: UploadPartialFileError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FileCommands {\r\n                    \r\n                            public onGetFileThumbnailUrl: Subject<RequestInfo<File.IGetFileThumbnailUrlRequest, File.IGetFileThumbnailUrlResult>> = new Subject();\r\n                        \r\n                            public onGetFileUrl: Subject<RequestInfo<File.IGetFileUrlRequest, File.IGetFileUrlResult>> = new Subject();\r\n                        \r\n                            public onGetUserPhotoUrl: Subject<RequestInfo<File.IGetUserPhotoUrlRequest, File.IGetUserPhotoUrlResult>> = new Subject();\r\n                        \r\n                            public onStartUploadingFile: Subject<RequestInfo<File.IStartUploadingFileRequest, File.IStartUploadingFileResult>> = new Subject();\r\n                        \r\n                            public onUploadPartialFile: Subject<RequestInfo<File.IUploadPartialFileRequest, File.IUploadPartialFileResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getFileThumbnailUrl(request : File.IGetFileThumbnailUrlRequest, overridenToken?: string): Promise<File.IGetFileThumbnailUrlResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<File.IGetFileThumbnailUrlRequest, File.IGetFileThumbnailUrlResult>(request, 'File', 'GetFileThumbnailUrl', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetFileThumbnailUrl.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getFileUrl(request : File.IGetFileUrlRequest, overridenToken?: string): Promise<File.IGetFileUrlResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<File.IGetFileUrlRequest, File.IGetFileUrlResult>(request, 'File', 'GetFileUrl', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetFileUrl.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getUserPhotoUrl(request : File.IGetUserPhotoUrlRequest, overridenToken?: string): Promise<File.IGetUserPhotoUrlResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<File.IGetUserPhotoUrlRequest, File.IGetUserPhotoUrlResult>(request, 'File', 'GetUserPhotoUrl', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetUserPhotoUrl.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async startUploadingFile(request : File.IStartUploadingFileRequest, overridenToken?: string): Promise<File.IStartUploadingFileResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<File.IStartUploadingFileRequest, File.IStartUploadingFileResult>(request, 'File', 'StartUploadingFile', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onStartUploadingFile.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async uploadPartialFile(request : File.IUploadPartialFileRequest, overridenToken?: string): Promise<File.IUploadPartialFileResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<File.IUploadPartialFileRequest, File.IUploadPartialFileResult>(request, 'File', 'UploadPartialFile', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUploadPartialFile.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace Echo {\r\n                    \r\n                                export interface IAdminEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface IAdminEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                                export interface IAnonymousEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface IAnonymousEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                                export interface ICarerEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface ICarerEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                                export interface IHeadlessPrintingServiceEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface IHeadlessPrintingServiceEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                                export interface IInternalApiEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface IInternalApiEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                                export interface IQueryStringGetRequestEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface ITimeEchoResult {\r\n                                    output: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IUserEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface IUserEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                                export interface INestedEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface INestedEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                                export interface INodaTimeEchoRequest {\r\n                                    localDate: any; // NodaTime.LocalDate\r\n                                }\r\n                            \r\n                                export interface INodaTimeEchoResult {\r\n                                    localDateOut: any; // NodaTime.LocalDate\r\n                                }\r\n                            \r\n                                export interface IWrappedKeyRequest {\r\n                                    inputNurseryGuid: UUID,\r\n inputNullable: UUID | null\r\n                                }\r\n                            \r\n                                export interface IWrappedKeyResult {\r\n                                    outputNurseryGuid: UUID,\r\n outputGuidString: string,\r\n outputNullable: UUID | null\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class EchoCommands {\r\n                    \r\n                            public onAdminEcho: Subject<RequestInfo<Echo.IAdminEchoRequest, Echo.IAdminEchoResult>> = new Subject();\r\n                        \r\n                            public onAnonymousEcho: Subject<RequestInfo<Echo.IAnonymousEchoRequest, Echo.IAnonymousEchoResult>> = new Subject();\r\n                        \r\n                            public onCarerEcho: Subject<RequestInfo<Echo.ICarerEchoRequest, Echo.ICarerEchoResult>> = new Subject();\r\n                        \r\n                            public onHeadlessPrintingServiceEcho: Subject<RequestInfo<Echo.IHeadlessPrintingServiceEchoRequest, Echo.IHeadlessPrintingServiceEchoResult>> = new Subject();\r\n                        \r\n                            public onInternalApiEcho: Subject<RequestInfo<Echo.IInternalApiEchoRequest, Echo.IInternalApiEchoResult>> = new Subject();\r\n                        \r\n                            \r\n                        \r\n                            public onTimeEcho: Subject<Echo.ITimeEchoResult> = new Subject();\r\n                        \r\n                            public onUserEcho: Subject<RequestInfo<Echo.IUserEchoRequest, Echo.IUserEchoResult>> = new Subject();\r\n                        \r\n                            public onNestedEcho: Subject<RequestInfo<Echo.INestedEchoRequest, Echo.INestedEchoResult>> = new Subject();\r\n                        \r\n                            public onNodaTimeEcho: Subject<RequestInfo<Echo.INodaTimeEchoRequest, Echo.INodaTimeEchoResult>> = new Subject();\r\n                        \r\n                            public onWrappedKey: Subject<RequestInfo<Echo.IWrappedKeyRequest, Echo.IWrappedKeyResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async adminEcho(request : Echo.IAdminEchoRequest, overridenToken?: string): Promise<Echo.IAdminEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Echo.IAdminEchoRequest, Echo.IAdminEchoResult>(request, 'Echo', 'AdminEcho', overridenToken);\r\n                                        \r\n                                            this.onAdminEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async anonymousEcho(request : Echo.IAnonymousEchoRequest, overridenToken?: string): Promise<Echo.IAnonymousEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Echo.IAnonymousEchoRequest, Echo.IAnonymousEchoResult>(request, 'Echo', 'AnonymousEcho', overridenToken);\r\n                                        \r\n                                            this.onAnonymousEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async carerEcho(request : Echo.ICarerEchoRequest, overridenToken?: string): Promise<Echo.ICarerEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Echo.ICarerEchoRequest, Echo.ICarerEchoResult>(request, 'Echo', 'CarerEcho', overridenToken);\r\n                                        \r\n                                            this.onCarerEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async headlessPrintingServiceEcho(request : Echo.IHeadlessPrintingServiceEchoRequest, overridenToken?: string): Promise<Echo.IHeadlessPrintingServiceEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Echo.IHeadlessPrintingServiceEchoRequest, Echo.IHeadlessPrintingServiceEchoResult>(request, 'Echo', 'HeadlessPrintingServiceEcho', overridenToken);\r\n                                        \r\n                                            this.onHeadlessPrintingServiceEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async internalApiEcho(request : Echo.IInternalApiEchoRequest, overridenToken?: string): Promise<Echo.IInternalApiEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Echo.IInternalApiEchoRequest, Echo.IInternalApiEchoResult>(request, 'Echo', 'InternalApiEcho', overridenToken);\r\n                                        \r\n                                            this.onInternalApiEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            queryStringGetRequestEcho(request : Echo.IQueryStringGetRequestEchoRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'Echo', 'QueryStringGetRequestEcho', overridenToken);\r\n                            }\r\n                            \r\n                            queryStringGetRequestEchoUrl(request : Echo.IQueryStringGetRequestEchoRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'Echo', 'QueryStringGetRequestEcho', temporaryToken);\r\n                                return url;\r\n                            }\r\n                                    public async timeEcho(overridenToken?: string): Promise<Echo.ITimeEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},Echo.ITimeEchoResult>({}, 'Echo', 'TimeEcho', overridenToken);\r\n                                        \r\n                                            this.onTimeEcho.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async userEcho(request : Echo.IUserEchoRequest, overridenToken?: string): Promise<Echo.IUserEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Echo.IUserEchoRequest, Echo.IUserEchoResult>(request, 'Echo', 'UserEcho', overridenToken);\r\n                                        \r\n                                            this.onUserEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async nestedEcho(request : Echo.INestedEchoRequest, overridenToken?: string): Promise<Echo.INestedEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Echo.INestedEchoRequest, Echo.INestedEchoResult>(request, 'Echo', 'NestedEcho', overridenToken);\r\n                                        \r\n                                            this.onNestedEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async nodaTimeEcho(request : Echo.INodaTimeEchoRequest, overridenToken?: string): Promise<Echo.INodaTimeEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Echo.INodaTimeEchoRequest, Echo.INodaTimeEchoResult>(request, 'Echo', 'NodaTimeEcho', overridenToken);\r\n                                        \r\n                                            this.onNodaTimeEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async wrappedKey(request : Echo.IWrappedKeyRequest, overridenToken?: string): Promise<Echo.IWrappedKeyResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Echo.IWrappedKeyRequest, Echo.IWrappedKeyResult>(request, 'Echo', 'WrappedKey', overridenToken);\r\n                                        \r\n                                            this.onWrappedKey.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace Diary {\r\n                    \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class DiaryCommands {\r\n                    \r\n                            public onAddCustomDiaryEventToSeriesForBusiness: Subject<IExecutionResult<DiaryCommandResult.IAddCustomDiaryEventToSeriesForBusinessCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateCustomDiaryEventSeriesWithEndDate: Subject<IExecutionResult<DiaryCommandResult.ICreateCustomDiaryEventSeriesWithEndDateCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateCustomDiaryEventSeriesWithFixedNumber: Subject<IExecutionResult<DiaryCommandResult.ICreateCustomDiaryEventSeriesWithFixedNumberCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateCustomDiaryEventType: Subject<IExecutionResult<DiaryCommandResult.ICreateCustomDiaryEventTypeCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateDiaryEventType: Subject<IExecutionResult<DiaryCommandResult.ICreateDiaryEventTypeCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateEmptyCustomDiaryEventSeriesWithEndDateForBusiness: Subject<IExecutionResult<DiaryCommandResult.ICreateEmptyCustomDiaryEventSeriesWithEndDateForBusinessCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateEmptyCustomDiaryEventSeriesWithFixedNumberForBusiness: Subject<IExecutionResult<DiaryCommandResult.ICreateEmptyCustomDiaryEventSeriesWithFixedNumberForBusinessCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateSingleCustomDiaryEvent: Subject<IExecutionResult<DiaryCommandResult.ICreateSingleCustomDiaryEventCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateSingleCustomDiaryEventForBusiness: Subject<IExecutionResult<DiaryCommandResult.ICreateSingleCustomDiaryEventForBusinessCommandResult>> = new Subject();\r\n                        \r\n                            public onDeleteCustomDiaryEvent: Subject<IExecutionResult<DiaryCommandResult.IDeleteCustomDiaryEventCommandResult>> = new Subject();\r\n                        \r\n                            public onDeleteCustomDiaryEventSeries: Subject<IExecutionResult<DiaryCommandResult.IDeleteCustomDiaryEventSeriesCommandResult>> = new Subject();\r\n                        \r\n                            public onDeleteCustomDiaryEventType: Subject<IExecutionResult<DiaryCommandResult.IDeleteCustomDiaryEventTypeCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateCustomDiaryEventSeriesWithEndDate: Subject<IExecutionResult<DiaryCommandResult.IUpdateCustomDiaryEventSeriesWithEndDateCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateCustomDiaryEventSeriesWithFixedNumber: Subject<IExecutionResult<DiaryCommandResult.IUpdateCustomDiaryEventSeriesWithFixedNumberCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdatePartOfCustomDiaryEventSeriesWithEndDate: Subject<IExecutionResult<DiaryCommandResult.IUpdatePartOfCustomDiaryEventSeriesWithEndDateCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdatePartOfCustomDiaryEventSeriesWithFixedNumber: Subject<IExecutionResult<DiaryCommandResult.IUpdatePartOfCustomDiaryEventSeriesWithFixedNumberCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateSingleCustomDiaryEvent: Subject<IExecutionResult<DiaryCommandResult.IUpdateSingleCustomDiaryEventCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async addCustomDiaryEventToSeriesForBusiness(request : DiaryCommand.AddCustomDiaryEventToSeriesForBusinessCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.IAddCustomDiaryEventToSeriesForBusinessCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.AddCustomDiaryEventToSeriesForBusinessCommand, DiaryCommandResult.IAddCustomDiaryEventToSeriesForBusinessCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onAddCustomDiaryEventToSeriesForBusiness.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createCustomDiaryEventSeriesWithEndDate(request : DiaryCommand.CreateCustomDiaryEventSeriesWithEndDateCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.ICreateCustomDiaryEventSeriesWithEndDateCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.CreateCustomDiaryEventSeriesWithEndDateCommand, DiaryCommandResult.ICreateCustomDiaryEventSeriesWithEndDateCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateCustomDiaryEventSeriesWithEndDate.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createCustomDiaryEventSeriesWithFixedNumber(request : DiaryCommand.CreateCustomDiaryEventSeriesWithFixedNumberCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.ICreateCustomDiaryEventSeriesWithFixedNumberCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.CreateCustomDiaryEventSeriesWithFixedNumberCommand, DiaryCommandResult.ICreateCustomDiaryEventSeriesWithFixedNumberCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateCustomDiaryEventSeriesWithFixedNumber.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createCustomDiaryEventType(request : DiaryCommand.CreateCustomDiaryEventTypeCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.ICreateCustomDiaryEventTypeCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.CreateCustomDiaryEventTypeCommand, DiaryCommandResult.ICreateCustomDiaryEventTypeCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateCustomDiaryEventType.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createDiaryEventType(request : DiaryCommand.CreateDiaryEventTypeCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.ICreateDiaryEventTypeCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.CreateDiaryEventTypeCommand, DiaryCommandResult.ICreateDiaryEventTypeCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateDiaryEventType.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createEmptyCustomDiaryEventSeriesWithEndDateForBusiness(request : DiaryCommand.CreateEmptyCustomDiaryEventSeriesWithEndDateForBusinessCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.ICreateEmptyCustomDiaryEventSeriesWithEndDateForBusinessCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.CreateEmptyCustomDiaryEventSeriesWithEndDateForBusinessCommand, DiaryCommandResult.ICreateEmptyCustomDiaryEventSeriesWithEndDateForBusinessCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateEmptyCustomDiaryEventSeriesWithEndDateForBusiness.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createEmptyCustomDiaryEventSeriesWithFixedNumberForBusiness(request : DiaryCommand.CreateEmptyCustomDiaryEventSeriesWithFixedNumberForBusinessCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.ICreateEmptyCustomDiaryEventSeriesWithFixedNumberForBusinessCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.CreateEmptyCustomDiaryEventSeriesWithFixedNumberForBusinessCommand, DiaryCommandResult.ICreateEmptyCustomDiaryEventSeriesWithFixedNumberForBusinessCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateEmptyCustomDiaryEventSeriesWithFixedNumberForBusiness.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createSingleCustomDiaryEvent(request : DiaryCommand.CreateSingleCustomDiaryEventCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.ICreateSingleCustomDiaryEventCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.CreateSingleCustomDiaryEventCommand, DiaryCommandResult.ICreateSingleCustomDiaryEventCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateSingleCustomDiaryEvent.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createSingleCustomDiaryEventForBusiness(request : DiaryCommand.CreateSingleCustomDiaryEventForBusinessCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.ICreateSingleCustomDiaryEventForBusinessCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.CreateSingleCustomDiaryEventForBusinessCommand, DiaryCommandResult.ICreateSingleCustomDiaryEventForBusinessCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateSingleCustomDiaryEventForBusiness.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async deleteCustomDiaryEvent(request : DiaryCommand.DeleteCustomDiaryEventCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.IDeleteCustomDiaryEventCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.DeleteCustomDiaryEventCommand, DiaryCommandResult.IDeleteCustomDiaryEventCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onDeleteCustomDiaryEvent.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async deleteCustomDiaryEventSeries(request : DiaryCommand.DeleteCustomDiaryEventSeriesCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.IDeleteCustomDiaryEventSeriesCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.DeleteCustomDiaryEventSeriesCommand, DiaryCommandResult.IDeleteCustomDiaryEventSeriesCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onDeleteCustomDiaryEventSeries.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async deleteCustomDiaryEventType(request : DiaryCommand.DeleteCustomDiaryEventTypeCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.IDeleteCustomDiaryEventTypeCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.DeleteCustomDiaryEventTypeCommand, DiaryCommandResult.IDeleteCustomDiaryEventTypeCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onDeleteCustomDiaryEventType.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateCustomDiaryEventSeriesWithEndDate(request : DiaryCommand.UpdateCustomDiaryEventSeriesWithEndDateCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.IUpdateCustomDiaryEventSeriesWithEndDateCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.UpdateCustomDiaryEventSeriesWithEndDateCommand, DiaryCommandResult.IUpdateCustomDiaryEventSeriesWithEndDateCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateCustomDiaryEventSeriesWithEndDate.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateCustomDiaryEventSeriesWithFixedNumber(request : DiaryCommand.UpdateCustomDiaryEventSeriesWithFixedNumberCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.IUpdateCustomDiaryEventSeriesWithFixedNumberCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.UpdateCustomDiaryEventSeriesWithFixedNumberCommand, DiaryCommandResult.IUpdateCustomDiaryEventSeriesWithFixedNumberCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateCustomDiaryEventSeriesWithFixedNumber.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updatePartOfCustomDiaryEventSeriesWithEndDate(request : DiaryCommand.UpdatePartOfCustomDiaryEventSeriesWithEndDateCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.IUpdatePartOfCustomDiaryEventSeriesWithEndDateCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.UpdatePartOfCustomDiaryEventSeriesWithEndDateCommand, DiaryCommandResult.IUpdatePartOfCustomDiaryEventSeriesWithEndDateCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdatePartOfCustomDiaryEventSeriesWithEndDate.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updatePartOfCustomDiaryEventSeriesWithFixedNumber(request : DiaryCommand.UpdatePartOfCustomDiaryEventSeriesWithFixedNumberCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.IUpdatePartOfCustomDiaryEventSeriesWithFixedNumberCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.UpdatePartOfCustomDiaryEventSeriesWithFixedNumberCommand, DiaryCommandResult.IUpdatePartOfCustomDiaryEventSeriesWithFixedNumberCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdatePartOfCustomDiaryEventSeriesWithFixedNumber.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateSingleCustomDiaryEvent(request : DiaryCommand.UpdateSingleCustomDiaryEventCommand, overridenToken?: string): Promise<IExecutionResult<DiaryCommandResult.IUpdateSingleCustomDiaryEventCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <DiaryCommand.UpdateSingleCustomDiaryEventCommand, DiaryCommandResult.IUpdateSingleCustomDiaryEventCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateSingleCustomDiaryEvent.next(response);\r\n                                return response;\r\n                             }\r\n                        } // End class\r\n                    \r\n                        export namespace CorporationPreference {\r\n                    \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class CorporationPreferenceCommands {\r\n                    \r\n                            public onCreateCorporationPreference: Subject<IExecutionResult<CorporationPreferenceCommandResult.ICreateCorporationPreferenceCommandResult>> = new Subject();\r\n                        \r\n                            public onEditCorporationPreference: Subject<IExecutionResult<CorporationPreferenceCommandResult.IEditCorporationPreferenceCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async createCorporationPreference(request : CorporationPreferenceCommand.CreateCorporationPreferenceCommand, overridenToken?: string): Promise<IExecutionResult<CorporationPreferenceCommandResult.ICreateCorporationPreferenceCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <CorporationPreferenceCommand.CreateCorporationPreferenceCommand, CorporationPreferenceCommandResult.ICreateCorporationPreferenceCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateCorporationPreference.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async editCorporationPreference(request : CorporationPreferenceCommand.EditCorporationPreferenceCommand, overridenToken?: string): Promise<IExecutionResult<CorporationPreferenceCommandResult.IEditCorporationPreferenceCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <CorporationPreferenceCommand.EditCorporationPreferenceCommand, CorporationPreferenceCommandResult.IEditCorporationPreferenceCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onEditCorporationPreference.next(response);\r\n                                return response;\r\n                             }\r\n                        } // End class\r\n                    \r\n                        export namespace Corporation {\r\n                    \r\n                                export interface IGetAllCorporationBusinessesResult {\r\n                                    corporations: IGetAllCorporationBusinessesCommandResultCorporationInfo[]\r\n                                }\r\n                            \r\n                                export interface IGetAllCorporationBusinessesCommandResultCorporationInfo {\r\n                                    name: string,\r\n id: UUID,\r\n businesses: IGetAllCorporationBusinessesCommandResultBusinessInfo[]\r\n                                }\r\n                           \r\n                                export interface IGetAllCorporationBusinessesCommandResultBusinessInfo {\r\n                                    name: string,\r\n id: UUID,\r\n legacyId: string\r\n                                }\r\n                           \r\n                                export interface IGetAllCorporationsResult {\r\n                                    corporationDataRows: IGetAllCorporationsCommandResultCorporationDataRow[]\r\n                                }\r\n                            \r\n                                export interface IGetAllCorporationsCommandResultCorporationDataRow {\r\n                                    name: string,\r\n id: UUID,\r\n subdomain: string\r\n                                }\r\n                           \r\n                                export interface IGetCurrentCorporationResult {\r\n                                    id: UUID\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class CorporationCommands {\r\n                    \r\n                            public onAddExistingBusinessToCorporation: Subject<IExecutionResult<CorporationCommandResult.IAddExistingBusinessToCorporationCommandResult>> = new Subject();\r\n                        \r\n                            public onAddExistingUserToCorporation: Subject<IExecutionResult<CorporationCommandResult.IAddExistingUserToCorporationCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateBusinessAgainstCorporation: Subject<IExecutionResult<CorporationCommandResult.ICreateBusinessAgainstCorporationCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateCorporation: Subject<IExecutionResult<CorporationCommandResult.ICreateCorporationCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateBasicDetails: Subject<IExecutionResult<CorporationCommandResult.IUpdateBasicDetailsCommandResult>> = new Subject();\r\n                        \r\n                            public onGetAllCorporationBusinesses: Subject<Corporation.IGetAllCorporationBusinessesResult> = new Subject();\r\n                        \r\n                            public onGetAllCorporations: Subject<Corporation.IGetAllCorporationsResult> = new Subject();\r\n                        \r\n                            public onGetCurrentCorporation: Subject<Corporation.IGetCurrentCorporationResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async addExistingBusinessToCorporation(request : CorporationCommand.AddExistingBusinessToCorporationCommand, overridenToken?: string): Promise<IExecutionResult<CorporationCommandResult.IAddExistingBusinessToCorporationCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <CorporationCommand.AddExistingBusinessToCorporationCommand, CorporationCommandResult.IAddExistingBusinessToCorporationCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onAddExistingBusinessToCorporation.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async addExistingUserToCorporation(request : CorporationCommand.AddExistingUserToCorporationCommand, overridenToken?: string): Promise<IExecutionResult<CorporationCommandResult.IAddExistingUserToCorporationCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <CorporationCommand.AddExistingUserToCorporationCommand, CorporationCommandResult.IAddExistingUserToCorporationCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onAddExistingUserToCorporation.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createBusinessAgainstCorporation(request : CorporationCommand.CreateBusinessAgainstCorporationCommand, overridenToken?: string): Promise<IExecutionResult<CorporationCommandResult.ICreateBusinessAgainstCorporationCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <CorporationCommand.CreateBusinessAgainstCorporationCommand, CorporationCommandResult.ICreateBusinessAgainstCorporationCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateBusinessAgainstCorporation.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async createCorporation(request : CorporationCommand.CreateCorporationCommand, overridenToken?: string): Promise<IExecutionResult<CorporationCommandResult.ICreateCorporationCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <CorporationCommand.CreateCorporationCommand, CorporationCommandResult.ICreateCorporationCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateCorporation.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateBasicDetails(request : CorporationCommand.UpdateBasicDetailsCommand, overridenToken?: string): Promise<IExecutionResult<CorporationCommandResult.IUpdateBasicDetailsCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <CorporationCommand.UpdateBasicDetailsCommand, CorporationCommandResult.IUpdateBasicDetailsCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateBasicDetails.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                                    public async getAllCorporationBusinesses(overridenToken?: string): Promise<Corporation.IGetAllCorporationBusinessesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},Corporation.IGetAllCorporationBusinessesResult>({}, 'Corporation', 'GetAllCorporationBusinesses', overridenToken);\r\n                                        \r\n                                            this.onGetAllCorporationBusinesses.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllCorporations(overridenToken?: string): Promise<Corporation.IGetAllCorporationsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},Corporation.IGetAllCorporationsResult>({}, 'Corporation', 'GetAllCorporations', overridenToken);\r\n                                        \r\n                                            this.onGetAllCorporations.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getCurrentCorporation(overridenToken?: string): Promise<Corporation.IGetCurrentCorporationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},Corporation.IGetCurrentCorporationResult>({}, 'Corporation', 'GetCurrentCorporation', overridenToken);\r\n                                        \r\n                                            this.onGetCurrentCorporation.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace Carer {\r\n                    \r\n                            export enum ParentaServicesResetCarerPasswordError {\r\n                                tokenExpired = 'tokenExpired',\r\n                                tokenDoesNotExist = 'tokenDoesNotExist',\r\n                                passwordsDoNotMatch = 'passwordsDoNotMatch',\r\n                                tokenRequired = 'tokenRequired',\r\n                                passwordRequired = 'passwordRequired',\r\n                                confirmPasswordRequired = 'confirmPasswordRequired',\r\n                                carerEmailDoesNotExist = 'carerEmailDoesNotExist',\r\n                                carerEmailIsNotUnique = 'carerEmailIsNotUnique',\r\n                                passwordIsNotStrong = 'passwordIsNotStrong',\r\n                                carerEmailIsRequired = 'carerEmailIsRequired',\r\n                                invalidCarerEmail = 'invalidCarerEmail'\r\n                            }\r\n                        \r\n                            export enum ChangeCurrentCarerPasswordError {\r\n                                carerEmailDoesNotExist = 'carerEmailDoesNotExist',\r\n                                passwordIsRequired = 'passwordIsRequired',\r\n                                passwordIsWeak = 'passwordIsWeak',\r\n                                newPasswordIsOldPassword = 'newPasswordIsOldPassword'\r\n                            }\r\n                        \r\n                                export interface ILookupCarerPasswordRequest {\r\n                                    legacyBusinessId: string,\r\n password: string\r\n                                }\r\n                            \r\n                                export interface ILookupCarerPasswordResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                                export interface IOverridePasswordRequest {\r\n                                    newPassword: string\r\n                                }\r\n                            \r\n                                export interface IOverridePasswordResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                                export interface IParentaServicesResetCarerPasswordRequest {\r\n                                    token: string,\r\n email: string,\r\n password: string,\r\n confirmPassword: string\r\n                                }\r\n                            \r\n                                export interface IParentaServicesResetCarerPasswordResult {\r\n                                    successful: boolean,\r\n errors: ParentaServicesResetCarerPasswordError[]\r\n                                }\r\n                            \r\n                                export interface IChangeCurrentCarerPasswordRequest {\r\n                                    password: string\r\n                                }\r\n                            \r\n                                export interface IChangeCurrentCarerPasswordResult {\r\n                                    successful: boolean,\r\n errors: ChangeCurrentCarerPasswordError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class CarerCommands {\r\n                    \r\n                            public onLookupCarerPassword: Subject<RequestInfo<Carer.ILookupCarerPasswordRequest, Carer.ILookupCarerPasswordResult>> = new Subject();\r\n                        \r\n                            public onOverridePassword: Subject<RequestInfo<Carer.IOverridePasswordRequest, Carer.IOverridePasswordResult>> = new Subject();\r\n                        \r\n                            public onParentaServicesResetCarerPassword: Subject<RequestInfo<Carer.IParentaServicesResetCarerPasswordRequest, Carer.IParentaServicesResetCarerPasswordResult>> = new Subject();\r\n                        \r\n                            public onChangeCurrentCarerPassword: Subject<RequestInfo<Carer.IChangeCurrentCarerPasswordRequest, Carer.IChangeCurrentCarerPasswordResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async lookupCarerPassword(request : Carer.ILookupCarerPasswordRequest, overridenToken?: string): Promise<Carer.ILookupCarerPasswordResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Carer.ILookupCarerPasswordRequest, Carer.ILookupCarerPasswordResult>(request, 'Carer', 'LookupCarerPassword', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onLookupCarerPassword.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async overridePassword(request : Carer.IOverridePasswordRequest, overridenToken?: string): Promise<Carer.IOverridePasswordResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Carer.IOverridePasswordRequest, Carer.IOverridePasswordResult>(request, 'Carer', 'OverridePassword', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onOverridePassword.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async parentaServicesResetCarerPassword(request : Carer.IParentaServicesResetCarerPasswordRequest, overridenToken?: string): Promise<Carer.IParentaServicesResetCarerPasswordResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Carer.IParentaServicesResetCarerPasswordRequest, Carer.IParentaServicesResetCarerPasswordResult>(request, 'Carer', 'ParentaServicesResetCarerPassword', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onParentaServicesResetCarerPassword.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async changeCurrentCarerPassword(request : Carer.IChangeCurrentCarerPasswordRequest, overridenToken?: string): Promise<Carer.IChangeCurrentCarerPasswordResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Carer.IChangeCurrentCarerPasswordRequest, Carer.IChangeCurrentCarerPasswordResult>(request, 'Carer', 'ChangeCurrentCarerPassword', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onChangeCurrentCarerPassword.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace BusinessPreference {\r\n                    \r\n                                export interface IEditBusinessPreferenceForAllBusinessesRequest {\r\n                                    systemPreference: SystemPreference,\r\n data: string\r\n                                }\r\n                            \r\n                                export interface IEditBusinessPreferenceForAllBusinessesResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetAllCurrentBusinessPreferencesResult {\r\n                                    businessPreferences: IGetAllCurrentBusinessPreferencesCommandResultBusinessPreference[]\r\n                                }\r\n                            \r\n                                export interface IGetAllCurrentBusinessPreferencesCommandResultBusinessPreference {\r\n                                    id: UUID,\r\n data: string,\r\n businessId: UUID,\r\n systemPreference: SystemPreference\r\n                                }\r\n                           \r\n                                export interface IGetBusinessPreferencesResult {\r\n                                    showEyfsTextBoxes: EyfsTextBoxes,\r\n showEyfsEarlyLearningGoal: boolean,\r\n showAssessmentEyfsCoel: boolean,\r\n showEyfsSpecificAreas: boolean,\r\n setAgebandByHighestSecure: boolean,\r\n setAgebandByHighestVisited: boolean,\r\n setAgebandManually: boolean,\r\n showAssessment2YearCoel: boolean,\r\n showEyfsLearningJourneyReport: boolean,\r\n showNextStepsLearningJourneyReport: boolean,\r\n learningJourneyReportOrderBy: LearningJourneyReportOrder,\r\n checkStaffRotas: boolean,\r\n showObservationCoel: boolean,\r\n showObservationLeuvenScales: boolean,\r\n suggestNextSteps: boolean,\r\n showChildNameType: ChildNameType,\r\n childrenOrderBy: ChildrenOrder,\r\n emergingColor: string,\r\n developingColor: string,\r\n secureColor: string,\r\n showBrandingOnExportedReportsAndAssessments: boolean,\r\n enableArticleApproval: boolean,\r\n updateNewsfeedAutomatically: boolean,\r\n updateNewsfeedEveryday: string,\r\n updateNewsfeedManually: string,\r\n neverUpdateNewsfeed: boolean,\r\n newsfeedAllowCommenting: boolean,\r\n newsfeedReceiveNotification: boolean\r\n                                }\r\n                            \r\n                                export interface IUpdateBusinessPreferencesRequest {\r\n                                    businessPreferences: IUpdateBusinessPreferencesCommandBusinessPreference[]\r\n                                }\r\n                            \r\n                                export interface IUpdateBusinessPreferencesResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                                export interface IUpdateBusinessPreferencesCommandBusinessPreference {\r\n                                    data: string,\r\n preference: SystemPreference\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class BusinessPreferenceCommands {\r\n                    \r\n                            public onCreateBusinessPreference: Subject<IExecutionResult<BusinessPreferenceCommandResult.ICreateBusinessPreferenceCommandResult>> = new Subject();\r\n                        \r\n                            public onEditBusinessPreference: Subject<IExecutionResult<BusinessPreferenceCommandResult.IEditBusinessPreferenceCommandResult>> = new Subject();\r\n                        \r\n                            public onEditBusinessPreferenceForAllBusinesses: Subject<RequestInfo<BusinessPreference.IEditBusinessPreferenceForAllBusinessesRequest, BusinessPreference.IEditBusinessPreferenceForAllBusinessesResult>> = new Subject();\r\n                        \r\n                            public onGetAllCurrentBusinessPreferences: Subject<BusinessPreference.IGetAllCurrentBusinessPreferencesResult> = new Subject();\r\n                        \r\n                            public onGetBusinessPreferences: Subject<BusinessPreference.IGetBusinessPreferencesResult> = new Subject();\r\n                        \r\n                            public onUpdateBusinessPreferences: Subject<RequestInfo<BusinessPreference.IUpdateBusinessPreferencesRequest, BusinessPreference.IUpdateBusinessPreferencesResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async createBusinessPreference(request : BusinessPreferenceCommand.CreateBusinessPreferenceCommand, overridenToken?: string): Promise<IExecutionResult<BusinessPreferenceCommandResult.ICreateBusinessPreferenceCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <BusinessPreferenceCommand.CreateBusinessPreferenceCommand, BusinessPreferenceCommandResult.ICreateBusinessPreferenceCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCreateBusinessPreference.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async editBusinessPreference(request : BusinessPreferenceCommand.EditBusinessPreferenceCommand, overridenToken?: string): Promise<IExecutionResult<BusinessPreferenceCommandResult.IEditBusinessPreferenceCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <BusinessPreferenceCommand.EditBusinessPreferenceCommand, BusinessPreferenceCommandResult.IEditBusinessPreferenceCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onEditBusinessPreference.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                                 public async editBusinessPreferenceForAllBusinesses(request : BusinessPreference.IEditBusinessPreferenceForAllBusinessesRequest, overridenToken?: string): Promise<BusinessPreference.IEditBusinessPreferenceForAllBusinessesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<BusinessPreference.IEditBusinessPreferenceForAllBusinessesRequest, BusinessPreference.IEditBusinessPreferenceForAllBusinessesResult>(request, 'BusinessPreference', 'EditBusinessPreferenceForAllBusinesses', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onEditBusinessPreferenceForAllBusinesses.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllCurrentBusinessPreferences(overridenToken?: string): Promise<BusinessPreference.IGetAllCurrentBusinessPreferencesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},BusinessPreference.IGetAllCurrentBusinessPreferencesResult>({}, 'BusinessPreference', 'GetAllCurrentBusinessPreferences', overridenToken);\r\n                                        \r\n                                            this.onGetAllCurrentBusinessPreferences.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getBusinessPreferences(overridenToken?: string): Promise<BusinessPreference.IGetBusinessPreferencesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},BusinessPreference.IGetBusinessPreferencesResult>({}, 'BusinessPreference', 'GetBusinessPreferences', overridenToken);\r\n                                        \r\n                                            this.onGetBusinessPreferences.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateBusinessPreferences(request : BusinessPreference.IUpdateBusinessPreferencesRequest, overridenToken?: string): Promise<BusinessPreference.IUpdateBusinessPreferencesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<BusinessPreference.IUpdateBusinessPreferencesRequest, BusinessPreference.IUpdateBusinessPreferencesResult>(request, 'BusinessPreference', 'UpdateBusinessPreferences', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateBusinessPreferences.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace BusinessIntegration {\r\n                    \r\n                            export enum EditBusinessIntegrationError {\r\n                                businessIntegrationNotFound = 'businessIntegrationNotFound'\r\n                            }\r\n                        \r\n                                export interface ICreateBusinessIntegrationRequest {\r\n                                    businessIntegrationType: BusinessIntegrationType,\r\n data: string\r\n                                }\r\n                            \r\n                                export interface ICreateBusinessIntegrationResult {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IEditBusinessIntegrationRequest {\r\n                                    businessIntegrationId: UUID,\r\n data: string\r\n                                }\r\n                            \r\n                                export interface IEditBusinessIntegrationResult {\r\n                                    successful: boolean,\r\n errors: EditBusinessIntegrationError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class BusinessIntegrationCommands {\r\n                    \r\n                            public onCreateBusinessIntegration: Subject<RequestInfo<BusinessIntegration.ICreateBusinessIntegrationRequest, BusinessIntegration.ICreateBusinessIntegrationResult>> = new Subject();\r\n                        \r\n                            public onEditBusinessIntegration: Subject<RequestInfo<BusinessIntegration.IEditBusinessIntegrationRequest, BusinessIntegration.IEditBusinessIntegrationResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createBusinessIntegration(request : BusinessIntegration.ICreateBusinessIntegrationRequest, overridenToken?: string): Promise<BusinessIntegration.ICreateBusinessIntegrationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<BusinessIntegration.ICreateBusinessIntegrationRequest, BusinessIntegration.ICreateBusinessIntegrationResult>(request, 'BusinessIntegration', 'CreateBusinessIntegration', overridenToken);\r\n                                        \r\n                                            this.onCreateBusinessIntegration.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async editBusinessIntegration(request : BusinessIntegration.IEditBusinessIntegrationRequest, overridenToken?: string): Promise<BusinessIntegration.IEditBusinessIntegrationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<BusinessIntegration.IEditBusinessIntegrationRequest, BusinessIntegration.IEditBusinessIntegrationResult>(request, 'BusinessIntegration', 'EditBusinessIntegration', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onEditBusinessIntegration.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace Business {\r\n                    \r\n                            export enum GetBusinessOwnedSystemsError {\r\n                                businessNotFound = 'businessNotFound'\r\n                            }\r\n                        \r\n                                export interface ICreateBusinessRequest {\r\n                                    corporationId: UUID,\r\n name: string,\r\n ownedSystems: ParentaSystem,\r\n legacyId: number,\r\n emailAddress: string,\r\n officeType: OfficeType\r\n                                }\r\n                            \r\n                                export interface ICreateBusinessResult {\r\n                                    businessId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetBusinessOwnedSystemsRequest {\r\n                                    legacyBusinessId: number\r\n                                }\r\n                            \r\n                                export interface IGetBusinessOwnedSystemsResult {\r\n                                    successful: boolean,\r\n errors: GetBusinessOwnedSystemsError[],\r\n ownedSystems: ParentaSystem\r\n                                }\r\n                            \r\n                                export interface IGetBusinessesFootstepsRelocationStatusRequest {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IGetBusinessesFootstepsRelocationStatusResult {\r\n                                    successful: boolean,\r\n businesses: IGetBusinessesFootstepsRelocationStatusCommandResultBusinessFootstepsRelocationStatus[]\r\n                                }\r\n                            \r\n                                export interface IGetBusinessesFootstepsRelocationStatusCommandResultBusinessFootstepsRelocationStatus {\r\n                                    businessId: string,\r\n name: string,\r\n legacyId: string,\r\n isRelocatedToClientDatabase: boolean,\r\n cluster: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class BusinessCommands {\r\n                    \r\n                            public onActivateBusiness: Subject<IExecutionResult<BusinessCommandResult.IActivateBusinessCommandResult>> = new Subject();\r\n                        \r\n                            public onAddExternalUserToBusiness: Subject<IExecutionResult<BusinessCommandResult.IAddExternalUserToBusinessCommandResult>> = new Subject();\r\n                        \r\n                            public onDeactivateBusiness: Subject<IExecutionResult<BusinessCommandResult.IDeactivateBusinessCommandResult>> = new Subject();\r\n                        \r\n                            public onRemoveExternalUserFromBusiness: Subject<IExecutionResult<BusinessCommandResult.IRemoveExternalUserFromBusinessCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateBusinessName: Subject<IExecutionResult<BusinessCommandResult.IUpdateBusinessNameCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateOwnedBusiness: Subject<IExecutionResult<BusinessCommandResult.IUpdateOwnedBusinessCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateBusiness: Subject<RequestInfo<Business.ICreateBusinessRequest, Business.ICreateBusinessResult>> = new Subject();\r\n                        \r\n                            public onGetBusinessOwnedSystems: Subject<RequestInfo<Business.IGetBusinessOwnedSystemsRequest, Business.IGetBusinessOwnedSystemsResult>> = new Subject();\r\n                        \r\n                            public onGetBusinessesFootstepsRelocationStatus: Subject<RequestInfo<Business.IGetBusinessesFootstepsRelocationStatusRequest, Business.IGetBusinessesFootstepsRelocationStatusResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async activateBusiness(request : BusinessCommand.ActivateBusinessCommand, overridenToken?: string): Promise<IExecutionResult<BusinessCommandResult.IActivateBusinessCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <BusinessCommand.ActivateBusinessCommand, BusinessCommandResult.IActivateBusinessCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onActivateBusiness.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async addExternalUserToBusiness(request : BusinessCommand.AddExternalUserToBusinessCommand, overridenToken?: string): Promise<IExecutionResult<BusinessCommandResult.IAddExternalUserToBusinessCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <BusinessCommand.AddExternalUserToBusinessCommand, BusinessCommandResult.IAddExternalUserToBusinessCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onAddExternalUserToBusiness.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async deactivateBusiness(request : BusinessCommand.DeactivateBusinessCommand, overridenToken?: string): Promise<IExecutionResult<BusinessCommandResult.IDeactivateBusinessCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <BusinessCommand.DeactivateBusinessCommand, BusinessCommandResult.IDeactivateBusinessCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onDeactivateBusiness.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async removeExternalUserFromBusiness(request : BusinessCommand.RemoveExternalUserFromBusinessCommand, overridenToken?: string): Promise<IExecutionResult<BusinessCommandResult.IRemoveExternalUserFromBusinessCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <BusinessCommand.RemoveExternalUserFromBusinessCommand, BusinessCommandResult.IRemoveExternalUserFromBusinessCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onRemoveExternalUserFromBusiness.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateBusinessName(request : BusinessCommand.UpdateBusinessNameCommand, overridenToken?: string): Promise<IExecutionResult<BusinessCommandResult.IUpdateBusinessNameCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <BusinessCommand.UpdateBusinessNameCommand, BusinessCommandResult.IUpdateBusinessNameCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateBusinessName.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async updateOwnedBusiness(request : BusinessCommand.UpdateOwnedBusinessCommand, overridenToken?: string): Promise<IExecutionResult<BusinessCommandResult.IUpdateOwnedBusinessCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <BusinessCommand.UpdateOwnedBusinessCommand, BusinessCommandResult.IUpdateOwnedBusinessCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onUpdateOwnedBusiness.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                                 public async createBusiness(request : Business.ICreateBusinessRequest, overridenToken?: string): Promise<Business.ICreateBusinessResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Business.ICreateBusinessRequest, Business.ICreateBusinessResult>(request, 'Business', 'CreateBusiness', overridenToken);\r\n                                        \r\n                                            this.onCreateBusiness.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getBusinessOwnedSystems(request : Business.IGetBusinessOwnedSystemsRequest, overridenToken?: string): Promise<Business.IGetBusinessOwnedSystemsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Business.IGetBusinessOwnedSystemsRequest, Business.IGetBusinessOwnedSystemsResult>(request, 'Business', 'GetBusinessOwnedSystems', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetBusinessOwnedSystems.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getBusinessesFootstepsRelocationStatus(request : Business.IGetBusinessesFootstepsRelocationStatusRequest, overridenToken?: string): Promise<Business.IGetBusinessesFootstepsRelocationStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Business.IGetBusinessesFootstepsRelocationStatusRequest, Business.IGetBusinessesFootstepsRelocationStatusResult>(request, 'Business', 'GetBusinessesFootstepsRelocationStatus', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetBusinessesFootstepsRelocationStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace Auth {\r\n                    \r\n                            export enum AbacusLegacyLoginError {\r\n                                passwordIncorrect = 'passwordIncorrect',\r\n                                businessNotActive = 'businessNotActive',\r\n                                businessNotMigrated = 'businessNotMigrated',\r\n                                emailLoginRequired = 'emailLoginRequired',\r\n                                accountOrIpLocked = 'accountOrIpLocked',\r\n                                accountIsLocked = 'accountIsLocked',\r\n                                accountIsDisabled = 'accountIsDisabled'\r\n                            }\r\n                        \r\n                            export enum CreateBusinessAuthTokenError {\r\n                                noBusinessExistsForId = 'noBusinessExistsForId'\r\n                            }\r\n                        \r\n                            export enum CreateBusinessAuthTokenFromLegacyIdError {\r\n                                businessNotFound = 'businessNotFound',\r\n                                failedToCreateAuthToken = 'failedToCreateAuthToken'\r\n                            }\r\n                        \r\n                            export enum CreateParentaServicesCarerLoginError {\r\n                                carerNotFound = 'carerNotFound',\r\n                                nurseryNotFound = 'nurseryNotFound',\r\n                                emailIsUsed = 'emailIsUsed',\r\n                                userHasBeenUpdated = 'userHasBeenUpdated',\r\n                                passwordIsNotStrong = 'passwordIsNotStrong'\r\n                            }\r\n                        \r\n                            export enum Footsteps2LegacyLoginError {\r\n                                passwordIncorrect = 'passwordIncorrect',\r\n                                businessNotActive = 'businessNotActive',\r\n                                businessNotMigrated = 'businessNotMigrated',\r\n                                appVersionTooOld = 'appVersionTooOld',\r\n                                mustUseEmailLogin = 'mustUseEmailLogin',\r\n                                accountOrIpLocked = 'accountOrIpLocked',\r\n                                accountIsLocked = 'accountIsLocked',\r\n                                accountIsDisabled = 'accountIsDisabled'\r\n                            }\r\n                        \r\n                            export enum GetParentaServicesCarerLoginError {\r\n                                adult2GuidRequired = 'adult2GuidRequired',\r\n                                nurseryNotFound = 'nurseryNotFound',\r\n                                carerNotFound = 'carerNotFound'\r\n                            }\r\n                        \r\n                            export enum LogOutCurrentUserError {\r\n                                userDoesNotExist = 'userDoesNotExist'\r\n                            }\r\n                        \r\n                            export enum ParentaServicesCarerLoginError {\r\n                                passwordIsRequired = 'passwordIsRequired',\r\n                                passwordIsIncorrect = 'passwordIsIncorrect',\r\n                                passwordExpired = 'passwordExpired',\r\n                                emailAddressDoesNotExist = 'emailAddressDoesNotExist',\r\n                                emailAddressIsNotUnique = 'emailAddressIsNotUnique',\r\n                                businessDoesNotExist = 'businessDoesNotExist',\r\n                                businessNotActive = 'businessNotActive',\r\n                                accountOrIpLocked = 'accountOrIpLocked'\r\n                            }\r\n                        \r\n                                export interface IAbacusLegacyLoginRequest {\r\n                                    uniqueId: string,\r\n character1: string,\r\n characterPosition1: number,\r\n character2: string,\r\n characterPosition2: number,\r\n character3: string,\r\n characterPosition3: number\r\n                                }\r\n                            \r\n                                export interface IAbacusLegacyLoginResult {\r\n                                    authToken: string,\r\n legacyId: number,\r\n uniqueId: string,\r\n expireDate: string | moment.Moment | Date,\r\n userId: UUID,\r\n emailAddress: string,\r\n name: string,\r\n nurseryName: string,\r\n businessId: UUID,\r\n businessLegacyId: number,\r\n successful: boolean,\r\n hasAccessToDayshare: boolean,\r\n hasAccessToFootsteps2: boolean,\r\n hasAccessToAbacus: boolean,\r\n nurseryHasDayShare: boolean,\r\n nurseryHasFootsteps2: boolean,\r\n errors: AbacusLegacyLoginError[]\r\n                                }\r\n                            \r\n                                export interface ICreateBusinessAuthTokenRequest {\r\n                                    businessId: UUID\r\n                                }\r\n                            \r\n                                export interface ICreateBusinessAuthTokenResult {\r\n                                    token: string,\r\n successful: boolean,\r\n officeType: OfficeType,\r\n errors: CreateBusinessAuthTokenError[]\r\n                                }\r\n                            \r\n                                export interface ICreateBusinessAuthTokenFromLegacyIdRequest {\r\n                                    nurseryId: number\r\n                                }\r\n                            \r\n                                export interface ICreateBusinessAuthTokenFromLegacyIdResult {\r\n                                    token: string,\r\n successful: boolean,\r\n officeType: OfficeType,\r\n errors: CreateBusinessAuthTokenFromLegacyIdError[]\r\n                                }\r\n                            \r\n                                export interface ICreateParentaServicesCarerLoginRequest {\r\n                                    password: string,\r\n emailAddress: string\r\n                                }\r\n                            \r\n                                export interface ICreateParentaServicesCarerLoginResult {\r\n                                    errors: CreateParentaServicesCarerLoginError[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                                export interface IFootsteps2LegacyLoginRequest {\r\n                                    uniqueId: string,\r\n character1: string,\r\n characterPosition1: number,\r\n character2: string,\r\n characterPosition2: number,\r\n character3: string,\r\n characterPosition3: number,\r\n clientAppVersion: string\r\n                                }\r\n                            \r\n                                export interface IFootsteps2LegacyLoginResult {\r\n                                    authToken: string,\r\n userId: UUID,\r\n businessId: UUID,\r\n successful: boolean,\r\n hasAccessToFootsteps2: boolean,\r\n nurseryHasFootsteps2: boolean,\r\n errors: Footsteps2LegacyLoginError[],\r\n requiredAppVersion: string,\r\n isStandalone: boolean,\r\n nurseryID: number\r\n                                }\r\n                            \r\n                                export interface IGetAuthenticatedUserInfoResult {\r\n                                    authRole: AuthRole,\r\n userId: UUID | null,\r\n tokenExpiry: string | moment.Moment | Date,\r\n businessId: UUID | null,\r\n nurseryId: number | null,\r\n legacyUserId: number | null,\r\n userCode: ParentaServicesUserCode,\r\n legacyBusinessGuid: UUID | null,\r\n authDescription: string\r\n                                }\r\n                            \r\n                                export interface IGetParentaServicesCarerLoginRequest {\r\n                                    adults2Guid: UUID\r\n                                }\r\n                            \r\n                                export interface IGetParentaServicesCarerLoginResult {\r\n                                    successful: boolean,\r\n hasCarerLogin: boolean,\r\n carerLoginEmail: string,\r\n errors: GetParentaServicesCarerLoginError[]\r\n                                }\r\n                            \r\n                                export interface ILogOutCurrentUserResult {\r\n                                    successful: boolean,\r\n errors: LogOutCurrentUserError[]\r\n                                }\r\n                            \r\n                                export interface IParentaServicesCarerLoginRequest {\r\n                                    emailAddress: string,\r\n password: string\r\n                                }\r\n                            \r\n                                export interface IParentaServicesCarerLoginResult {\r\n                                    successful: boolean,\r\n errors: ParentaServicesCarerLoginError[],\r\n authToken: string,\r\n userId: UUID,\r\n expireDate: string | moment.Moment | Date,\r\n businessId: UUID,\r\n businessLegacyId: number,\r\n carerLegacyId: string,\r\n name: string,\r\n shouldResetPassword: boolean,\r\n footsteps2Standalone: boolean,\r\n hasFootsteps2: boolean,\r\n parentMessagingEnabled: boolean\r\n                                }\r\n                            \r\n                                export interface IRefreshTokenResult {\r\n                                    token: string,\r\n tokenExpiry: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface ICreateTemporaryAbacusImageTokenResult {\r\n                                    isSuccessful: boolean,\r\n token: string\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AuthCommands {\r\n                    \r\n                            public onCheckPassword: Subject<IExecutionResult<AuthCommandResult.ICheckPasswordCommandResult>> = new Subject();\r\n                        \r\n                            public onCheckUserAuth: Subject<IExecutionResult<AuthCommandResult.ICheckUserAuthCommandResult>> = new Subject();\r\n                        \r\n                            public onLoginParentaStaffUser: Subject<IExecutionResult<AuthCommandResult.ILoginParentaStaffUserCommandResult>> = new Subject();\r\n                        \r\n                            public onRenewToken: Subject<IExecutionResult<AuthCommandResult.IRenewTokenCommandResult>> = new Subject();\r\n                        \r\n                            public onAbacusLegacyLogin: Subject<RequestInfo<Auth.IAbacusLegacyLoginRequest, Auth.IAbacusLegacyLoginResult>> = new Subject();\r\n                        \r\n                            public onCreateBusinessAuthToken: Subject<RequestInfo<Auth.ICreateBusinessAuthTokenRequest, Auth.ICreateBusinessAuthTokenResult>> = new Subject();\r\n                        \r\n                            public onCreateBusinessAuthTokenFromLegacyId: Subject<RequestInfo<Auth.ICreateBusinessAuthTokenFromLegacyIdRequest, Auth.ICreateBusinessAuthTokenFromLegacyIdResult>> = new Subject();\r\n                        \r\n                            public onCreateParentaServicesCarerLogin: Subject<RequestInfo<Auth.ICreateParentaServicesCarerLoginRequest, Auth.ICreateParentaServicesCarerLoginResult>> = new Subject();\r\n                        \r\n                            public onFootsteps2LegacyLogin: Subject<RequestInfo<Auth.IFootsteps2LegacyLoginRequest, Auth.IFootsteps2LegacyLoginResult>> = new Subject();\r\n                        \r\n                            public onGetAuthenticatedUserInfo: Subject<Auth.IGetAuthenticatedUserInfoResult> = new Subject();\r\n                        \r\n                            public onGetParentaServicesCarerLogin: Subject<RequestInfo<Auth.IGetParentaServicesCarerLoginRequest, Auth.IGetParentaServicesCarerLoginResult>> = new Subject();\r\n                        \r\n                            public onLogOutCurrentUser: Subject<Auth.ILogOutCurrentUserResult> = new Subject();\r\n                        \r\n                            public onParentaServicesCarerLogin: Subject<RequestInfo<Auth.IParentaServicesCarerLoginRequest, Auth.IParentaServicesCarerLoginResult>> = new Subject();\r\n                        \r\n                            public onRefreshToken: Subject<Auth.IRefreshTokenResult> = new Subject();\r\n                        \r\n                            public onCreateTemporaryAbacusImageToken: Subject<Auth.ICreateTemporaryAbacusImageTokenResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                            public async checkPassword(request : AuthCommand.CheckPasswordCommand, overridenToken?: string): Promise<IExecutionResult<AuthCommandResult.ICheckPasswordCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <AuthCommand.CheckPasswordCommand, AuthCommandResult.ICheckPasswordCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCheckPassword.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async checkUserAuth(request : AuthCommand.CheckUserAuthCommand, overridenToken?: string): Promise<IExecutionResult<AuthCommandResult.ICheckUserAuthCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <AuthCommand.CheckUserAuthCommand, AuthCommandResult.ICheckUserAuthCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onCheckUserAuth.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async loginParentaStaffUser(request : AuthCommand.LoginParentaStaffUserCommand, overridenToken?: string): Promise<IExecutionResult<AuthCommandResult.ILoginParentaStaffUserCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <AuthCommand.LoginParentaStaffUserCommand, AuthCommandResult.ILoginParentaStaffUserCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onLoginParentaStaffUser.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                            public async renewToken(request : AuthCommand.RenewTokenCommand, overridenToken?: string): Promise<IExecutionResult<AuthCommandResult.IRenewTokenCommandResult>> {\r\n                                let response = await this.sauronService.executeCommand <AuthCommand.RenewTokenCommand, AuthCommandResult.IRenewTokenCommandResult>\r\n                                (request, overridenToken);\r\n                                this.onRenewToken.next(response);\r\n                                return response;\r\n                             }\r\n                        \r\n                                 public async abacusLegacyLogin(request : Auth.IAbacusLegacyLoginRequest, overridenToken?: string): Promise<Auth.IAbacusLegacyLoginResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Auth.IAbacusLegacyLoginRequest, Auth.IAbacusLegacyLoginResult>(request, 'Auth', 'AbacusLegacyLogin', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onAbacusLegacyLogin.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createBusinessAuthToken(request : Auth.ICreateBusinessAuthTokenRequest, overridenToken?: string): Promise<Auth.ICreateBusinessAuthTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Auth.ICreateBusinessAuthTokenRequest, Auth.ICreateBusinessAuthTokenResult>(request, 'Auth', 'CreateBusinessAuthToken', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateBusinessAuthToken.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createBusinessAuthTokenFromLegacyId(request : Auth.ICreateBusinessAuthTokenFromLegacyIdRequest, overridenToken?: string): Promise<Auth.ICreateBusinessAuthTokenFromLegacyIdResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Auth.ICreateBusinessAuthTokenFromLegacyIdRequest, Auth.ICreateBusinessAuthTokenFromLegacyIdResult>(request, 'Auth', 'CreateBusinessAuthTokenFromLegacyId', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateBusinessAuthTokenFromLegacyId.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createParentaServicesCarerLogin(request : Auth.ICreateParentaServicesCarerLoginRequest, overridenToken?: string): Promise<Auth.ICreateParentaServicesCarerLoginResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Auth.ICreateParentaServicesCarerLoginRequest, Auth.ICreateParentaServicesCarerLoginResult>(request, 'Auth', 'CreateParentaServicesCarerLogin', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateParentaServicesCarerLogin.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async footsteps2LegacyLogin(request : Auth.IFootsteps2LegacyLoginRequest, overridenToken?: string): Promise<Auth.IFootsteps2LegacyLoginResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Auth.IFootsteps2LegacyLoginRequest, Auth.IFootsteps2LegacyLoginResult>(request, 'Auth', 'Footsteps2LegacyLogin', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onFootsteps2LegacyLogin.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAuthenticatedUserInfo(overridenToken?: string): Promise<Auth.IGetAuthenticatedUserInfoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},Auth.IGetAuthenticatedUserInfoResult>({}, 'Auth', 'GetAuthenticatedUserInfo', overridenToken);\r\n                                        \r\n                                            this.onGetAuthenticatedUserInfo.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getParentaServicesCarerLogin(request : Auth.IGetParentaServicesCarerLoginRequest, overridenToken?: string): Promise<Auth.IGetParentaServicesCarerLoginResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Auth.IGetParentaServicesCarerLoginRequest, Auth.IGetParentaServicesCarerLoginResult>(request, 'Auth', 'GetParentaServicesCarerLogin', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetParentaServicesCarerLogin.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async logOutCurrentUser(overridenToken?: string): Promise<Auth.ILogOutCurrentUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},Auth.ILogOutCurrentUserResult>({}, 'Auth', 'LogOutCurrentUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onLogOutCurrentUser.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async parentaServicesCarerLogin(request : Auth.IParentaServicesCarerLoginRequest, overridenToken?: string): Promise<Auth.IParentaServicesCarerLoginResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Auth.IParentaServicesCarerLoginRequest, Auth.IParentaServicesCarerLoginResult>(request, 'Auth', 'ParentaServicesCarerLogin', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onParentaServicesCarerLogin.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async refreshToken(overridenToken?: string): Promise<Auth.IRefreshTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},Auth.IRefreshTokenResult>({}, 'Auth', 'RefreshToken', overridenToken);\r\n                                        \r\n                                            this.onRefreshToken.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async createTemporaryAbacusImageToken(overridenToken?: string): Promise<Auth.ICreateTemporaryAbacusImageTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},Auth.ICreateTemporaryAbacusImageTokenResult>({}, 'Auth', 'CreateTemporaryAbacusImageToken', overridenToken);\r\n                                        \r\n                                            this.onCreateTemporaryAbacusImageToken.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FeatureToggles {\r\n                    \r\n                            export enum AddFeatureToNurseryUpdateOutCome {\r\n                                newKeyNotAllowed = 'newKeyNotAllowed',\r\n                                updated = 'updated',\r\n                                alreadyAll = 'alreadyAll',\r\n                                nurseryAlreadyThere = 'nurseryAlreadyThere'\r\n                            }\r\n                        \r\n                                export interface IGetEnabledFeatureTogglesResult {\r\n                                    featureKeys: string[]\r\n                                }\r\n                            \r\n                                export interface IAddFeatureToNurseryRequest {\r\n                                    featureKey: string\r\n                                }\r\n                            \r\n                                export interface IAddFeatureToNurseryResult {\r\n                                    outCome: AddFeatureToNurseryUpdateOutCome\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FeatureTogglesCommands {\r\n                    \r\n                            public onGetEnabledFeatureToggles: Subject<FeatureToggles.IGetEnabledFeatureTogglesResult> = new Subject();\r\n                        \r\n                            public onAddFeatureToNursery: Subject<RequestInfo<FeatureToggles.IAddFeatureToNurseryRequest, FeatureToggles.IAddFeatureToNurseryResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getEnabledFeatureToggles(overridenToken?: string): Promise<FeatureToggles.IGetEnabledFeatureTogglesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FeatureToggles.IGetEnabledFeatureTogglesResult>({}, 'FeatureToggles', 'GetEnabledFeatureToggles', overridenToken);\r\n                                        \r\n                                            this.onGetEnabledFeatureToggles.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async addFeatureToNursery(request : FeatureToggles.IAddFeatureToNurseryRequest, overridenToken?: string): Promise<FeatureToggles.IAddFeatureToNurseryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FeatureToggles.IAddFeatureToNurseryRequest, FeatureToggles.IAddFeatureToNurseryResult>(request, 'FeatureToggles', 'AddFeatureToNursery', overridenToken);\r\n                                        \r\n                                            this.onAddFeatureToNursery.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace Address {\r\n                    \r\n                            export enum GetFullAddressError {\r\n                                addressNotFound = 'addressNotFound'\r\n                            }\r\n                        \r\n                                export interface IGetFullAddressRequest {\r\n                                    postcode: string,\r\n houseNo: string\r\n                                }\r\n                            \r\n                                export interface IGetFullAddressResult {\r\n                                    successful: boolean,\r\n errors: GetFullAddressError[],\r\n addressLine1: string,\r\n addressLine2: string,\r\n city: string,\r\n county: string\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AddressCommands {\r\n                    \r\n                            public onGetFullAddress: Subject<RequestInfo<Address.IGetFullAddressRequest, Address.IGetFullAddressResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getFullAddress(request : Address.IGetFullAddressRequest, overridenToken?: string): Promise<Address.IGetFullAddressResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<Address.IGetFullAddressRequest, Address.IGetFullAddressResult>(request, 'Address', 'GetFullAddress', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetFullAddress.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalAuthentication {\r\n                    \r\n                                export interface IAuthenticatePushSubscriberResult {\r\n                                    externalSubscriberId: string,\r\n signature: string\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalAuthenticationCommands {\r\n                    \r\n                            public onAuthenticatePushSubscriber: Subject<ParentPortalAuthentication.IAuthenticatePushSubscriberResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async authenticatePushSubscriber(overridenToken?: string): Promise<ParentPortalAuthentication.IAuthenticatePushSubscriberResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},ParentPortalAuthentication.IAuthenticatePushSubscriberResult>({}, 'ParentPortalAuthentication', 'AuthenticatePushSubscriber', overridenToken);\r\n                                        \r\n                                            this.onAuthenticatePushSubscriber.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalEcho {\r\n                    \r\n                                export interface IParentPortalEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface IParentPortalEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalEchoCommands {\r\n                    \r\n                            public onParentPortalEcho: Subject<RequestInfo<ParentPortalEcho.IParentPortalEchoRequest, ParentPortalEcho.IParentPortalEchoResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async parentPortalEcho(request : ParentPortalEcho.IParentPortalEchoRequest, overridenToken?: string): Promise<ParentPortalEcho.IParentPortalEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalEcho.IParentPortalEchoRequest, ParentPortalEcho.IParentPortalEchoResult>(request, 'ParentPortalEcho', 'ParentPortalEcho', overridenToken);\r\n                                        \r\n                                            this.onParentPortalEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalChildren {\r\n                    \r\n                            export enum CheckInChildError {\r\n                                noSessionToCheckInTo = 'noSessionToCheckInTo',\r\n                                childNotFound = 'childNotFound',\r\n                                nurseryCheckInGuidIncorrect = 'nurseryCheckInGuidIncorrect',\r\n                                alreadyCheckedInRecently = 'alreadyCheckedInRecently',\r\n                                checkInNotEnabledForNursery = 'checkInNotEnabledForNursery',\r\n                                childNotRelatedToCurrentCarer = 'childNotRelatedToCurrentCarer'\r\n                            }\r\n                        \r\n                                export interface ICheckInChildRequest {\r\n                                    childGuid: UUID,\r\n nurseryCheckInGuid: UUID\r\n                                }\r\n                            \r\n                                export interface ICheckInChildResult {\r\n                                    successful: boolean,\r\n errors: CheckInChildError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalChildrenCommands {\r\n                    \r\n                            public onCheckInChild: Subject<RequestInfo<ParentPortalChildren.ICheckInChildRequest, ParentPortalChildren.ICheckInChildResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async checkInChild(request : ParentPortalChildren.ICheckInChildRequest, overridenToken?: string): Promise<ParentPortalChildren.ICheckInChildResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalChildren.ICheckInChildRequest, ParentPortalChildren.ICheckInChildResult>(request, 'ParentPortalChildren', 'CheckInChild', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCheckInChild.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalPermissions {\r\n                    \r\n                                export interface IGetFilteredCurrentUserPermissionsRequest {\r\n                                    permissionKeys: string[]\r\n                                }\r\n                            \r\n                                export interface IGetFilteredCurrentUserPermissionsResult {\r\n                                    permissions: IGetFilteredCurrentUserPermissionsCommandResultPermissionStatusModel[]\r\n                                }\r\n                            \r\n                                export interface IGetFilteredCurrentUserPermissionsCommandResultPermissionStatusModel {\r\n                                    permissionKey: string,\r\n granted: boolean\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalPermissionsCommands {\r\n                    \r\n                            public onGetFilteredCurrentUserPermissions: Subject<RequestInfo<ParentPortalPermissions.IGetFilteredCurrentUserPermissionsRequest, ParentPortalPermissions.IGetFilteredCurrentUserPermissionsResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getFilteredCurrentUserPermissions(request : ParentPortalPermissions.IGetFilteredCurrentUserPermissionsRequest, overridenToken?: string): Promise<ParentPortalPermissions.IGetFilteredCurrentUserPermissionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalPermissions.IGetFilteredCurrentUserPermissionsRequest, ParentPortalPermissions.IGetFilteredCurrentUserPermissionsResult>(request, 'ParentPortalPermissions', 'GetFilteredCurrentUserPermissions', overridenToken);\r\n                                        \r\n                                            this.onGetFilteredCurrentUserPermissions.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalPayments {\r\n                    \r\n                            export enum SetUpCarerDirectDebitError {\r\n                                nurseryNotOnboarded = 'nurseryNotOnboarded',\r\n                                directDebitAlreadySetup = 'directDebitAlreadySetup'\r\n                            }\r\n                        \r\n                            export enum CancelCarerDirectDebitError {\r\n                                nurseryNotOnboarded = 'nurseryNotOnboarded',\r\n                                carerHasNoPaymentMethodsSetup = 'carerHasNoPaymentMethodsSetup',\r\n                                paymentMethodIdNotFoundForCarer = 'paymentMethodIdNotFoundForCarer'\r\n                            }\r\n                        \r\n                                export interface ISetUpCarerDirectDebitResult {\r\n                                    successful: boolean,\r\n errors: SetUpCarerDirectDebitError[],\r\n directDebitSetupLink: string\r\n                                }\r\n                            \r\n                                export interface ICancelCarerDirectDebitRequest {\r\n                                    paymentMethodId: UUID\r\n                                }\r\n                            \r\n                                export interface ICancelCarerDirectDebitResult {\r\n                                    successful: boolean,\r\n errors: CancelCarerDirectDebitError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalPaymentsCommands {\r\n                    \r\n                            public onSetUpCarerDirectDebit: Subject<ParentPortalPayments.ISetUpCarerDirectDebitResult> = new Subject();\r\n                        \r\n                            public onCancelCarerDirectDebit: Subject<RequestInfo<ParentPortalPayments.ICancelCarerDirectDebitRequest, ParentPortalPayments.ICancelCarerDirectDebitResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async setUpCarerDirectDebit(overridenToken?: string): Promise<ParentPortalPayments.ISetUpCarerDirectDebitResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},ParentPortalPayments.ISetUpCarerDirectDebitResult>({}, 'ParentPortalPayments', 'SetUpCarerDirectDebit', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSetUpCarerDirectDebit.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async cancelCarerDirectDebit(request : ParentPortalPayments.ICancelCarerDirectDebitRequest, overridenToken?: string): Promise<ParentPortalPayments.ICancelCarerDirectDebitResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalPayments.ICancelCarerDirectDebitRequest, ParentPortalPayments.ICancelCarerDirectDebitResult>(request, 'ParentPortalPayments', 'CancelCarerDirectDebit', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCancelCarerDirectDebit.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalNotifications {\r\n                    \r\n                            export enum SendAccidentNotificationError {\r\n                                notificationIsMissing = 'notificationIsMissing',\r\n                                accidentNotFound = 'accidentNotFound',\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                                export interface ISendSleepNotificationRequest {\r\n                                    childId: UUID,\r\n title: string,\r\n description: string,\r\n dateStart: string | moment.Moment | Date,\r\n dateEnd: string | moment.Moment | Date,\r\n isUpdate: boolean\r\n                                }\r\n                            \r\n                                export interface ISendSleepNotificationResult {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface ISendActivityNotificationRequest {\r\n                                    childId: UUID,\r\n title: string,\r\n description: string,\r\n isPhotoAddition: boolean\r\n                                }\r\n                            \r\n                                export interface ISendActivityNotificationResult {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface ISendInvoiceNotificationRequest {\r\n                                    childId: UUID,\r\n invoiceNumber: string\r\n                                }\r\n                            \r\n                                export interface ISendInvoiceNotificationResult {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface ISendAccidentNotificationRequest {\r\n                                    accidentId: number,\r\n notificationType: SendAccidentNotificationType\r\n                                }\r\n                            \r\n                                export interface ISendAccidentNotificationResult {\r\n                                    successful: boolean,\r\n errors: SendAccidentNotificationError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalNotificationsCommands {\r\n                    \r\n                            public onSendSleepNotification: Subject<RequestInfo<ParentPortalNotifications.ISendSleepNotificationRequest, ParentPortalNotifications.ISendSleepNotificationResult>> = new Subject();\r\n                        \r\n                            public onSendActivityNotification: Subject<RequestInfo<ParentPortalNotifications.ISendActivityNotificationRequest, ParentPortalNotifications.ISendActivityNotificationResult>> = new Subject();\r\n                        \r\n                            public onSendInvoiceNotification: Subject<RequestInfo<ParentPortalNotifications.ISendInvoiceNotificationRequest, ParentPortalNotifications.ISendInvoiceNotificationResult>> = new Subject();\r\n                        \r\n                            public onSendAccidentNotification: Subject<RequestInfo<ParentPortalNotifications.ISendAccidentNotificationRequest, ParentPortalNotifications.ISendAccidentNotificationResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async sendSleepNotification(request : ParentPortalNotifications.ISendSleepNotificationRequest, overridenToken?: string): Promise<ParentPortalNotifications.ISendSleepNotificationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalNotifications.ISendSleepNotificationRequest, ParentPortalNotifications.ISendSleepNotificationResult>(request, 'ParentPortalNotifications', 'SendSleepNotification', overridenToken);\r\n                                        \r\n                                            this.onSendSleepNotification.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendActivityNotification(request : ParentPortalNotifications.ISendActivityNotificationRequest, overridenToken?: string): Promise<ParentPortalNotifications.ISendActivityNotificationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalNotifications.ISendActivityNotificationRequest, ParentPortalNotifications.ISendActivityNotificationResult>(request, 'ParentPortalNotifications', 'SendActivityNotification', overridenToken);\r\n                                        \r\n                                            this.onSendActivityNotification.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendInvoiceNotification(request : ParentPortalNotifications.ISendInvoiceNotificationRequest, overridenToken?: string): Promise<ParentPortalNotifications.ISendInvoiceNotificationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalNotifications.ISendInvoiceNotificationRequest, ParentPortalNotifications.ISendInvoiceNotificationResult>(request, 'ParentPortalNotifications', 'SendInvoiceNotification', overridenToken);\r\n                                        \r\n                                            this.onSendInvoiceNotification.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendAccidentNotification(request : ParentPortalNotifications.ISendAccidentNotificationRequest, overridenToken?: string): Promise<ParentPortalNotifications.ISendAccidentNotificationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalNotifications.ISendAccidentNotificationRequest, ParentPortalNotifications.ISendAccidentNotificationResult>(request, 'ParentPortalNotifications', 'SendAccidentNotification', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendAccidentNotification.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalAccidents {\r\n                    \r\n                            export enum AcknowledgeAccidentError {\r\n                                accidentNotFound = 'accidentNotFound',\r\n                                accidentAlreadyAcknowledged = 'accidentAlreadyAcknowledged'\r\n                            }\r\n                        \r\n                                export interface IAcknowledgeAccidentRequest {\r\n                                    accidentId: number\r\n                                }\r\n                            \r\n                                export interface IAcknowledgeAccidentResult {\r\n                                    successful: boolean,\r\n errors: AcknowledgeAccidentError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalAccidentsCommands {\r\n                    \r\n                            public onAcknowledgeAccident: Subject<RequestInfo<ParentPortalAccidents.IAcknowledgeAccidentRequest, ParentPortalAccidents.IAcknowledgeAccidentResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async acknowledgeAccident(request : ParentPortalAccidents.IAcknowledgeAccidentRequest, overridenToken?: string): Promise<ParentPortalAccidents.IAcknowledgeAccidentResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalAccidents.IAcknowledgeAccidentRequest, ParentPortalAccidents.IAcknowledgeAccidentResult>(request, 'ParentPortalAccidents', 'AcknowledgeAccident', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onAcknowledgeAccident.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalCarerEmailLogin {\r\n                    \r\n                            export enum CreateCarerEmailLoginError {\r\n                                nurseryNotFound = 'nurseryNotFound',\r\n                                carerNotFound = 'carerNotFound',\r\n                                emailAddressAlreadyExists = 'emailAddressAlreadyExists',\r\n                                invalidEmailAddress = 'invalidEmailAddress',\r\n                                carerLoginAlreadyExists = 'carerLoginAlreadyExists'\r\n                            }\r\n                        \r\n                            export enum ResetCarerTemporaryPasswordError {\r\n                                carerNotFound = 'carerNotFound',\r\n                                carerLoginNotFound = 'carerLoginNotFound'\r\n                            }\r\n                        \r\n                            export enum DeleteCarerEmailLoginError {\r\n                                noIdPassed = 'noIdPassed',\r\n                                adultNotFound = 'adultNotFound',\r\n                                adultLoginFound = 'adultLoginFound'\r\n                            }\r\n                        \r\n                            export enum SendBulkParentPortalInvitesError {\r\n                                carerNotFound = 'carerNotFound',\r\n                                noEligibleChildren = 'noEligibleChildren',\r\n                                invalidEmailAddress = 'invalidEmailAddress',\r\n                                emailAddressAlreadyExists = 'emailAddressAlreadyExists',\r\n                                nurseryNotFound = 'nurseryNotFound'\r\n                            }\r\n                        \r\n                                export interface ICreateCarerEmailLoginRequest {\r\n                                    adultId: UUID,\r\n emailAddress: string,\r\n childIds: number[]\r\n                                }\r\n                            \r\n                                export interface ICreateCarerEmailLoginResult {\r\n                                    success: boolean,\r\n errors: CreateCarerEmailLoginError[]\r\n                                }\r\n                            \r\n                                export interface IResetCarerTemporaryPasswordRequest {\r\n                                    adults2Guid: UUID\r\n                                }\r\n                            \r\n                                export interface IResetCarerTemporaryPasswordResult {\r\n                                    successful: boolean,\r\n errors: ResetCarerTemporaryPasswordError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteCarerEmailLoginRequest {\r\n                                    adultId: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteCarerEmailLoginResult {\r\n                                    success: boolean,\r\n errors: DeleteCarerEmailLoginError[]\r\n                                }\r\n                            \r\n                                export interface ISendBulkParentPortalInvitesRequest {\r\n                                    adultsGuids: UUID[]\r\n                                }\r\n                            \r\n                                export interface ISendBulkParentPortalInvitesResult {\r\n                                    successful: boolean,\r\n outcomes: ISendBulkParentPortalInvitesCommandResultCarerInviteOutcome[]\r\n                                }\r\n                            \r\n                                export interface ISendBulkParentPortalInvitesCommandResultCarerInviteOutcome {\r\n                                    adultsGuid: UUID,\r\n succeeded: boolean,\r\n failureReason: SendBulkParentPortalInvitesError | null\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalCarerEmailLoginCommands {\r\n                    \r\n                            public onCreateCarerEmailLogin: Subject<RequestInfo<ParentPortalCarerEmailLogin.ICreateCarerEmailLoginRequest, ParentPortalCarerEmailLogin.ICreateCarerEmailLoginResult>> = new Subject();\r\n                        \r\n                            public onResetCarerTemporaryPassword: Subject<RequestInfo<ParentPortalCarerEmailLogin.IResetCarerTemporaryPasswordRequest, ParentPortalCarerEmailLogin.IResetCarerTemporaryPasswordResult>> = new Subject();\r\n                        \r\n                            public onDeleteCarerEmailLogin: Subject<RequestInfo<ParentPortalCarerEmailLogin.IDeleteCarerEmailLoginRequest, ParentPortalCarerEmailLogin.IDeleteCarerEmailLoginResult>> = new Subject();\r\n                        \r\n                            public onSendBulkParentPortalInvites: Subject<RequestInfo<ParentPortalCarerEmailLogin.ISendBulkParentPortalInvitesRequest, ParentPortalCarerEmailLogin.ISendBulkParentPortalInvitesResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createCarerEmailLogin(request : ParentPortalCarerEmailLogin.ICreateCarerEmailLoginRequest, overridenToken?: string): Promise<ParentPortalCarerEmailLogin.ICreateCarerEmailLoginResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalCarerEmailLogin.ICreateCarerEmailLoginRequest, ParentPortalCarerEmailLogin.ICreateCarerEmailLoginResult>(request, 'ParentPortalCarerEmailLogin', 'CreateCarerEmailLogin', overridenToken);\r\n                                        \r\n                                            this.onCreateCarerEmailLogin.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async resetCarerTemporaryPassword(request : ParentPortalCarerEmailLogin.IResetCarerTemporaryPasswordRequest, overridenToken?: string): Promise<ParentPortalCarerEmailLogin.IResetCarerTemporaryPasswordResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalCarerEmailLogin.IResetCarerTemporaryPasswordRequest, ParentPortalCarerEmailLogin.IResetCarerTemporaryPasswordResult>(request, 'ParentPortalCarerEmailLogin', 'ResetCarerTemporaryPassword', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onResetCarerTemporaryPassword.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteCarerEmailLogin(request : ParentPortalCarerEmailLogin.IDeleteCarerEmailLoginRequest, overridenToken?: string): Promise<ParentPortalCarerEmailLogin.IDeleteCarerEmailLoginResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalCarerEmailLogin.IDeleteCarerEmailLoginRequest, ParentPortalCarerEmailLogin.IDeleteCarerEmailLoginResult>(request, 'ParentPortalCarerEmailLogin', 'DeleteCarerEmailLogin', overridenToken);\r\n                                        \r\n                                            this.onDeleteCarerEmailLogin.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendBulkParentPortalInvites(request : ParentPortalCarerEmailLogin.ISendBulkParentPortalInvitesRequest, overridenToken?: string): Promise<ParentPortalCarerEmailLogin.ISendBulkParentPortalInvitesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalCarerEmailLogin.ISendBulkParentPortalInvitesRequest, ParentPortalCarerEmailLogin.ISendBulkParentPortalInvitesResult>(request, 'ParentPortalCarerEmailLogin', 'SendBulkParentPortalInvites', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendBulkParentPortalInvites.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalData {\r\n                    \r\n                            export enum GetParentPortalDataPaymentMethodType {\r\n                                directDebit = 'directDebit',\r\n                                card = 'card'\r\n                            }\r\n                        \r\n                                export interface IGetParentPortalDataRequest {\r\n                                    diaryStartDate: string | moment.Moment | Date,\r\n diaryEndDate: string | moment.Moment | Date,\r\n childIds: UUID[],\r\n eventTypes: NewsfeedEventType[]\r\n                                }\r\n                            \r\n                                export interface IGetParentPortalDataResult {\r\n                                    newsFeed: FootstepsNewsfeed.IGetParentPortalNewsfeedByPageResult,\r\n diary: FootstepsSession.IGetSessionsAndHolidaysResult,\r\n children: IGetParentPortalDataResultChildModel[],\r\n nursery: IGetParentPortalDataResultNurseryModel,\r\n carer: IGetParentPortalDataResultCarerModel,\r\n nextSession: FootstepsSession.IGetNextSessionTimeResult,\r\n totalBalance: number,\r\n canSetupDirectDebit: boolean,\r\n messagingAccessGranted: boolean\r\n                                }\r\n                            \r\n                                export interface IGetParentPortalDataResultCarerModel {\r\n                                    firstName: string,\r\n lastName: string,\r\n workTel: string,\r\n mobileTel: string,\r\n homeTel: string,\r\n email: string,\r\n addr1: string,\r\n addr2: string,\r\n addr3: string,\r\n town: string,\r\n county: string,\r\n postcode: string,\r\n photo: string,\r\n emergencyContact: boolean,\r\n isDoctor: boolean,\r\n houseNumber: string,\r\n isEmergencyOtherNo: boolean,\r\n isEmergencyHomeNo: boolean,\r\n isEmergencyWorkNo: boolean,\r\n adults2Guid: UUID,\r\n title: string,\r\n allergies: IGetParentPortalDataResultChildListItem[],\r\n adultId: number,\r\n paymentMethods: IGetParentPortalDataResultPaymentMethod[],\r\n collection: IGetParentPortalDataResultCollectionInfo[]\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalDataResultCollectionInfo {\r\n                                    isCollecting: boolean,\r\n amount: number,\r\n executionDate: string | moment.Moment | Date | null\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalDataResultPaymentMethod {\r\n                                    id: UUID,\r\n description: string,\r\n type: GetParentPortalDataPaymentMethodType\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalDataResultChildListItem {\r\n                                    id: number,\r\n name: string,\r\n immunised: boolean,\r\n had: boolean\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalDataResultNurseryModel {\r\n                                    name: string,\r\n address1: string,\r\n address2: string,\r\n address3: string,\r\n address4: string,\r\n contactEmailAddress: string,\r\n contactName: string,\r\n county: string,\r\n postcode: string,\r\n telephone: string,\r\n town: string,\r\n checkInGuid: UUID | null\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalDataResultChildModel {\r\n                                    id: UUID,\r\n relationships: IGetParentPortalDataResultChildRelationshipModel[],\r\n firstName: string,\r\n lastName: string,\r\n keyWorkerName: string,\r\n startDate: string | moment.Moment | Date,\r\n middleName: string,\r\n knownName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n isMale: boolean,\r\n estimatedLeaveDate: string | moment.Moment | Date | null,\r\n allergies: IGetParentPortalDataResultChildListItem[],\r\n permissions: IGetParentPortalDataResultChildListItem[],\r\n medicalConditions: IGetParentPortalDataResultChildListItem[],\r\n illnesses: IGetParentPortalDataResultChildListItem[],\r\n dietaryRequirements: IGetParentPortalDataResultChildListItem[],\r\n account: IGetParentPortalDataResultAccountModel,\r\n photoUrl: string,\r\n relationshipToCurrentCarer: string,\r\n childId: number,\r\n recentRoom: string\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalDataResultChildRelationshipModel {\r\n                                    relationshipType: string,\r\n isEmergencyContact: boolean,\r\n hasParentalResponsibility: boolean,\r\n firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalDataResultAccountHistoryItemModel {\r\n                                    date: string | moment.Moment | Date,\r\n type: string,\r\n transactionId: string,\r\n paymentType: string,\r\n amount: number,\r\n typeId: TransactionType\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalDataResultAccountModel {\r\n                                    balance: number,\r\n history: IGetParentPortalDataResultAccountHistoryItemModel[]\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalDataCommands {\r\n                    \r\n                            public onGetParentPortalData: Subject<RequestInfo<ParentPortalData.IGetParentPortalDataRequest, ParentPortalData.IGetParentPortalDataResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getParentPortalData(request : ParentPortalData.IGetParentPortalDataRequest, overridenToken?: string): Promise<ParentPortalData.IGetParentPortalDataResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalData.IGetParentPortalDataRequest, ParentPortalData.IGetParentPortalDataResult>(request, 'ParentPortalData', 'GetParentPortalData', overridenToken);\r\n                                        \r\n                                            this.onGetParentPortalData.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalFeatureConfig {\r\n                    \r\n                                export interface IGetParentPortalFeatureConfigRequest {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IGetParentPortalFeatureConfigResult {\r\n                                    parentMessagingEnabled: boolean\r\n                                }\r\n                            \r\n                                export interface IEnableParentMessagingRequest {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IEnableParentMessagingResult {\r\n                                    parentMessagingEnabled: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalFeatureConfigCommands {\r\n                    \r\n                            public onGetParentPortalFeatureConfig: Subject<RequestInfo<ParentPortalFeatureConfig.IGetParentPortalFeatureConfigRequest, ParentPortalFeatureConfig.IGetParentPortalFeatureConfigResult>> = new Subject();\r\n                        \r\n                            public onEnableParentMessaging: Subject<RequestInfo<ParentPortalFeatureConfig.IEnableParentMessagingRequest, ParentPortalFeatureConfig.IEnableParentMessagingResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getParentPortalFeatureConfig(request : ParentPortalFeatureConfig.IGetParentPortalFeatureConfigRequest, overridenToken?: string): Promise<ParentPortalFeatureConfig.IGetParentPortalFeatureConfigResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalFeatureConfig.IGetParentPortalFeatureConfigRequest, ParentPortalFeatureConfig.IGetParentPortalFeatureConfigResult>(request, 'ParentPortalFeatureConfig', 'GetParentPortalFeatureConfig', overridenToken);\r\n                                        \r\n                                            this.onGetParentPortalFeatureConfig.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async enableParentMessaging(request : ParentPortalFeatureConfig.IEnableParentMessagingRequest, overridenToken?: string): Promise<ParentPortalFeatureConfig.IEnableParentMessagingResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalFeatureConfig.IEnableParentMessagingRequest, ParentPortalFeatureConfig.IEnableParentMessagingResult>(request, 'ParentPortalFeatureConfig', 'EnableParentMessaging', overridenToken);\r\n                                        \r\n                                            this.onEnableParentMessaging.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace ParentPortalFeedback {\r\n                    \r\n                            export enum CarerFeedbackReportType {\r\n                                problem = 'problem',\r\n                                idea = 'idea',\r\n                                other = 'other'\r\n                            }\r\n                        \r\n                            export enum CarerFeedbackError {\r\n                                carerNotFound = 'carerNotFound',\r\n                                noData = 'noData',\r\n                                messageIsMissing = 'messageIsMissing',\r\n                                metaDataIsMissing = 'metaDataIsMissing'\r\n                            }\r\n                        \r\n                                export interface ICarerFeedbackRequest {\r\n                                    type: CarerFeedbackReportType,\r\n message: string,\r\n metaData: ICarerFeedbackCommandParameterData[]\r\n                                }\r\n                            \r\n                                export interface ICarerFeedbackResult {\r\n                                    success: boolean,\r\n errors: CarerFeedbackError[]\r\n                                }\r\n                            \r\n                                export interface ICarerFeedbackCommandParameterData {\r\n                                    key: string,\r\n value: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class ParentPortalFeedbackCommands {\r\n                    \r\n                            public onCarerFeedback: Subject<RequestInfo<ParentPortalFeedback.ICarerFeedbackRequest, ParentPortalFeedback.ICarerFeedbackResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async carerFeedback(request : ParentPortalFeedback.ICarerFeedbackRequest, overridenToken?: string): Promise<ParentPortalFeedback.ICarerFeedbackResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<ParentPortalFeedback.ICarerFeedbackRequest, ParentPortalFeedback.ICarerFeedbackResult>(request, 'ParentPortalFeedback', 'CarerFeedback', overridenToken);\r\n                                        \r\n                                            this.onCarerFeedback.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace DayshareChild2Adult {\r\n                    \r\n                                export interface ILoadEmailCarersRequest {\r\n                                    childIds: number[]\r\n                                }\r\n                            \r\n                                export interface ILoadEmailCarersResult {\r\n                                    relationships: ILoadEmailCarersCommandResultChildRelation[]\r\n                                }\r\n                            \r\n                                export interface ILoadEmailCarersCommandResultCarer {\r\n                                    pId: number,\r\n adults2Id: number,\r\n firstName: string,\r\n lastName: string,\r\n emailAddress: string\r\n                                }\r\n                           \r\n                                export interface ILoadEmailCarersCommandResultChildRelation {\r\n                                    itemId: number,\r\n relationship: string,\r\n carer: ILoadEmailCarersCommandResultCarer,\r\n child: ILoadEmailCarersCommandResultChild,\r\n isPrimaryCarer: boolean,\r\n isParentalResponsibility: boolean\r\n                                }\r\n                           \r\n                                export interface ILoadEmailCarersCommandResultChild {\r\n                                    children2Id: number,\r\n firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class DayshareChild2AdultCommands {\r\n                    \r\n                            public onLoadEmailCarers: Subject<RequestInfo<DayshareChild2Adult.ILoadEmailCarersRequest, DayshareChild2Adult.ILoadEmailCarersResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async loadEmailCarers(request : DayshareChild2Adult.ILoadEmailCarersRequest, overridenToken?: string): Promise<DayshareChild2Adult.ILoadEmailCarersResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<DayshareChild2Adult.ILoadEmailCarersRequest, DayshareChild2Adult.ILoadEmailCarersResult>(request, 'DayshareChild2Adult', 'LoadEmailCarers', overridenToken);\r\n                                        \r\n                                            this.onLoadEmailCarers.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace DayshareEcho {\r\n                    \r\n                                export interface IDayshareEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface IDayshareEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class DayshareEchoCommands {\r\n                    \r\n                            public onDayshareEcho: Subject<RequestInfo<DayshareEcho.IDayshareEchoRequest, DayshareEcho.IDayshareEchoResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async dayshareEcho(request : DayshareEcho.IDayshareEchoRequest, overridenToken?: string): Promise<DayshareEcho.IDayshareEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<DayshareEcho.IDayshareEchoRequest, DayshareEcho.IDayshareEchoResult>(request, 'DayshareEcho', 'DayshareEcho', overridenToken);\r\n                                        \r\n                                            this.onDayshareEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace DayshareEmailContact {\r\n                    \r\n                                export interface ILoadPrintContactsRequest {\r\n                                    idPairs: ILoadPrintContactsCommandChildContactIdPair[]\r\n                                }\r\n                            \r\n                                export interface ILoadPrintContactsResult {\r\n                                    emailContacts: any; // Parenta.Dayshare.Entities.MwSchema.EmailContact[]\r\n                                }\r\n                            \r\n                                export interface ILoadPrintContactsCommandChildContactIdPair {\r\n                                    contactId: number,\r\n childId: number\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class DayshareEmailContactCommands {\r\n                    \r\n                            public onLoadPrintContacts: Subject<RequestInfo<DayshareEmailContact.ILoadPrintContactsRequest, DayshareEmailContact.ILoadPrintContactsResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async loadPrintContacts(request : DayshareEmailContact.ILoadPrintContactsRequest, overridenToken?: string): Promise<DayshareEmailContact.ILoadPrintContactsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<DayshareEmailContact.ILoadPrintContactsRequest, DayshareEmailContact.ILoadPrintContactsResult>(request, 'DayshareEmailContact', 'LoadPrintContacts', overridenToken);\r\n                                        \r\n                                            this.onLoadPrintContacts.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace DaysharePopulate {\r\n                    \r\n                            export enum PopulateDayshareForNurseryError {\r\n                                nurseryNotFound = 'nurseryNotFound'\r\n                            }\r\n                        \r\n                                export interface IPopulateDayshareForNurseryRequest {\r\n                                    nurseryId: number,\r\n whenFor: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IPopulateDayshareForNurseryResult {\r\n                                    successful: boolean,\r\n errors: PopulateDayshareForNurseryError[],\r\n abacusUpdates: IPopulateDayshareForNurseryResultAbacusUpdate[]\r\n                                }\r\n                            \r\n                                export interface IPopulateDayshareForNurseryResultAbacusUpdate {\r\n                                    roomCount: number,\r\n childCount: number,\r\n contactCount: number,\r\n sessionCount: number,\r\n allergyCount: number,\r\n dietaryCount: number,\r\n medicalCount: number,\r\n permissionCount: number,\r\n businessId: number,\r\n sessionCountPassed: number\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class DaysharePopulateCommands {\r\n                    \r\n                            public onPopulateDayshareForNursery: Subject<RequestInfo<DaysharePopulate.IPopulateDayshareForNurseryRequest, DaysharePopulate.IPopulateDayshareForNurseryResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async populateDayshareForNursery(request : DaysharePopulate.IPopulateDayshareForNurseryRequest, overridenToken?: string): Promise<DaysharePopulate.IPopulateDayshareForNurseryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<DaysharePopulate.IPopulateDayshareForNurseryRequest, DaysharePopulate.IPopulateDayshareForNurseryResult>(request, 'DaysharePopulate', 'PopulateDayshareForNursery', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onPopulateDayshareForNursery.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace DayshareSessions {\r\n                    \r\n                            export enum UpdateSessionsError {\r\n                                noSessionsFound = 'noSessionsFound',\r\n                                invalidOutStatus = 'invalidOutStatus',\r\n                                invalidInAndOutStatus = 'invalidInAndOutStatus',\r\n                                missingInDate = 'missingInDate',\r\n                                missingOutDate = 'missingOutDate',\r\n                                invalidBusiness = 'invalidBusiness',\r\n                                missingReasonForAbsence = 'missingReasonForAbsence',\r\n                                reasonForAbsenceNotRequired = 'reasonForAbsenceNotRequired'\r\n                            }\r\n                        \r\n                                export interface IUpdateSessionsRequest {\r\n                                    inStatus: boolean,\r\n outStatus: boolean,\r\n absentStatus: boolean,\r\n sessionDate: string | moment.Moment | Date,\r\n reasonForAbsence: string,\r\n sessions: IUpdateSessionsCommandSession[]\r\n                                }\r\n                            \r\n                                export interface IUpdateSessionsResult {\r\n                                    success: boolean,\r\n errors: UpdateSessionsError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateSessionsCommandSession {\r\n                                    sessionId: number,\r\n roomId: number,\r\n childId: number,\r\n whenIn: string | moment.Moment | Date | null,\r\n whenOut: string | moment.Moment | Date | null,\r\n refId: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class DayshareSessionsCommands {\r\n                    \r\n                            public onUpdateSessions: Subject<RequestInfo<DayshareSessions.IUpdateSessionsRequest, DayshareSessions.IUpdateSessionsResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async updateSessions(request : DayshareSessions.IUpdateSessionsRequest, overridenToken?: string): Promise<DayshareSessions.IUpdateSessionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<DayshareSessions.IUpdateSessionsRequest, DayshareSessions.IUpdateSessionsResult>(request, 'DayshareSessions', 'UpdateSessions', overridenToken);\r\n                                        \r\n                                            this.onUpdateSessions.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace DayshareRoom {\r\n                    \r\n                                export interface IGetRoomsResult {\r\n                                    listRooms: IGetRoomsCommandResultRoom[]\r\n                                }\r\n                            \r\n                                export interface IGetRoomsCommandResultRoom {\r\n                                    id: number,\r\n name: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class DayshareRoomCommands {\r\n                    \r\n                            public onGetRooms: Subject<DayshareRoom.IGetRoomsResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getRooms(overridenToken?: string): Promise<DayshareRoom.IGetRoomsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},DayshareRoom.IGetRoomsResult>({}, 'DayshareRoom', 'GetRooms', overridenToken);\r\n                                        \r\n                                            this.onGetRooms.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace DayshareToilet {\r\n                    \r\n                            export enum ToiletingTypeKey {\r\n                                none = 'none',\r\n                                nappy = 'nappy',\r\n                                potty = 'potty',\r\n                                toilet = 'toilet'\r\n                            }\r\n                        \r\n                            export enum NappyStatus {\r\n                                clean = 'clean',\r\n                                wet = 'wet',\r\n                                soiled = 'soiled',\r\n                                wetAndSoiled = 'wetAndSoiled'\r\n                            }\r\n                        \r\n                            export enum GetChildToiletItemsError {\r\n                                noStartDate = 'noStartDate',\r\n                                noEndDate = 'noEndDate',\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                            export enum GetNurseryChildToiletGroupCountError {\r\n                                invalidBusiness = 'invalidBusiness',\r\n                                noChildDataFound = 'noChildDataFound'\r\n                            }\r\n                        \r\n                            export enum InsertChildToiletingError {\r\n                                childIdMissing = 'childIdMissing',\r\n                                noRecordsInserted = 'noRecordsInserted'\r\n                            }\r\n                        \r\n                            export enum UpdateChildToiletingError {\r\n                                toiletIdMissing = 'toiletIdMissing',\r\n                                childIdMissing = 'childIdMissing',\r\n                                noRecordsUpdated = 'noRecordsUpdated'\r\n                            }\r\n                        \r\n                                export interface IGetChildToiletItemsRequest {\r\n                                    childId: number,\r\n startDate: string | moment.Moment | Date,\r\n endDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetChildToiletItemsResult {\r\n                                    success: boolean,\r\n listToiletData: IGetChildToiletItemsCommandResultToiletData[],\r\n errors: GetChildToiletItemsError[]\r\n                                }\r\n                            \r\n                                export interface IGetChildToiletItemsCommandResultToiletData {\r\n                                    id: number,\r\n whenChanged: string | moment.Moment | Date,\r\n whenDeleted: string | moment.Moment | Date | null,\r\n name: string,\r\n comment: string,\r\n childId: number,\r\n changeType: NappyStatus | null,\r\n toiletingType: ToiletingTypeKey,\r\n nUserId: number | null,\r\n firstname: string,\r\n lastname: string,\r\n creamApplied: boolean | null\r\n                                }\r\n                           \r\n                                export interface IGetNurseryChildToiletGroupCountRequest {\r\n                                    sessionDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetNurseryChildToiletGroupCountResult {\r\n                                    success: boolean,\r\n listChildGroupNappyCount: IGetNurseryChildToiletGroupCountCommandResultChildGroupNappyCount[],\r\n errors: GetNurseryChildToiletGroupCountError[]\r\n                                }\r\n                            \r\n                                export interface IGetNurseryChildToiletGroupCountCommandResultChildGroupNappyCount {\r\n                                    sessionId: number,\r\n childId: number,\r\n roomId: number,\r\n sessionDate: string | moment.Moment | Date,\r\n firstName: string,\r\n lastName: string,\r\n knownName: string,\r\n photo: string,\r\n dob: string | moment.Moment | Date,\r\n nappyCount: number,\r\n pottyCount: number,\r\n toiletCount: number,\r\n lastTime: string | moment.Moment | Date | null,\r\n timeMessage: string,\r\n ageMessage: string,\r\n outStatus: boolean\r\n                                }\r\n                           \r\n                                export interface IInsertChildToiletingRequest {\r\n                                    childIds: number[],\r\n whenChanged: string | moment.Moment | Date,\r\n name: string,\r\n comment: string,\r\n changeType: NappyStatus | null,\r\n toiletingType: ToiletingTypeKey,\r\n creamApplied: boolean | null\r\n                                }\r\n                            \r\n                                export interface IInsertChildToiletingResult {\r\n                                    newIds: number[],\r\n rowCount: number,\r\n success: boolean,\r\n errors: InsertChildToiletingError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateChildToiletingRequest {\r\n                                    id: number,\r\n whenChanged: string | moment.Moment | Date,\r\n whenDeleted: string | moment.Moment | Date | null,\r\n name: string,\r\n comment: string,\r\n childId: number,\r\n changeType: NappyStatus | null,\r\n toiletingType: ToiletingTypeKey,\r\n creamApplied: boolean | null\r\n                                }\r\n                            \r\n                                export interface IUpdateChildToiletingResult {\r\n                                    success: boolean,\r\n errors: UpdateChildToiletingError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class DayshareToiletCommands {\r\n                    \r\n                            public onGetChildToiletItems: Subject<RequestInfo<DayshareToilet.IGetChildToiletItemsRequest, DayshareToilet.IGetChildToiletItemsResult>> = new Subject();\r\n                        \r\n                            public onGetNurseryChildToiletGroupCount: Subject<RequestInfo<DayshareToilet.IGetNurseryChildToiletGroupCountRequest, DayshareToilet.IGetNurseryChildToiletGroupCountResult>> = new Subject();\r\n                        \r\n                            public onInsertChildToileting: Subject<RequestInfo<DayshareToilet.IInsertChildToiletingRequest, DayshareToilet.IInsertChildToiletingResult>> = new Subject();\r\n                        \r\n                            public onUpdateChildToileting: Subject<RequestInfo<DayshareToilet.IUpdateChildToiletingRequest, DayshareToilet.IUpdateChildToiletingResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getChildToiletItems(request : DayshareToilet.IGetChildToiletItemsRequest, overridenToken?: string): Promise<DayshareToilet.IGetChildToiletItemsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<DayshareToilet.IGetChildToiletItemsRequest, DayshareToilet.IGetChildToiletItemsResult>(request, 'DayshareToilet', 'GetChildToiletItems', overridenToken);\r\n                                        \r\n                                            this.onGetChildToiletItems.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getNurseryChildToiletGroupCount(request : DayshareToilet.IGetNurseryChildToiletGroupCountRequest, overridenToken?: string): Promise<DayshareToilet.IGetNurseryChildToiletGroupCountResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<DayshareToilet.IGetNurseryChildToiletGroupCountRequest, DayshareToilet.IGetNurseryChildToiletGroupCountResult>(request, 'DayshareToilet', 'GetNurseryChildToiletGroupCount', overridenToken);\r\n                                        \r\n                                            this.onGetNurseryChildToiletGroupCount.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async insertChildToileting(request : DayshareToilet.IInsertChildToiletingRequest, overridenToken?: string): Promise<DayshareToilet.IInsertChildToiletingResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<DayshareToilet.IInsertChildToiletingRequest, DayshareToilet.IInsertChildToiletingResult>(request, 'DayshareToilet', 'InsertChildToileting', overridenToken);\r\n                                        \r\n                                            this.onInsertChildToileting.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateChildToileting(request : DayshareToilet.IUpdateChildToiletingRequest, overridenToken?: string): Promise<DayshareToilet.IUpdateChildToiletingResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<DayshareToilet.IUpdateChildToiletingRequest, DayshareToilet.IUpdateChildToiletingResult>(request, 'DayshareToilet', 'UpdateChildToileting', overridenToken);\r\n                                        \r\n                                            this.onUpdateChildToileting.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsUserRoleGroup {\r\n                    \r\n                            export enum UpdateUserRoleGroupError {\r\n                                userNotFound = 'userNotFound'\r\n                            }\r\n                        \r\n                                export interface IUpdateUserRoleGroupRequest {\r\n                                    users: IUpdateUserRoleGroupCommandUser[]\r\n                                }\r\n                            \r\n                                export interface IUpdateUserRoleGroupResult {\r\n                                    successful: boolean,\r\n errors: UpdateUserRoleGroupError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateUserRoleGroupCommandUser {\r\n                                    userId: UUID,\r\n firstName: string,\r\n lastName: string,\r\n roleGroupId: UUID\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsUserRoleGroupCommands {\r\n                    \r\n                            public onUpdateUserRoleGroup: Subject<RequestInfo<FootstepsUserRoleGroup.IUpdateUserRoleGroupRequest, FootstepsUserRoleGroup.IUpdateUserRoleGroupResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async updateUserRoleGroup(request : FootstepsUserRoleGroup.IUpdateUserRoleGroupRequest, overridenToken?: string): Promise<FootstepsUserRoleGroup.IUpdateUserRoleGroupResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsUserRoleGroup.IUpdateUserRoleGroupRequest, FootstepsUserRoleGroup.IUpdateUserRoleGroupResult>(request, 'FootstepsUserRoleGroup', 'UpdateUserRoleGroup', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateUserRoleGroup.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsUserPreferences {\r\n                    \r\n                            export enum DeleteAssessmentPreferencesError {\r\n                                preferenceNotFound = 'preferenceNotFound'\r\n                            }\r\n                        \r\n                                export interface IDeleteAssessmentPreferencesResult {\r\n                                    successful: boolean,\r\n errors: DeleteAssessmentPreferencesError[]\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentPreferencesResult {\r\n                                    preferences: IGetAssessmentPreferencesCommandResultUserPreference[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentPreferencesCommandResultUserPreference {\r\n                                    id: UUID,\r\n userId: UUID,\r\n userPreferenceType: UserPreferenceType,\r\n data: string\r\n                                }\r\n                           \r\n                                export interface IGetEyfsSortingBannerPreferencesResult {\r\n                                    successful: boolean,\r\n preference: IGetEyfsSortingBannerPreferencesCommandResultUserPreference\r\n                                }\r\n                            \r\n                                export interface IGetEyfsSortingBannerPreferencesCommandResultUserPreference {\r\n                                    userPreferenceType: UserPreferenceType,\r\n id: UUID,\r\n userId: UUID,\r\n data: string\r\n                                }\r\n                           \r\n                                export interface ISaveUserPreferencesRequest {\r\n                                    preferences: ISaveUserPreferencesCommandUserPreference[]\r\n                                }\r\n                            \r\n                                export interface ISaveUserPreferencesResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                                export interface ISaveUserPreferencesCommandUserPreference {\r\n                                    id: UUID | null,\r\n preferenceType: UserPreferenceType,\r\n data: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsUserPreferencesCommands {\r\n                    \r\n                            public onDeleteAssessmentPreferences: Subject<FootstepsUserPreferences.IDeleteAssessmentPreferencesResult> = new Subject();\r\n                        \r\n                            public onGetAssessmentPreferences: Subject<FootstepsUserPreferences.IGetAssessmentPreferencesResult> = new Subject();\r\n                        \r\n                            public onGetEyfsSortingBannerPreferences: Subject<FootstepsUserPreferences.IGetEyfsSortingBannerPreferencesResult> = new Subject();\r\n                        \r\n                            public onSaveUserPreferences: Subject<RequestInfo<FootstepsUserPreferences.ISaveUserPreferencesRequest, FootstepsUserPreferences.ISaveUserPreferencesResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async deleteAssessmentPreferences(overridenToken?: string): Promise<FootstepsUserPreferences.IDeleteAssessmentPreferencesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsUserPreferences.IDeleteAssessmentPreferencesResult>({}, 'FootstepsUserPreferences', 'DeleteAssessmentPreferences', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteAssessmentPreferences.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAssessmentPreferences(overridenToken?: string): Promise<FootstepsUserPreferences.IGetAssessmentPreferencesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsUserPreferences.IGetAssessmentPreferencesResult>({}, 'FootstepsUserPreferences', 'GetAssessmentPreferences', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAssessmentPreferences.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getEyfsSortingBannerPreferences(overridenToken?: string): Promise<FootstepsUserPreferences.IGetEyfsSortingBannerPreferencesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsUserPreferences.IGetEyfsSortingBannerPreferencesResult>({}, 'FootstepsUserPreferences', 'GetEyfsSortingBannerPreferences', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetEyfsSortingBannerPreferences.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async saveUserPreferences(request : FootstepsUserPreferences.ISaveUserPreferencesRequest, overridenToken?: string): Promise<FootstepsUserPreferences.ISaveUserPreferencesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsUserPreferences.ISaveUserPreferencesRequest, FootstepsUserPreferences.ISaveUserPreferencesResult>(request, 'FootstepsUserPreferences', 'SaveUserPreferences', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSaveUserPreferences.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsUserPermissions {\r\n                    \r\n                                export interface ICanCurrentUserAccessSettingsResult {\r\n                                    hasAccess: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsUserPermissionsCommands {\r\n                    \r\n                            public onCanCurrentUserAccessSettings: Subject<FootstepsUserPermissions.ICanCurrentUserAccessSettingsResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async canCurrentUserAccessSettings(overridenToken?: string): Promise<FootstepsUserPermissions.ICanCurrentUserAccessSettingsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsUserPermissions.ICanCurrentUserAccessSettingsResult>({}, 'FootstepsUserPermissions', 'CanCurrentUserAccessSettings', overridenToken);\r\n                                        \r\n                                            this.onCanCurrentUserAccessSettings.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsUserFilters {\r\n                    \r\n                            export enum GetUserFiltersError {\r\n                                filterNotFound = 'filterNotFound'\r\n                            }\r\n                        \r\n                            export enum SaveUserFiltersError {\r\n                                ageOutOfRange = 'ageOutOfRange'\r\n                            }\r\n                        \r\n                                export interface IGetUserFiltersResult {\r\n                                    filter: IGetUserFiltersCommandResultUserFilter,\r\n errors: GetUserFiltersError[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetUserFiltersCommandResultUserFilter {\r\n                                    roomIds: UUID[],\r\n keyPersonIds: UUID[],\r\n cohortKeys: EyfsCohortKey[],\r\n genderKey: GenderKey,\r\n attendanceStatusKey: AttendanceStatusKey,\r\n registrationStatusKey: RegistrationStatusKey,\r\n ageFromInMonths: number,\r\n ageToInMonths: number,\r\n fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date\r\n                                }\r\n                           \r\n                                export interface IGetUsersCommandResult {\r\n                                    users: IGetUsersCommandResultUser[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetUsersCommandResultUser {\r\n                                    firstName: string,\r\n lastName: string,\r\n userId: UUID,\r\n roleGroupId: UUID\r\n                                }\r\n                           \r\n                                export interface ISaveUserFiltersRequest {\r\n                                    roomIds: UUID[],\r\n keyPersonIds: UUID[],\r\n includeUnassignedRoom: boolean,\r\n includeUnassignedKeyPerson: boolean,\r\n cohortKeys: EyfsCohortKey[],\r\n genderKey: GenderKey,\r\n attendanceStatusKey: AttendanceStatusKey,\r\n registrationStatusKey: RegistrationStatusKey,\r\n ageFromInMonths: number | null,\r\n ageToInMonths: number | null,\r\n fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface ISaveUserFiltersResult {\r\n                                    successful: boolean,\r\n errors: SaveUserFiltersError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsUserFiltersCommands {\r\n                    \r\n                            public onGetUserFilters: Subject<FootstepsUserFilters.IGetUserFiltersResult> = new Subject();\r\n                        \r\n                            public onGetUsersCommand: Subject<FootstepsUserFilters.IGetUsersCommandResult> = new Subject();\r\n                        \r\n                            public onSaveUserFilters: Subject<RequestInfo<FootstepsUserFilters.ISaveUserFiltersRequest, FootstepsUserFilters.ISaveUserFiltersResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getUserFilters(overridenToken?: string): Promise<FootstepsUserFilters.IGetUserFiltersResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsUserFilters.IGetUserFiltersResult>({}, 'FootstepsUserFilters', 'GetUserFilters', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetUserFilters.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getUsersCommand(overridenToken?: string): Promise<FootstepsUserFilters.IGetUsersCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsUserFilters.IGetUsersCommandResult>({}, 'FootstepsUserFilters', 'GetUsersCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetUsersCommand.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async saveUserFilters(request : FootstepsUserFilters.ISaveUserFiltersRequest, overridenToken?: string): Promise<FootstepsUserFilters.ISaveUserFiltersResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsUserFilters.ISaveUserFiltersRequest, FootstepsUserFilters.ISaveUserFiltersResult>(request, 'FootstepsUserFilters', 'SaveUserFilters', overridenToken);\r\n                                        \r\n                                            this.onSaveUserFilters.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsUser {\r\n                    \r\n                            export enum GetUserByIdError {\r\n                                userDoesNotExist = 'userDoesNotExist'\r\n                            }\r\n                        \r\n                                export interface IGetAbacusUserResult {\r\n                                    users: IGetAbacusUserResultUser[]\r\n                                }\r\n                            \r\n                                export interface IGetAbacusUserResultUser {\r\n                                    userId: UUID,\r\n firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                                export interface IGetUserByIdRequest {\r\n                                    userId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetUserByIdResult {\r\n                                    successful: boolean,\r\n errors: GetUserByIdError[],\r\n user: IGetUserByIdCommandResultUserDetails\r\n                                }\r\n                            \r\n                                export interface IGetUserByIdCommandResultUserDetails {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string,\r\n emailAddress: string,\r\n username: string,\r\n roleGroupId: UUID | null\r\n                                }\r\n                           \r\n                                export interface IGetUsersForCurrentBusinessResult {\r\n                                    successful: boolean,\r\n users: IGetUsersForCurrentBusinessCommandResultUserDetails[]\r\n                                }\r\n                            \r\n                                export interface IGetUsersForCurrentBusinessCommandResultUserDetails {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string,\r\n emailAddress: string,\r\n username: string,\r\n roleGroupId: UUID | null\r\n                                }\r\n                           \r\n                                export interface IGetUsersWithPermissionsResult {\r\n                                    users: IGetUsersWithPermissionsCommandResultUser[]\r\n                                }\r\n                            \r\n                                export interface IGetUsersWithPermissionsCommandResultUser {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string,\r\n username: string,\r\n requiresApproval: boolean,\r\n isPublisher: boolean,\r\n isApprover: boolean,\r\n permissionTypes: PermissionType[]\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsUserCommands {\r\n                    \r\n                            public onGetAbacusUser: Subject<FootstepsUser.IGetAbacusUserResult> = new Subject();\r\n                        \r\n                            public onGetUserById: Subject<RequestInfo<FootstepsUser.IGetUserByIdRequest, FootstepsUser.IGetUserByIdResult>> = new Subject();\r\n                        \r\n                            public onGetUsersForCurrentBusiness: Subject<FootstepsUser.IGetUsersForCurrentBusinessResult> = new Subject();\r\n                        \r\n                            public onGetUsersWithPermissions: Subject<FootstepsUser.IGetUsersWithPermissionsResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getAbacusUser(overridenToken?: string): Promise<FootstepsUser.IGetAbacusUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsUser.IGetAbacusUserResult>({}, 'FootstepsUser', 'GetAbacusUser', overridenToken);\r\n                                        \r\n                                            this.onGetAbacusUser.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getUserById(request : FootstepsUser.IGetUserByIdRequest, overridenToken?: string): Promise<FootstepsUser.IGetUserByIdResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsUser.IGetUserByIdRequest, FootstepsUser.IGetUserByIdResult>(request, 'FootstepsUser', 'GetUserById', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetUserById.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getUsersForCurrentBusiness(overridenToken?: string): Promise<FootstepsUser.IGetUsersForCurrentBusinessResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsUser.IGetUsersForCurrentBusinessResult>({}, 'FootstepsUser', 'GetUsersForCurrentBusiness', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetUsersForCurrentBusiness.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getUsersWithPermissions(overridenToken?: string): Promise<FootstepsUser.IGetUsersWithPermissionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsUser.IGetUsersWithPermissionsResult>({}, 'FootstepsUser', 'GetUsersWithPermissions', overridenToken);\r\n                                        \r\n                                            this.onGetUsersWithPermissions.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsUpdateUploadedFileAfterTranscoding {\r\n                    \r\n                            export enum UpdateUploadedFileAfterTranscodingError {\r\n                                uploadedFileNotFound = 'uploadedFileNotFound',\r\n                                pathIsEmpty = 'pathIsEmpty'\r\n                            }\r\n                        \r\n                                export interface IUpdateUploadedFileAfterTranscodingRequest {\r\n                                    id: UUID,\r\n fileSize: number,\r\n path: string\r\n                                }\r\n                            \r\n                                export interface IUpdateUploadedFileAfterTranscodingResult {\r\n                                    successful: boolean,\r\n errors: UpdateUploadedFileAfterTranscodingError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsUpdateUploadedFileAfterTranscodingCommands {\r\n                    \r\n                            public onUpdateUploadedFileAfterTranscoding: Subject<RequestInfo<FootstepsUpdateUploadedFileAfterTranscoding.IUpdateUploadedFileAfterTranscodingRequest, FootstepsUpdateUploadedFileAfterTranscoding.IUpdateUploadedFileAfterTranscodingResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async updateUploadedFileAfterTranscoding(request : FootstepsUpdateUploadedFileAfterTranscoding.IUpdateUploadedFileAfterTranscodingRequest, overridenToken?: string): Promise<FootstepsUpdateUploadedFileAfterTranscoding.IUpdateUploadedFileAfterTranscodingResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsUpdateUploadedFileAfterTranscoding.IUpdateUploadedFileAfterTranscodingRequest, FootstepsUpdateUploadedFileAfterTranscoding.IUpdateUploadedFileAfterTranscodingResult>(request, 'FootstepsUpdateUploadedFileAfterTranscoding', 'UpdateUploadedFileAfterTranscoding', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateUploadedFileAfterTranscoding.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsTrackerReport {\r\n                    \r\n                            export enum PrintTrackerReportGroupingType {\r\n                                oneForAll = 'oneForAll',\r\n                                oneEach = 'oneEach'\r\n                            }\r\n                        \r\n                            export enum PrintTrackerReportTrackerReportType {\r\n                                day = 'day',\r\n                                year = 'year'\r\n                            }\r\n                        \r\n                                export interface IPrintTrackerReportRequest {\r\n                                    fileName: string,\r\n childIds: UUID[],\r\n reportStartDate: string | moment.Moment | Date,\r\n reportEndDate: string | moment.Moment | Date,\r\n grouping: PrintTrackerReportGroupingType,\r\n reportType: PrintTrackerReportTrackerReportType\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsTrackerReportCommands {\r\n                    \r\n                            \r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    printTrackerReport(request : FootstepsTrackerReport.IPrintTrackerReportRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsTrackerReport', 'PrintTrackerReport', overridenToken);\r\n                            }\r\n                            \r\n                            printTrackerReportUrl(request : FootstepsTrackerReport.IPrintTrackerReportRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsTrackerReport', 'PrintTrackerReport', temporaryToken);\r\n                                return url;\r\n                            }} // End class\r\n                    \r\n                        export namespace FootstepsTempAuth {\r\n                    \r\n                                export interface IGetFootstepsUserTempAuthTokenResult {\r\n                                    token: IGetFootstepsUserTempAuthTokenCommandResultTemporaryAuthToken\r\n                                }\r\n                            \r\n                                export interface IGetFootstepsUserTempAuthTokenCommandResultTemporaryAuthToken {\r\n                                    id: string,\r\n userId: UUID,\r\n expiryDate: string | moment.Moment | Date\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsTempAuthCommands {\r\n                    \r\n                            public onGetFootstepsUserTempAuthToken: Subject<FootstepsTempAuth.IGetFootstepsUserTempAuthTokenResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getFootstepsUserTempAuthToken(overridenToken?: string): Promise<FootstepsTempAuth.IGetFootstepsUserTempAuthTokenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsTempAuth.IGetFootstepsUserTempAuthTokenResult>({}, 'FootstepsTempAuth', 'GetFootstepsUserTempAuthToken', overridenToken);\r\n                                        \r\n                                            this.onGetFootstepsUserTempAuthToken.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsStatementGapsReportPrinting {\r\n                    \r\n                            export enum PrintStatementGapsReportGroupingType {\r\n                                oneForAll = 'oneForAll',\r\n                                oneEach = 'oneEach'\r\n                            }\r\n                        \r\n                                export interface IPrintStatementGapsReportRequest {\r\n                                    fileName: string,\r\n childIds: UUID[],\r\n reportDate: string | moment.Moment | Date,\r\n grouping: PrintStatementGapsReportGroupingType,\r\n hideSecureMatters: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsStatementGapsReportPrintingCommands {\r\n                    \r\n                            \r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    printStatementGapsReport(request : FootstepsStatementGapsReportPrinting.IPrintStatementGapsReportRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsStatementGapsReportPrinting', 'PrintStatementGapsReport', overridenToken);\r\n                            }\r\n                            \r\n                            printStatementGapsReportUrl(request : FootstepsStatementGapsReportPrinting.IPrintStatementGapsReportRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsStatementGapsReportPrinting', 'PrintStatementGapsReport', temporaryToken);\r\n                                return url;\r\n                            }} // End class\r\n                    \r\n                        export namespace FootstepsStaff {\r\n                    \r\n                                export interface IGetKeyPersonsResult {\r\n                                    keyPersons: IGetKeyPersonsCommandResultStaff[]\r\n                                }\r\n                            \r\n                                export interface IGetKeyPersonsCommandResultStaff {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsStaffCommands {\r\n                    \r\n                            public onGetKeyPersons: Subject<FootstepsStaff.IGetKeyPersonsResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getKeyPersons(overridenToken?: string): Promise<FootstepsStaff.IGetKeyPersonsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsStaff.IGetKeyPersonsResult>({}, 'FootstepsStaff', 'GetKeyPersons', overridenToken);\r\n                                        \r\n                                            this.onGetKeyPersons.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsSignFileUpload {\r\n                    \r\n                            export enum SignFileUploadError {\r\n                                unsupportedHttpMethod = 'unsupportedHttpMethod',\r\n                                uploadSignatureInvalid = 'uploadSignatureInvalid',\r\n                                generatedUrlMismatch = 'generatedUrlMismatch'\r\n                            }\r\n                        \r\n                                export interface ISignFileUploadRequest {\r\n                                    canonicalRequest: string,\r\n urlToSign: string,\r\n fileUploadKeySignature: string\r\n                                }\r\n                            \r\n                                export interface ISignFileUploadResult {\r\n                                    errors: SignFileUploadError[],\r\n signedUrl: string,\r\n successful: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsSignFileUploadCommands {\r\n                    \r\n                            public onSignFileUpload: Subject<RequestInfo<FootstepsSignFileUpload.ISignFileUploadRequest, FootstepsSignFileUpload.ISignFileUploadResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async signFileUpload(request : FootstepsSignFileUpload.ISignFileUploadRequest, overridenToken?: string): Promise<FootstepsSignFileUpload.ISignFileUploadResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsSignFileUpload.ISignFileUploadRequest, FootstepsSignFileUpload.ISignFileUploadResult>(request, 'FootstepsSignFileUpload', 'SignFileUpload', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSignFileUpload.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsSetupSystem {\r\n                    \r\n                            export enum SetupSystemError {\r\n                                corporationNotFound = 'corporationNotFound'\r\n                            }\r\n                        \r\n                                export interface ISetupSystemResult {\r\n                                    successful: boolean,\r\n errors: SetupSystemError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsSetupSystemCommands {\r\n                    \r\n                            public onSetupSystem: Subject<FootstepsSetupSystem.ISetupSystemResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async setupSystem(overridenToken?: string): Promise<FootstepsSetupSystem.ISetupSystemResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsSetupSystem.ISetupSystemResult>({}, 'FootstepsSetupSystem', 'SetupSystem', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSetupSystem.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsSession {\r\n                    \r\n                            export enum GetNextSessionTimeError {\r\n                                invalidChildId = 'invalidChildId',\r\n                                noChildIdSpecified = 'noChildIdSpecified',\r\n                                userHasInvalidLegacyReference = 'userHasInvalidLegacyReference'\r\n                            }\r\n                        \r\n                            export enum GetSessionsAndHolidaysError {\r\n                                noChildrenSpecified = 'noChildrenSpecified',\r\n                                userHasInvalidLegacyReference = 'userHasInvalidLegacyReference',\r\n                                invalidChildId = 'invalidChildId',\r\n                                invalidBusinessId = 'invalidBusinessId'\r\n                            }\r\n                        \r\n                                export interface IGetNextSessionTimeRequest {\r\n                                    children: number[]\r\n                                }\r\n                            \r\n                                export interface IGetNextSessionTimeResult {\r\n                                    nextSessionTime: string | moment.Moment | Date | null,\r\n successful: boolean,\r\n errors: GetNextSessionTimeError[]\r\n                                }\r\n                            \r\n                                export interface IGetSessionsAndHolidaysRequest {\r\n                                    childIds: number[],\r\n startDate: string | moment.Moment | Date,\r\n endDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetSessionsAndHolidaysResult {\r\n                                    sessions: IGetSessionsAndHolidaysCommandResultSession[],\r\n childHolidays: IGetSessionsAndHolidaysCommandResultChildHoliday[],\r\n nurseryHolidays: IGetSessionsAndHolidaysCommandResultNurseryHoliday[],\r\n successful: boolean,\r\n errors: GetSessionsAndHolidaysError[]\r\n                                }\r\n                            \r\n                                export interface IGetSessionsAndHolidaysCommandResultChildHoliday {\r\n                                    date: string | moment.Moment | Date,\r\n childId: number\r\n                                }\r\n                           \r\n                                export interface IGetSessionsAndHolidaysCommandResultNurseryHoliday {\r\n                                    startTime: string | moment.Moment | Date,\r\n endTime: string | moment.Moment | Date\r\n                                }\r\n                           \r\n                                export interface IGetSessionsAndHolidaysCommandResultSession {\r\n                                    startTime: string | moment.Moment | Date,\r\n endTime: string | moment.Moment | Date,\r\n roomName: string,\r\n type: string,\r\n childId: number\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsSessionCommands {\r\n                    \r\n                            public onGetNextSessionTime: Subject<RequestInfo<FootstepsSession.IGetNextSessionTimeRequest, FootstepsSession.IGetNextSessionTimeResult>> = new Subject();\r\n                        \r\n                            public onGetSessionsAndHolidays: Subject<RequestInfo<FootstepsSession.IGetSessionsAndHolidaysRequest, FootstepsSession.IGetSessionsAndHolidaysResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getNextSessionTime(request : FootstepsSession.IGetNextSessionTimeRequest, overridenToken?: string): Promise<FootstepsSession.IGetNextSessionTimeResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsSession.IGetNextSessionTimeRequest, FootstepsSession.IGetNextSessionTimeResult>(request, 'FootstepsSession', 'GetNextSessionTime', overridenToken);\r\n                                        \r\n                                            this.onGetNextSessionTime.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getSessionsAndHolidays(request : FootstepsSession.IGetSessionsAndHolidaysRequest, overridenToken?: string): Promise<FootstepsSession.IGetSessionsAndHolidaysResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsSession.IGetSessionsAndHolidaysRequest, FootstepsSession.IGetSessionsAndHolidaysResult>(request, 'FootstepsSession', 'GetSessionsAndHolidays', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetSessionsAndHolidays.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsRoom {\r\n                    \r\n                                export interface IGetRoomsResult {\r\n                                    rooms: IGetRoomsCommandResultRoom[]\r\n                                }\r\n                            \r\n                                export interface IGetRoomsCommandResultRoom {\r\n                                    id: UUID,\r\n name: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsRoomCommands {\r\n                    \r\n                            public onGetRooms: Subject<FootstepsRoom.IGetRoomsResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getRooms(overridenToken?: string): Promise<FootstepsRoom.IGetRoomsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsRoom.IGetRoomsResult>({}, 'FootstepsRoom', 'GetRooms', overridenToken);\r\n                                        \r\n                                            this.onGetRooms.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsRoleGroups {\r\n                    \r\n                                export interface IGetRoleGroupsResult {\r\n                                    roleGroups: IGetRoleGroupsCommandResultFootstepsRoleGroup[]\r\n                                }\r\n                            \r\n                                export interface IGetRoleGroupsCommandResultFootstepsRoleGroup {\r\n                                    id: UUID,\r\n name: string,\r\n permissions: IGetRoleGroupsCommandResultFootstepsPermission[]\r\n                                }\r\n                           \r\n                                export interface IGetRoleGroupsCommandResultFootstepsPermission {\r\n                                    id: UUID,\r\n permissionType: PermissionType\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsRoleGroupsCommands {\r\n                    \r\n                            public onGetRoleGroups: Subject<FootstepsRoleGroups.IGetRoleGroupsResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getRoleGroups(overridenToken?: string): Promise<FootstepsRoleGroups.IGetRoleGroupsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsRoleGroups.IGetRoleGroupsResult>({}, 'FootstepsRoleGroups', 'GetRoleGroups', overridenToken);\r\n                                        \r\n                                            this.onGetRoleGroups.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsReports {\r\n                    \r\n                            export enum GetLearningJourneyDataObservationType {\r\n                                observation = 'observation',\r\n                                groupObservation = 'groupObservation',\r\n                                homeObservation = 'homeObservation',\r\n                                nextStep = 'nextStep'\r\n                            }\r\n                        \r\n                            export enum GetLearningOverviewAchievementStatus {\r\n                                underachieving = 'underachieving',\r\n                                achieving = 'achieving',\r\n                                noData = 'noData',\r\n                                notApplicable = 'notApplicable'\r\n                            }\r\n                        \r\n                            export enum GetLearningOverviewScore {\r\n                                notStarted = 'notStarted',\r\n                                started = 'started',\r\n                                secured = 'secured'\r\n                            }\r\n                        \r\n                            export enum GetMonthlyLeuvenScaleReportDataError {\r\n                                childNotFound = 'childNotFound',\r\n                                childListEmpty = 'childListEmpty',\r\n                                endDateBeforeStartDate = 'endDateBeforeStartDate'\r\n                            }\r\n                        \r\n                            export enum GetTrackerReportDataGroupingType {\r\n                                oneForAll = 'oneForAll',\r\n                                oneEach = 'oneEach'\r\n                            }\r\n                        \r\n                            export enum NewGetTrackerReportDataGroupingType {\r\n                                oneForAll = 'oneForAll',\r\n                                oneEach = 'oneEach'\r\n                            }\r\n                        \r\n                                export interface IGetLearningJourneyDataRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetLearningJourneyDataResult {\r\n                                    observations: IGetLearningJourneyDataCommandResultObservation[]\r\n                                }\r\n                            \r\n                                export interface IGetLearningJourneyDataCommandResultObservation {\r\n                                    observationId: UUID,\r\n matters: IGetLearningJourneyDataCommandResultObservationMatter[],\r\n date: string | moment.Moment | Date,\r\n description: string,\r\n mediaFiles: IGetLearningJourneyDataCommandResultMediaFile[],\r\n observationType: GetLearningJourneyDataObservationType\r\n                                }\r\n                           \r\n                                export interface IGetLearningJourneyDataCommandResultObservationMatter {\r\n                                    isNextSteps: boolean,\r\n curriculumKey: CurriculumKey,\r\n matterKey: ObservationMatterKey,\r\n score: number\r\n                                }\r\n                           \r\n                                export interface IGetLearningJourneyDataCommandResultMediaFile {\r\n                                    fileId: UUID,\r\n uploadedFileId: UUID,\r\n url: string,\r\n thumbnailUrl: string,\r\n isVideo: boolean,\r\n previewBlur: boolean\r\n                                }\r\n                           \r\n                                export interface IGetLearningOverviewRequest {\r\n                                    childrenIds: UUID[],\r\n date: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetLearningOverviewResult {\r\n                                    children: IGetLearningOverviewCommandResultChild[]\r\n                                }\r\n                            \r\n                                export interface IGetLearningOverviewCommandResultChild {\r\n                                    id: UUID,\r\n childPhotoUrl: string,\r\n firstName: string,\r\n lastName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n aspectAgeBands: IGetLearningOverviewCommandResultAspectAgeBand[]\r\n                                }\r\n                           \r\n                                export interface IGetLearningOverviewCommandResultAspectAgeBand {\r\n                                    aspectKey: EyfsAspectKey,\r\n ageBandKey: AgeBandKey,\r\n achievementStatus: GetLearningOverviewAchievementStatus,\r\n ageFrom: number,\r\n ageTo: number\r\n                                }\r\n                           \r\n                                export interface IGetLearningOverviewCommandResultAgeBandMatter {\r\n                                    ageBandKey: AgeBandKey,\r\n order: number,\r\n score: GetLearningOverviewScore\r\n                                }\r\n                           \r\n                                export interface IGetMonthlyLeuvenScaleReportDataRequest {\r\n                                    childIds: UUID[],\r\n startDate: string | moment.Moment | Date,\r\n endDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetMonthlyLeuvenScaleReportDataResult {\r\n                                    successful: boolean,\r\n monthlyData: IGetMonthlyLeuvenScaleReportDataCommandResultMonthlyDataItem[],\r\n errors: GetMonthlyLeuvenScaleReportDataError[]\r\n                                }\r\n                            \r\n                                export interface IGetMonthlyLeuvenScaleReportDataCommandResultMonthlyDataItem {\r\n                                    childId: UUID,\r\n date: string | moment.Moment | Date,\r\n wellbeingValue: number,\r\n involvementValue: number\r\n                                }\r\n                           \r\n                                export interface IGetTrackerReportDataRequest {\r\n                                    startDate: string | moment.Moment | Date,\r\n endDate: string | moment.Moment | Date,\r\n childIds: UUID[],\r\n grouping: GetTrackerReportDataGroupingType\r\n                                }\r\n                            \r\n                                export interface IGetTrackerReportDataResult {\r\n                                    successful: boolean,\r\n monthlyAdjustedScores: any; // System.Collections.Generic.Dictionary`2[System.String,Parenta.Footsteps.Commands.Reports.GetTrackerReportDataCommandResult+ScoreForMonth]\r\n                                }\r\n                            \r\n                                export interface IGetTrackerReportDataCommandResultScoreForMonth {\r\n                                    areaScores: any; // System.Collections.Generic.Dictionary`2[Parenta.Footsteps.Entities.Eyfs.EyfsAreaKey,System.Decimal]\r\n                                }\r\n                           \r\n                                export interface INewGetTrackerReportDataRequest {\r\n                                    startDate: string | moment.Moment | Date,\r\n endDate: string | moment.Moment | Date,\r\n childIds: UUID[],\r\n grouping: NewGetTrackerReportDataGroupingType\r\n                                }\r\n                            \r\n                                export interface INewGetTrackerReportDataResult {\r\n                                    successful: boolean,\r\n monthlyAdjustedScores: INewGetTrackerReportDataCommandResultDateScores[]\r\n                                }\r\n                            \r\n                                export interface INewGetTrackerReportDataCommandResultAreaScore {\r\n                                    areaKey: EyfsAreaKey,\r\n score: number\r\n                                }\r\n                           \r\n                                export interface INewGetTrackerReportDataCommandResultDateScores {\r\n                                    dateString: string,\r\n scores: INewGetTrackerReportDataCommandResultAreaScore[]\r\n                                }\r\n                           \r\n                                export interface INewGetTrackerReportDataCommandResultChildDateScores {\r\n                                    childId: UUID,\r\n dateScores: INewGetTrackerReportDataCommandResultDateScores[]\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsReportsCommands {\r\n                    \r\n                            public onGetLearningJourneyData: Subject<RequestInfo<FootstepsReports.IGetLearningJourneyDataRequest, FootstepsReports.IGetLearningJourneyDataResult>> = new Subject();\r\n                        \r\n                            public onGetLearningOverview: Subject<RequestInfo<FootstepsReports.IGetLearningOverviewRequest, FootstepsReports.IGetLearningOverviewResult>> = new Subject();\r\n                        \r\n                            public onGetMonthlyLeuvenScaleReportData: Subject<RequestInfo<FootstepsReports.IGetMonthlyLeuvenScaleReportDataRequest, FootstepsReports.IGetMonthlyLeuvenScaleReportDataResult>> = new Subject();\r\n                        \r\n                            public onGetTrackerReportData: Subject<RequestInfo<FootstepsReports.IGetTrackerReportDataRequest, FootstepsReports.IGetTrackerReportDataResult>> = new Subject();\r\n                        \r\n                            public onNewGetTrackerReportData: Subject<RequestInfo<FootstepsReports.INewGetTrackerReportDataRequest, FootstepsReports.INewGetTrackerReportDataResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getLearningJourneyData(request : FootstepsReports.IGetLearningJourneyDataRequest, overridenToken?: string): Promise<FootstepsReports.IGetLearningJourneyDataResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsReports.IGetLearningJourneyDataRequest, FootstepsReports.IGetLearningJourneyDataResult>(request, 'FootstepsReports', 'GetLearningJourneyData', overridenToken);\r\n                                        \r\n                                            this.onGetLearningJourneyData.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getLearningOverview(request : FootstepsReports.IGetLearningOverviewRequest, overridenToken?: string): Promise<FootstepsReports.IGetLearningOverviewResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsReports.IGetLearningOverviewRequest, FootstepsReports.IGetLearningOverviewResult>(request, 'FootstepsReports', 'GetLearningOverview', overridenToken);\r\n                                        \r\n                                            this.onGetLearningOverview.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getMonthlyLeuvenScaleReportData(request : FootstepsReports.IGetMonthlyLeuvenScaleReportDataRequest, overridenToken?: string): Promise<FootstepsReports.IGetMonthlyLeuvenScaleReportDataResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsReports.IGetMonthlyLeuvenScaleReportDataRequest, FootstepsReports.IGetMonthlyLeuvenScaleReportDataResult>(request, 'FootstepsReports', 'GetMonthlyLeuvenScaleReportData', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetMonthlyLeuvenScaleReportData.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getTrackerReportData(request : FootstepsReports.IGetTrackerReportDataRequest, overridenToken?: string): Promise<FootstepsReports.IGetTrackerReportDataResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsReports.IGetTrackerReportDataRequest, FootstepsReports.IGetTrackerReportDataResult>(request, 'FootstepsReports', 'GetTrackerReportData', overridenToken);\r\n                                        \r\n                                            this.onGetTrackerReportData.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async newGetTrackerReportData(request : FootstepsReports.INewGetTrackerReportDataRequest, overridenToken?: string): Promise<FootstepsReports.INewGetTrackerReportDataResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsReports.INewGetTrackerReportDataRequest, FootstepsReports.INewGetTrackerReportDataResult>(request, 'FootstepsReports', 'NewGetTrackerReportData', overridenToken);\r\n                                        \r\n                                            this.onNewGetTrackerReportData.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsProgressReports {\r\n                    \r\n                            export enum GetAgeBandProgressPercentagesByDateForEyfs2021Error {\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                            export enum PrintProgressReportProgressReportType {\r\n                                day = 'day',\r\n                                year = 'year'\r\n                            }\r\n                        \r\n                            export enum PrintProgressReportGroupingType {\r\n                                oneForAll = 'oneForAll',\r\n                                oneEach = 'oneEach'\r\n                            }\r\n                        \r\n                                export interface IGetAgebandProgressPercentagesByDateRequest {\r\n                                    reportDates: string | moment.Moment | Date[],\r\n childIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IGetAgebandProgressPercentagesByDateResult {\r\n                                    successful: boolean,\r\n resultProgressAtDates: IGetAgebandProgressPercentagesByDateResultProgressAtDate[]\r\n                                }\r\n                            \r\n                                export interface IGetAgebandProgressPercentagesByDateResultProgressAtDate {\r\n                                    dateOfProgress: string | moment.Moment | Date,\r\n areasProgressData: IGetAgebandProgressPercentagesByDateResultAreaData[]\r\n                                }\r\n                           \r\n                                export interface IGetAgebandProgressPercentagesByDateResultAreaData {\r\n                                    areaKey: EyfsAreaKey,\r\n overallProgress: IGetAgebandProgressPercentagesByDateResultAgeBandScore[],\r\n totalProgress: IGetAgebandProgressPercentagesByDateResultAspectData[],\r\n childAreaProgress: IGetAgebandProgressPercentagesByDateResultChildAreaData[]\r\n                                }\r\n                           \r\n                                export interface IGetAgebandProgressPercentagesByDateResultChildAreaData {\r\n                                    childId: UUID,\r\n childFirstName: string,\r\n childLastName: string,\r\n ageInMonths: number,\r\n overallProgress: IGetAgebandProgressPercentagesByDateResultAgeBandScore[],\r\n aspectProgressData: IGetAgebandProgressPercentagesByDateResultAspectData[]\r\n                                }\r\n                           \r\n                                export interface IGetAgebandProgressPercentagesByDateResultAspectData {\r\n                                    aspectKey: EyfsAspectKey,\r\n scores: IGetAgebandProgressPercentagesByDateResultAgeBandScore[]\r\n                                }\r\n                           \r\n                                export interface IGetAgebandProgressPercentagesByDateResultAgeBandScore {\r\n                                    key: AgeBandKey,\r\n score: number | null\r\n                                }\r\n                           \r\n                                export interface IGetAgeBandProgressPercentagesByDateForEyfs2021Request {\r\n                                    reportDates: string | moment.Moment | Date[],\r\n childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetAgeBandProgressPercentagesByDateForEyfs2021Result {\r\n                                    childFirstName: string,\r\n childLastName: string,\r\n ageInMonths: number,\r\n successful: boolean,\r\n resultProgressAtDates: IGetAgeBandProgressPercentagesByDateForEyfs2021ResultProgressAtDate[],\r\n errors: GetAgeBandProgressPercentagesByDateForEyfs2021Error[],\r\n dateOfBirth: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetAgeBandProgressPercentagesByDateForEyfs2021ResultProgressAtDate {\r\n                                    dateOfProgress: string | moment.Moment | Date,\r\n areasProgressData: IGetAgeBandProgressPercentagesByDateForEyfs2021ResultAreaData[]\r\n                                }\r\n                           \r\n                                export interface IGetAgeBandProgressPercentagesByDateForEyfs2021ResultAreaData {\r\n                                    areaKey: EyfsAreaKey,\r\n progressByAgeBand: IGetAgeBandProgressPercentagesByDateForEyfs2021ResultAgeBandScore[]\r\n                                }\r\n                           \r\n                                export interface IGetAgeBandProgressPercentagesByDateForEyfs2021ResultAgeBandScore {\r\n                                    key: AgeBandKey,\r\n score: number | null\r\n                                }\r\n                           \r\n                                export interface IPrintProgressReportRequest {\r\n                                    fileName: string,\r\n reportType: PrintProgressReportProgressReportType,\r\n grouping: PrintProgressReportGroupingType,\r\n childIds: UUID[],\r\n reportDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsProgressReportsCommands {\r\n                    \r\n                            public onGetAgebandProgressPercentagesByDate: Subject<RequestInfo<FootstepsProgressReports.IGetAgebandProgressPercentagesByDateRequest, FootstepsProgressReports.IGetAgebandProgressPercentagesByDateResult>> = new Subject();\r\n                        \r\n                            public onGetAgeBandProgressPercentagesByDateForEyfs2021: Subject<RequestInfo<FootstepsProgressReports.IGetAgeBandProgressPercentagesByDateForEyfs2021Request, FootstepsProgressReports.IGetAgeBandProgressPercentagesByDateForEyfs2021Result>> = new Subject();\r\n                        \r\n                            \r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getAgebandProgressPercentagesByDate(request : FootstepsProgressReports.IGetAgebandProgressPercentagesByDateRequest, overridenToken?: string): Promise<FootstepsProgressReports.IGetAgebandProgressPercentagesByDateResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsProgressReports.IGetAgebandProgressPercentagesByDateRequest, FootstepsProgressReports.IGetAgebandProgressPercentagesByDateResult>(request, 'FootstepsProgressReports', 'GetAgebandProgressPercentagesByDate', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAgebandProgressPercentagesByDate.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAgeBandProgressPercentagesByDateForEyfs2021(request : FootstepsProgressReports.IGetAgeBandProgressPercentagesByDateForEyfs2021Request, overridenToken?: string): Promise<FootstepsProgressReports.IGetAgeBandProgressPercentagesByDateForEyfs2021Result> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsProgressReports.IGetAgeBandProgressPercentagesByDateForEyfs2021Request, FootstepsProgressReports.IGetAgeBandProgressPercentagesByDateForEyfs2021Result>(request, 'FootstepsProgressReports', 'GetAgeBandProgressPercentagesByDateForEyfs2021', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAgeBandProgressPercentagesByDateForEyfs2021.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            printProgressReport(request : FootstepsProgressReports.IPrintProgressReportRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsProgressReports', 'PrintProgressReport', overridenToken);\r\n                            }\r\n                            \r\n                            printProgressReportUrl(request : FootstepsProgressReports.IPrintProgressReportRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsProgressReports', 'PrintProgressReport', temporaryToken);\r\n                                return url;\r\n                            }} // End class\r\n                    \r\n                        export namespace FootstepsPrinting {\r\n                    \r\n                            export enum PrintLearningJourneyGroupingType {\r\n                                oneForAll = 'oneForAll',\r\n                                oneEach = 'oneEach'\r\n                            }\r\n                        \r\n                            export enum PrintNextStepsReportGroupingType {\r\n                                oneForAll = 'oneForAll',\r\n                                oneEach = 'oneEach'\r\n                            }\r\n                        \r\n                                export interface IPrintAchievementRequest {\r\n                                    fileName: string,\r\n achievementIds: UUID[],\r\n childIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IPrintAssessmentRequest {\r\n                                    assessmentId: UUID,\r\n assessmentType: AssessmentType,\r\n fileName: string\r\n                                }\r\n                            \r\n                                export interface IPrintCoelReportRequest {\r\n                                    childIds: UUID[],\r\n fileName: string,\r\n fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date,\r\n isOneEachGrouping: boolean\r\n                                }\r\n                            \r\n                                export interface IPrintLearningJourneyRequest {\r\n                                    childIds: UUID[],\r\n fileName: string,\r\n fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date,\r\n sortOrder: string,\r\n grouping: PrintLearningJourneyGroupingType\r\n                                }\r\n                            \r\n                                export interface IPrintLearningOverviewReportRequest {\r\n                                    childIds: UUID[],\r\n fileName: string,\r\n startDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IPrintNextStepsReportRequest {\r\n                                    childIds: UUID[],\r\n fileName: string,\r\n fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date,\r\n grouping: PrintNextStepsReportGroupingType\r\n                                }\r\n                            \r\n                                export interface IPrintWellbeingAndInvolvementReportRequest {\r\n                                    fileName: string,\r\n childIds: UUID[],\r\n reportStartDate: string | moment.Moment | Date,\r\n reportEndDate: string | moment.Moment | Date,\r\n matterKeys: ObservationMatterKey[],\r\n isOneEachGrouping: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsPrintingCommands {\r\n                    \r\n                            \r\n                        \r\n                            \r\n                        \r\n                            \r\n                        \r\n                            \r\n                        \r\n                            \r\n                        \r\n                            \r\n                        \r\n                            \r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    printAchievement(request : FootstepsPrinting.IPrintAchievementRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsPrinting', 'PrintAchievement', overridenToken);\r\n                            }\r\n                            \r\n                            printAchievementUrl(request : FootstepsPrinting.IPrintAchievementRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsPrinting', 'PrintAchievement', temporaryToken);\r\n                                return url;\r\n                            }printAssessment(request : FootstepsPrinting.IPrintAssessmentRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsPrinting', 'PrintAssessment', overridenToken);\r\n                            }\r\n                            \r\n                            printAssessmentUrl(request : FootstepsPrinting.IPrintAssessmentRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsPrinting', 'PrintAssessment', temporaryToken);\r\n                                return url;\r\n                            }printCoelReport(request : FootstepsPrinting.IPrintCoelReportRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsPrinting', 'PrintCoelReport', overridenToken);\r\n                            }\r\n                            \r\n                            printCoelReportUrl(request : FootstepsPrinting.IPrintCoelReportRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsPrinting', 'PrintCoelReport', temporaryToken);\r\n                                return url;\r\n                            }printLearningJourney(request : FootstepsPrinting.IPrintLearningJourneyRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsPrinting', 'PrintLearningJourney', overridenToken);\r\n                            }\r\n                            \r\n                            printLearningJourneyUrl(request : FootstepsPrinting.IPrintLearningJourneyRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsPrinting', 'PrintLearningJourney', temporaryToken);\r\n                                return url;\r\n                            }printLearningOverviewReport(request : FootstepsPrinting.IPrintLearningOverviewReportRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsPrinting', 'PrintLearningOverviewReport', overridenToken);\r\n                            }\r\n                            \r\n                            printLearningOverviewReportUrl(request : FootstepsPrinting.IPrintLearningOverviewReportRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsPrinting', 'PrintLearningOverviewReport', temporaryToken);\r\n                                return url;\r\n                            }printNextStepsReport(request : FootstepsPrinting.IPrintNextStepsReportRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsPrinting', 'PrintNextStepsReport', overridenToken);\r\n                            }\r\n                            \r\n                            printNextStepsReportUrl(request : FootstepsPrinting.IPrintNextStepsReportRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsPrinting', 'PrintNextStepsReport', temporaryToken);\r\n                                return url;\r\n                            }printWellbeingAndInvolvementReport(request : FootstepsPrinting.IPrintWellbeingAndInvolvementReportRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsPrinting', 'PrintWellbeingAndInvolvementReport', overridenToken);\r\n                            }\r\n                            \r\n                            printWellbeingAndInvolvementReportUrl(request : FootstepsPrinting.IPrintWellbeingAndInvolvementReportRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsPrinting', 'PrintWellbeingAndInvolvementReport', temporaryToken);\r\n                                return url;\r\n                            }} // End class\r\n                    \r\n                        export namespace FootstepsObservations {\r\n                    \r\n                            export enum ApproveObservationError {\r\n                                observationNotFound = 'observationNotFound'\r\n                            }\r\n                        \r\n                            export enum CreateCarerObservationError {\r\n                                descriptionEmpty = 'descriptionEmpty',\r\n                                recordedDateInFuture = 'recordedDateInFuture',\r\n                                childListEmpty = 'childListEmpty',\r\n                                childNotFound = 'childNotFound',\r\n                                invalidChildForCarer = 'invalidChildForCarer',\r\n                                fileNotFound = 'fileNotFound'\r\n                            }\r\n                        \r\n                            export enum CreateObservationCommandError {\r\n                                descriptionEmpty = 'descriptionEmpty',\r\n                                recordedDateInFuture = 'recordedDateInFuture',\r\n                                childListEmpty = 'childListEmpty'\r\n                            }\r\n                        \r\n                            export enum CreateObservationFromGroupObservationError {\r\n                                observationNotFound = 'observationNotFound',\r\n                                childNotInObservation = 'childNotInObservation'\r\n                            }\r\n                        \r\n                            export enum DeleteCarerObservationMediaError {\r\n                                observationNotFound = 'observationNotFound',\r\n                                userDoesNotOwnObservation = 'userDoesNotOwnObservation',\r\n                                fileDoesNotExist = 'fileDoesNotExist',\r\n                                fileDoesNotExistAgainstObservation = 'fileDoesNotExistAgainstObservation'\r\n                            }\r\n                        \r\n                            export enum DeleteChildObservationError {\r\n                                observationNotFound = 'observationNotFound',\r\n                                childObservationNotFound = 'childObservationNotFound'\r\n                            }\r\n                        \r\n                            export enum DeleteObservationAsCurrentCarerError {\r\n                                observationNotFound = 'observationNotFound',\r\n                                permissionDenied = 'permissionDenied',\r\n                                notADraft = 'notADraft'\r\n                            }\r\n                        \r\n                            export enum DeleteObservationError {\r\n                                observationNotFound = 'observationNotFound'\r\n                            }\r\n                        \r\n                            export enum DeleteObservationsError {\r\n                                observationNotFound = 'observationNotFound'\r\n                            }\r\n                        \r\n                            export enum EditCarerObservationError {\r\n                                observationNotFound = 'observationNotFound',\r\n                                childListEmpty = 'childListEmpty',\r\n                                fileNotFound = 'fileNotFound',\r\n                                missingChunks = 'missingChunks',\r\n                                invalidUser = 'invalidUser',\r\n                                businessNotFound = 'businessNotFound'\r\n                            }\r\n                        \r\n                            export enum GetCarerHomeObservationError {\r\n                                observationNotFound = 'observationNotFound',\r\n                                userDoesNotOwnObservation = 'userDoesNotOwnObservation'\r\n                            }\r\n                        \r\n                            export enum GetObservationCountByTypesAndStatusError {\r\n                                observationTypesIsNull = 'observationTypesIsNull'\r\n                            }\r\n                        \r\n                            export enum GetObservationError {\r\n                                observationNotFound = 'observationNotFound'\r\n                            }\r\n                        \r\n                            export enum GetObservationsAwaitingApprovalError {\r\n                                userHasNoPermissions = 'userHasNoPermissions'\r\n                            }\r\n                        \r\n                            export enum GetSuggestedNextStepCommandError {\r\n                                observationNotFound = 'observationNotFound'\r\n                            }\r\n                        \r\n                            export enum RejectObservationError {\r\n                                observationNotFound = 'observationNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateObservationCommandError {\r\n                                observationNotFound = 'observationNotFound',\r\n                                childListEmpty = 'childListEmpty'\r\n                            }\r\n                        \r\n                                export interface IApproveObservationRequest {\r\n                                    observationIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IApproveObservationResult {\r\n                                    successful: boolean,\r\n errors: ApproveObservationError[]\r\n                                }\r\n                            \r\n                                export interface ICreateCarerObservationRequest {\r\n                                    childIds: UUID[],\r\n observedDate: string | moment.Moment | Date,\r\n description: string,\r\n fileIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface ICreateCarerObservationResult {\r\n                                    successful: boolean,\r\n observationId: UUID,\r\n childObservations: ICreateCarerObservationCommandResultChildChildObservationPair[],\r\n errors: CreateCarerObservationError[]\r\n                                }\r\n                            \r\n                                export interface ICreateCarerObservationCommandResultChildChildObservationPair {\r\n                                    childId: UUID,\r\n childObservationId: UUID\r\n                                }\r\n                           \r\n                                export interface ICreateObservationCommandRequest {\r\n                                    description: string,\r\n type: ObservationType,\r\n childList: UUID[]\r\n                                }\r\n                            \r\n                                export interface ICreateObservationCommandResult {\r\n                                    successful: boolean,\r\n observationId: UUID | null,\r\n childObservations: ICreateObservationCommandResultChildChildObservationPair[],\r\n errors: CreateObservationCommandError[]\r\n                                }\r\n                            \r\n                                export interface ICreateObservationCommandResultChildChildObservationPair {\r\n                                    childId: UUID,\r\n childObservationId: UUID\r\n                                }\r\n                           \r\n                                export interface ICreateObservationFromGroupObservationRequest {\r\n                                    observationId: UUID,\r\n childId: UUID\r\n                                }\r\n                            \r\n                                export interface ICreateObservationFromGroupObservationResult {\r\n                                    successful: boolean,\r\n observationId: UUID,\r\n errors: CreateObservationFromGroupObservationError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteCarerObservationMediaRequest {\r\n                                    observationId: UUID,\r\n fileId: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteCarerObservationMediaResult {\r\n                                    successful: boolean,\r\n errors: DeleteCarerObservationMediaError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteChildObservationRequest {\r\n                                    observationId: UUID,\r\n childIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IDeleteChildObservationResult {\r\n                                    successful: boolean,\r\n errors: DeleteChildObservationError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteObservationAsCurrentCarerRequest {\r\n                                    observationId: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteObservationAsCurrentCarerResult {\r\n                                    successful: boolean,\r\n errors: DeleteObservationAsCurrentCarerError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteObservationRequest {\r\n                                    observationId: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteObservationResult {\r\n                                    successful: boolean,\r\n errors: DeleteObservationError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteObservationsRequest {\r\n                                    observationIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IDeleteObservationsResult {\r\n                                    successful: boolean,\r\n errors: DeleteObservationsError[]\r\n                                }\r\n                            \r\n                                export interface IEditCarerObservationRequest {\r\n                                    observationId: UUID,\r\n childIds: UUID[],\r\n recordedDate: string | moment.Moment | Date,\r\n description: string,\r\n fileIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IEditCarerObservationResult {\r\n                                    successful: boolean,\r\n observationId: UUID,\r\n childObservations: IEditCarerObservationCommandResultChildChildObservationPair[],\r\n errors: EditCarerObservationError[],\r\n observedDate: string | moment.Moment | Date,\r\n description: string\r\n                                }\r\n                            \r\n                                export interface IEditCarerObservationCommandResultChildChildObservationPair {\r\n                                    childId: UUID,\r\n childObservationId: UUID\r\n                                }\r\n                           \r\n                                export interface IGetAllObservationsForCurrentCarersChildrenRequest {\r\n                                    fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetAllObservationsForCurrentCarersChildrenResult {\r\n                                    observations: IGetAllObservationsForCurrentCarersChildrenCommandResultObservation[]\r\n                                }\r\n                            \r\n                                export interface IGetAllObservationsForCurrentCarersChildrenCommandResultObservation {\r\n                                    id: UUID,\r\n recordedDate: string | moment.Moment | Date,\r\n description: string,\r\n status: ObservationStatus,\r\n type: ObservationType,\r\n nextSteps: string,\r\n fromDate: string | moment.Moment | Date | null,\r\n toDate: string | moment.Moment | Date | null,\r\n children: IGetAllObservationsForCurrentCarersChildrenCommandResultChild[],\r\n fileUrls: IGetAllObservationsForCurrentCarersChildrenCommandResultUploadedFileUrls[],\r\n matters: IGetAllObservationsForCurrentCarersChildrenCommandResultMatter[]\r\n                                }\r\n                           \r\n                                export interface IGetAllObservationsForCurrentCarersChildrenCommandResultChild {\r\n                                    firstName: string,\r\n lastName: string,\r\n legacyChildId: number\r\n                                }\r\n                           \r\n                                export interface IGetAllObservationsForCurrentCarersChildrenCommandResultUploadedFileUrls {\r\n                                    fileId: UUID,\r\n isVideo: boolean,\r\n full: string,\r\n small: string,\r\n medium: string,\r\n large: string,\r\n previewBlur: boolean\r\n                                }\r\n                           \r\n                                export interface IGetAllObservationsForCurrentCarersChildrenCommandResultMatter {\r\n                                    areaKey: EyfsAreaKey,\r\n ageBand: AgeBandKey,\r\n aspectKey: EyfsAspectKey\r\n                                }\r\n                           \r\n                                export interface IGetAssembledNurseryObservationByStatusRequest {\r\n                                    status: ObservationStatus,\r\n assembleFiles: boolean\r\n                                }\r\n                            \r\n                                export interface IGetAssembledNurseryObservationByStatusResult {\r\n                                    observations: any; // Parenta.Footsteps.Entities.AssembledObservation[]\r\n                                }\r\n                            \r\n                                export interface IGetAssembledObservationsByStatusRequest {\r\n                                    status: ObservationStatus,\r\n assembleFiles: boolean\r\n                                }\r\n                            \r\n                                export interface IGetAssembledObservationsByStatusResult {\r\n                                    observations: any; // Parenta.Footsteps.Entities.AssembledObservation[]\r\n                                }\r\n                            \r\n                                export interface IGetBaselineObservationCountByChildIdRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetBaselineObservationCountByChildIdResult {\r\n                                    baselineObservationCount: number\r\n                                }\r\n                            \r\n                                export interface IGetCarerHomeObservationRequest {\r\n                                    observationId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetCarerHomeObservationResult {\r\n                                    successful: boolean,\r\n observation: IGetCarerHomeObservationCommandResultCarerObservation,\r\n errors: GetCarerHomeObservationError[]\r\n                                }\r\n                            \r\n                                export interface IGetCarerHomeObservationCommandResultCarerObservation {\r\n                                    id: UUID,\r\n recordedDate: string | moment.Moment | Date,\r\n description: string,\r\n children: IGetCarerHomeObservationCommandResultCarerObservationChild[],\r\n uploadedFiles: IGetCarerHomeObservationCommandResultUploadedFile[]\r\n                                }\r\n                           \r\n                                export interface IGetCarerHomeObservationCommandResultCarerObservationChild {\r\n                                    id: UUID,\r\n fullName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n photoUrl: string\r\n                                }\r\n                           \r\n                                export interface IGetCarerHomeObservationCommandResultUploadedFile {\r\n                                    fileId: UUID,\r\n isVideo: boolean,\r\n full: string,\r\n small: string,\r\n medium: string,\r\n large: string,\r\n previewBlur: boolean\r\n                                }\r\n                           \r\n                                export interface IGetCarerHomeObservationsCountForCurrentMonthResult {\r\n                                    successful: boolean,\r\n count: number\r\n                                }\r\n                            \r\n                                export interface IGetChildsObservationsByEyfsAreaRequest {\r\n                                    childId: UUID,\r\n area: EyfsAreaKey\r\n                                }\r\n                            \r\n                                export interface IGetChildsObservationsByEyfsAreaResult {\r\n                                    observations: IGetChildsObservationsByEyfsAreaCommandResultObservation[]\r\n                                }\r\n                            \r\n                                export interface IGetChildsObservationsByEyfsAreaCommandResultObservation {\r\n                                    id: UUID,\r\n isGroupObservation: boolean,\r\n hasMediaFiles: boolean,\r\n eyfsAreas: EyfsAreaKey[],\r\n status: ObservationStatus,\r\n description: string,\r\n creator: IGetChildsObservationsByEyfsAreaCommandResultUser,\r\n updater: IGetChildsObservationsByEyfsAreaCommandResultUser,\r\n whenCreated: string | moment.Moment | Date,\r\n whenUpdated: string | moment.Moment | Date,\r\n observationDate: string | moment.Moment | Date,\r\n children: IGetChildsObservationsByEyfsAreaCommandResultChild[],\r\n fileUrls: IGetChildsObservationsByEyfsAreaCommandResultUploadedFileUrls[],\r\n observationType: ObservationType,\r\n curriculums: CurriculumKey[]\r\n                                }\r\n                           \r\n                                export interface IGetChildsObservationsByEyfsAreaCommandResultChild {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                                export interface IGetChildsObservationsByEyfsAreaCommandResultUploadedFileUrls {\r\n                                    full: string,\r\n small: string,\r\n medium: string,\r\n large: string,\r\n isVideo: boolean\r\n                                }\r\n                           \r\n                                export interface IGetChildsObservationsByEyfsAreaCommandResultUser {\r\n                                    id: UUID,\r\n fullName: string\r\n                                }\r\n                           \r\n                                export interface IGetChildsObservationsByObservationStatusRequest {\r\n                                    childId: UUID,\r\n status: ObservationStatus\r\n                                }\r\n                            \r\n                                export interface IGetChildsObservationsByObservationStatusResult {\r\n                                    observations: IGetChildsObservationsByObservationStatusCommandResultObservation[]\r\n                                }\r\n                            \r\n                                export interface IGetChildsObservationsByObservationStatusCommandResultObservation {\r\n                                    id: UUID,\r\n isGroupObservation: boolean,\r\n hasMediaFiles: boolean,\r\n eyfsAreas: EyfsAreaKey[],\r\n status: ObservationStatus,\r\n description: string,\r\n creator: IGetChildsObservationsByObservationStatusCommandResultUser,\r\n updater: IGetChildsObservationsByObservationStatusCommandResultUser,\r\n whenCreated: string | moment.Moment | Date,\r\n whenUpdated: string | moment.Moment | Date,\r\n observationDate: string | moment.Moment | Date,\r\n children: IGetChildsObservationsByObservationStatusCommandResultChild[],\r\n fileUrls: IGetChildsObservationsByObservationStatusCommandResultUploadedFileUrls[],\r\n observationType: ObservationType,\r\n curriculums: CurriculumKey[]\r\n                                }\r\n                           \r\n                                export interface IGetChildsObservationsByObservationStatusCommandResultChild {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string,\r\n photoUrl: string\r\n                                }\r\n                           \r\n                                export interface IGetChildsObservationsByObservationStatusCommandResultUploadedFileUrls {\r\n                                    full: string,\r\n small: string,\r\n medium: string,\r\n large: string,\r\n isVideo: boolean\r\n                                }\r\n                           \r\n                                export interface IGetChildsObservationsByObservationStatusCommandResultUser {\r\n                                    id: UUID,\r\n fullName: string\r\n                                }\r\n                           \r\n                                export interface IGetChildsUnassignedObservationsRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetChildsUnassignedObservationsResult {\r\n                                    observations: IGetChildsUnassignedObservationsCommandResultObservation[]\r\n                                }\r\n                            \r\n                                export interface IGetChildsUnassignedObservationsCommandResultObservation {\r\n                                    id: UUID,\r\n isGroupObservation: boolean,\r\n hasMediaFiles: boolean,\r\n eyfsAreas: EyfsAreaKey[],\r\n status: ObservationStatus,\r\n description: string,\r\n creator: IGetChildsUnassignedObservationsCommandResultUser,\r\n updater: IGetChildsUnassignedObservationsCommandResultUser,\r\n whenCreated: string | moment.Moment | Date,\r\n whenUpdated: string | moment.Moment | Date,\r\n observationDate: string | moment.Moment | Date,\r\n children: IGetChildsUnassignedObservationsCommandResultChild[],\r\n curriculums: CurriculumKey[],\r\n fileUrls: IGetChildsUnassignedObservationsCommandResultUploadedFileUrls[],\r\n observationType: ObservationType\r\n                                }\r\n                           \r\n                                export interface IGetChildsUnassignedObservationsCommandResultChild {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                                export interface IGetChildsUnassignedObservationsCommandResultUploadedFileUrls {\r\n                                    full: string,\r\n small: string,\r\n medium: string,\r\n large: string,\r\n isVideo: boolean\r\n                                }\r\n                           \r\n                                export interface IGetChildsUnassignedObservationsCommandResultUser {\r\n                                    id: UUID,\r\n fullName: string\r\n                                }\r\n                           \r\n                                export interface IGetDraftCarerHomeObservationsCountResult {\r\n                                    draftCarerHomeObservationsCount: number\r\n                                }\r\n                            \r\n                                export interface IGetDraftCarerHomeObservationsResult {\r\n                                    observations: any; // Parenta.Footsteps.Entities.AssembledObservation[]\r\n                                }\r\n                            \r\n                                export interface IGetObservationCountByStatusRequest {\r\n                                    status: ObservationStatus\r\n                                }\r\n                            \r\n                                export interface IGetObservationCountByStatusResult {\r\n                                    observationCount: number\r\n                                }\r\n                            \r\n                                export interface IGetObservationCountByTypeForChildRequest {\r\n                                    childId: UUID,\r\n observationType: ObservationType\r\n                                }\r\n                            \r\n                                export interface IGetObservationCountByTypeForChildResult {\r\n                                    observationCount: number\r\n                                }\r\n                            \r\n                                export interface IGetObservationCountByTypesAndStatusRequest {\r\n                                    observationTypes: ObservationType[],\r\n observationStatus: ObservationStatus\r\n                                }\r\n                            \r\n                                export interface IGetObservationCountByTypesAndStatusResult {\r\n                                    successful: boolean,\r\n count: number,\r\n errors: GetObservationCountByTypesAndStatusError\r\n                                }\r\n                            \r\n                                export interface IGetObservationRequest {\r\n                                    observationId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetObservationResult {\r\n                                    observation: IGetObservationCommandResultObservationResult,\r\n errors: GetObservationError[],\r\n successful: boolean,\r\n childrenInObservation: IGetObservationCommandResultObservationChild[],\r\n childObservationIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IGetObservationCommandResultObservationResult {\r\n                                    id: UUID,\r\n recordedDate: string | moment.Moment | Date,\r\n description: string,\r\n status: ObservationStatus,\r\n type: ObservationType,\r\n parentObservationId: UUID | null,\r\n createdByUserId: UUID | null,\r\n whenCreated: string | moment.Moment | Date,\r\n whenDeleted: string | moment.Moment | Date | null,\r\n deleteByUserId: UUID | null,\r\n lastEditedByUserId: UUID | null,\r\n lastEditedDate: string | moment.Moment | Date,\r\n nextStepsDescription: string,\r\n nextStepFromDate: string | moment.Moment | Date | null,\r\n nextStepsToDate: string | moment.Moment | Date | null,\r\n clonedFromObservationId: UUID | null,\r\n reasonForRejection: string\r\n                                }\r\n                           \r\n                                export interface IGetObservationCommandResultObservationChild {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n photoUrl: string\r\n                                }\r\n                           \r\n                                export interface IGetObservationsAwaitingApprovalResult {\r\n                                    successful: boolean,\r\n errors: GetObservationsAwaitingApprovalError[],\r\n assembledObservations: any; // Parenta.Footsteps.Entities.AssembledObservation[]\r\n                                }\r\n                            \r\n                                export interface IGetObservationsByTypeRequest {\r\n                                    type: ObservationType\r\n                                }\r\n                            \r\n                                export interface IGetObservationsByTypeResult {\r\n                                    successful: boolean,\r\n observations: IGetObservationsByTypeResultObservation[]\r\n                                }\r\n                            \r\n                                export interface IGetObservationsByTypeResultObservation {\r\n                                    id: UUID,\r\n recordedDate: string | moment.Moment | Date,\r\n description: string,\r\n status: ObservationStatus,\r\n type: ObservationType,\r\n parentObservationId: UUID | null,\r\n createdByUserId: UUID | null,\r\n whenCreated: string | moment.Moment | Date,\r\n whenDeleted: string | moment.Moment | Date | null,\r\n deleteByUserId: UUID | null,\r\n lastEditedByUserId: UUID | null,\r\n lastEditedDate: string | moment.Moment | Date,\r\n nextStepsDescription: string,\r\n nextStepFromDate: string | moment.Moment | Date | null,\r\n nextStepsToDate: string | moment.Moment | Date | null,\r\n childrenInObservation: IGetObservationsByTypeResultObservationChild[]\r\n                                }\r\n                           \r\n                                export interface IGetObservationsByTypeResultObservationChild {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n photoUrl: string\r\n                                }\r\n                           \r\n                                export interface IGetSuggestedNextStepCommandRequest {\r\n                                    observationId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetSuggestedNextStepCommandResult {\r\n                                    successful: boolean,\r\n matterList: IGetSuggestedNextStepCommandResultSuggestedNextStepResult[],\r\n errors: GetSuggestedNextStepCommandError[]\r\n                                }\r\n                            \r\n                                export interface IGetSuggestedNextStepCommandResultSuggestedNextStepResult {\r\n                                    childId: UUID,\r\n score: number,\r\n curriculumKey: CurriculumKey,\r\n matterKey: ObservationMatterKey\r\n                                }\r\n                           \r\n                                export interface IRejectObservationRequest {\r\n                                    observationIds: UUID[],\r\n rejectionReason: string\r\n                                }\r\n                            \r\n                                export interface IRejectObservationResult {\r\n                                    successful: boolean,\r\n errors: RejectObservationError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateObservationCommandRequest {\r\n                                    observationId: UUID,\r\n recordedDate: string | moment.Moment | Date,\r\n description: string,\r\n status: ObservationStatus,\r\n type: ObservationType,\r\n parentObservationId: UUID | null,\r\n nextSteps: string,\r\n childList: UUID[],\r\n startDate: string | moment.Moment | Date | null,\r\n endDate: string | moment.Moment | Date | null\r\n                                }\r\n                            \r\n                                export interface IUpdateObservationCommandResult {\r\n                                    observationId: UUID | null,\r\n successful: boolean,\r\n errors: UpdateObservationCommandError[],\r\n childObservations: IUpdateObservationCommandResultChildChildObservationPair[]\r\n                                }\r\n                            \r\n                                export interface IUpdateObservationCommandResultChildChildObservationPair {\r\n                                    childId: UUID,\r\n childObservationId: UUID\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsObservationsCommands {\r\n                    \r\n                            public onApproveObservation: Subject<RequestInfo<FootstepsObservations.IApproveObservationRequest, FootstepsObservations.IApproveObservationResult>> = new Subject();\r\n                        \r\n                            public onCreateCarerObservation: Subject<RequestInfo<FootstepsObservations.ICreateCarerObservationRequest, FootstepsObservations.ICreateCarerObservationResult>> = new Subject();\r\n                        \r\n                            public onCreateObservationCommand: Subject<RequestInfo<FootstepsObservations.ICreateObservationCommandRequest, FootstepsObservations.ICreateObservationCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateObservationFromGroupObservation: Subject<RequestInfo<FootstepsObservations.ICreateObservationFromGroupObservationRequest, FootstepsObservations.ICreateObservationFromGroupObservationResult>> = new Subject();\r\n                        \r\n                            public onDeleteCarerObservationMedia: Subject<RequestInfo<FootstepsObservations.IDeleteCarerObservationMediaRequest, FootstepsObservations.IDeleteCarerObservationMediaResult>> = new Subject();\r\n                        \r\n                            public onDeleteChildObservation: Subject<RequestInfo<FootstepsObservations.IDeleteChildObservationRequest, FootstepsObservations.IDeleteChildObservationResult>> = new Subject();\r\n                        \r\n                            public onDeleteObservationAsCurrentCarer: Subject<RequestInfo<FootstepsObservations.IDeleteObservationAsCurrentCarerRequest, FootstepsObservations.IDeleteObservationAsCurrentCarerResult>> = new Subject();\r\n                        \r\n                            public onDeleteObservation: Subject<RequestInfo<FootstepsObservations.IDeleteObservationRequest, FootstepsObservations.IDeleteObservationResult>> = new Subject();\r\n                        \r\n                            public onDeleteObservations: Subject<RequestInfo<FootstepsObservations.IDeleteObservationsRequest, FootstepsObservations.IDeleteObservationsResult>> = new Subject();\r\n                        \r\n                            public onEditCarerObservation: Subject<RequestInfo<FootstepsObservations.IEditCarerObservationRequest, FootstepsObservations.IEditCarerObservationResult>> = new Subject();\r\n                        \r\n                            public onGetAllObservationsForCurrentCarersChildren: Subject<RequestInfo<FootstepsObservations.IGetAllObservationsForCurrentCarersChildrenRequest, FootstepsObservations.IGetAllObservationsForCurrentCarersChildrenResult>> = new Subject();\r\n                        \r\n                            public onGetAssembledNurseryObservationByStatus: Subject<RequestInfo<FootstepsObservations.IGetAssembledNurseryObservationByStatusRequest, FootstepsObservations.IGetAssembledNurseryObservationByStatusResult>> = new Subject();\r\n                        \r\n                            public onGetAssembledObservationsByStatus: Subject<RequestInfo<FootstepsObservations.IGetAssembledObservationsByStatusRequest, FootstepsObservations.IGetAssembledObservationsByStatusResult>> = new Subject();\r\n                        \r\n                            public onGetBaselineObservationCountByChildId: Subject<RequestInfo<FootstepsObservations.IGetBaselineObservationCountByChildIdRequest, FootstepsObservations.IGetBaselineObservationCountByChildIdResult>> = new Subject();\r\n                        \r\n                            public onGetCarerHomeObservation: Subject<RequestInfo<FootstepsObservations.IGetCarerHomeObservationRequest, FootstepsObservations.IGetCarerHomeObservationResult>> = new Subject();\r\n                        \r\n                            public onGetCarerHomeObservationsCountForCurrentMonth: Subject<FootstepsObservations.IGetCarerHomeObservationsCountForCurrentMonthResult> = new Subject();\r\n                        \r\n                            public onGetChildsObservationsByEyfsArea: Subject<RequestInfo<FootstepsObservations.IGetChildsObservationsByEyfsAreaRequest, FootstepsObservations.IGetChildsObservationsByEyfsAreaResult>> = new Subject();\r\n                        \r\n                            public onGetChildsObservationsByObservationStatus: Subject<RequestInfo<FootstepsObservations.IGetChildsObservationsByObservationStatusRequest, FootstepsObservations.IGetChildsObservationsByObservationStatusResult>> = new Subject();\r\n                        \r\n                            public onGetChildsUnassignedObservations: Subject<RequestInfo<FootstepsObservations.IGetChildsUnassignedObservationsRequest, FootstepsObservations.IGetChildsUnassignedObservationsResult>> = new Subject();\r\n                        \r\n                            public onGetDraftCarerHomeObservationsCount: Subject<FootstepsObservations.IGetDraftCarerHomeObservationsCountResult> = new Subject();\r\n                        \r\n                            public onGetDraftCarerHomeObservations: Subject<FootstepsObservations.IGetDraftCarerHomeObservationsResult> = new Subject();\r\n                        \r\n                            public onGetObservationCountByStatus: Subject<RequestInfo<FootstepsObservations.IGetObservationCountByStatusRequest, FootstepsObservations.IGetObservationCountByStatusResult>> = new Subject();\r\n                        \r\n                            public onGetObservationCountByTypeForChild: Subject<RequestInfo<FootstepsObservations.IGetObservationCountByTypeForChildRequest, FootstepsObservations.IGetObservationCountByTypeForChildResult>> = new Subject();\r\n                        \r\n                            public onGetObservationCountByTypesAndStatus: Subject<RequestInfo<FootstepsObservations.IGetObservationCountByTypesAndStatusRequest, FootstepsObservations.IGetObservationCountByTypesAndStatusResult>> = new Subject();\r\n                        \r\n                            public onGetObservation: Subject<RequestInfo<FootstepsObservations.IGetObservationRequest, FootstepsObservations.IGetObservationResult>> = new Subject();\r\n                        \r\n                            public onGetObservationsAwaitingApproval: Subject<FootstepsObservations.IGetObservationsAwaitingApprovalResult> = new Subject();\r\n                        \r\n                            public onGetObservationsByType: Subject<RequestInfo<FootstepsObservations.IGetObservationsByTypeRequest, FootstepsObservations.IGetObservationsByTypeResult>> = new Subject();\r\n                        \r\n                            public onGetSuggestedNextStepCommand: Subject<RequestInfo<FootstepsObservations.IGetSuggestedNextStepCommandRequest, FootstepsObservations.IGetSuggestedNextStepCommandResult>> = new Subject();\r\n                        \r\n                            public onRejectObservation: Subject<RequestInfo<FootstepsObservations.IRejectObservationRequest, FootstepsObservations.IRejectObservationResult>> = new Subject();\r\n                        \r\n                            public onUpdateObservationCommand: Subject<RequestInfo<FootstepsObservations.IUpdateObservationCommandRequest, FootstepsObservations.IUpdateObservationCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async approveObservation(request : FootstepsObservations.IApproveObservationRequest, overridenToken?: string): Promise<FootstepsObservations.IApproveObservationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IApproveObservationRequest, FootstepsObservations.IApproveObservationResult>(request, 'FootstepsObservations', 'ApproveObservation', overridenToken);\r\n                                        \r\n                                            this.onApproveObservation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createCarerObservation(request : FootstepsObservations.ICreateCarerObservationRequest, overridenToken?: string): Promise<FootstepsObservations.ICreateCarerObservationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.ICreateCarerObservationRequest, FootstepsObservations.ICreateCarerObservationResult>(request, 'FootstepsObservations', 'CreateCarerObservation', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateCarerObservation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createObservationCommand(request : FootstepsObservations.ICreateObservationCommandRequest, overridenToken?: string): Promise<FootstepsObservations.ICreateObservationCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.ICreateObservationCommandRequest, FootstepsObservations.ICreateObservationCommandResult>(request, 'FootstepsObservations', 'CreateObservationCommand', overridenToken);\r\n                                        \r\n                                            this.onCreateObservationCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createObservationFromGroupObservation(request : FootstepsObservations.ICreateObservationFromGroupObservationRequest, overridenToken?: string): Promise<FootstepsObservations.ICreateObservationFromGroupObservationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.ICreateObservationFromGroupObservationRequest, FootstepsObservations.ICreateObservationFromGroupObservationResult>(request, 'FootstepsObservations', 'CreateObservationFromGroupObservation', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateObservationFromGroupObservation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteCarerObservationMedia(request : FootstepsObservations.IDeleteCarerObservationMediaRequest, overridenToken?: string): Promise<FootstepsObservations.IDeleteCarerObservationMediaResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IDeleteCarerObservationMediaRequest, FootstepsObservations.IDeleteCarerObservationMediaResult>(request, 'FootstepsObservations', 'DeleteCarerObservationMedia', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteCarerObservationMedia.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteChildObservation(request : FootstepsObservations.IDeleteChildObservationRequest, overridenToken?: string): Promise<FootstepsObservations.IDeleteChildObservationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IDeleteChildObservationRequest, FootstepsObservations.IDeleteChildObservationResult>(request, 'FootstepsObservations', 'DeleteChildObservation', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteChildObservation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteObservationAsCurrentCarer(request : FootstepsObservations.IDeleteObservationAsCurrentCarerRequest, overridenToken?: string): Promise<FootstepsObservations.IDeleteObservationAsCurrentCarerResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IDeleteObservationAsCurrentCarerRequest, FootstepsObservations.IDeleteObservationAsCurrentCarerResult>(request, 'FootstepsObservations', 'DeleteObservationAsCurrentCarer', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteObservationAsCurrentCarer.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteObservation(request : FootstepsObservations.IDeleteObservationRequest, overridenToken?: string): Promise<FootstepsObservations.IDeleteObservationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IDeleteObservationRequest, FootstepsObservations.IDeleteObservationResult>(request, 'FootstepsObservations', 'DeleteObservation', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteObservation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteObservations(request : FootstepsObservations.IDeleteObservationsRequest, overridenToken?: string): Promise<FootstepsObservations.IDeleteObservationsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IDeleteObservationsRequest, FootstepsObservations.IDeleteObservationsResult>(request, 'FootstepsObservations', 'DeleteObservations', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteObservations.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async editCarerObservation(request : FootstepsObservations.IEditCarerObservationRequest, overridenToken?: string): Promise<FootstepsObservations.IEditCarerObservationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IEditCarerObservationRequest, FootstepsObservations.IEditCarerObservationResult>(request, 'FootstepsObservations', 'EditCarerObservation', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onEditCarerObservation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAllObservationsForCurrentCarersChildren(request : FootstepsObservations.IGetAllObservationsForCurrentCarersChildrenRequest, overridenToken?: string): Promise<FootstepsObservations.IGetAllObservationsForCurrentCarersChildrenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetAllObservationsForCurrentCarersChildrenRequest, FootstepsObservations.IGetAllObservationsForCurrentCarersChildrenResult>(request, 'FootstepsObservations', 'GetAllObservationsForCurrentCarersChildren', overridenToken);\r\n                                        \r\n                                            this.onGetAllObservationsForCurrentCarersChildren.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAssembledNurseryObservationByStatus(request : FootstepsObservations.IGetAssembledNurseryObservationByStatusRequest, overridenToken?: string): Promise<FootstepsObservations.IGetAssembledNurseryObservationByStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetAssembledNurseryObservationByStatusRequest, FootstepsObservations.IGetAssembledNurseryObservationByStatusResult>(request, 'FootstepsObservations', 'GetAssembledNurseryObservationByStatus', overridenToken);\r\n                                        \r\n                                            this.onGetAssembledNurseryObservationByStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAssembledObservationsByStatus(request : FootstepsObservations.IGetAssembledObservationsByStatusRequest, overridenToken?: string): Promise<FootstepsObservations.IGetAssembledObservationsByStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetAssembledObservationsByStatusRequest, FootstepsObservations.IGetAssembledObservationsByStatusResult>(request, 'FootstepsObservations', 'GetAssembledObservationsByStatus', overridenToken);\r\n                                        \r\n                                            this.onGetAssembledObservationsByStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getBaselineObservationCountByChildId(request : FootstepsObservations.IGetBaselineObservationCountByChildIdRequest, overridenToken?: string): Promise<FootstepsObservations.IGetBaselineObservationCountByChildIdResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetBaselineObservationCountByChildIdRequest, FootstepsObservations.IGetBaselineObservationCountByChildIdResult>(request, 'FootstepsObservations', 'GetBaselineObservationCountByChildId', overridenToken);\r\n                                        \r\n                                            this.onGetBaselineObservationCountByChildId.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getCarerHomeObservation(request : FootstepsObservations.IGetCarerHomeObservationRequest, overridenToken?: string): Promise<FootstepsObservations.IGetCarerHomeObservationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetCarerHomeObservationRequest, FootstepsObservations.IGetCarerHomeObservationResult>(request, 'FootstepsObservations', 'GetCarerHomeObservation', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetCarerHomeObservation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getCarerHomeObservationsCountForCurrentMonth(overridenToken?: string): Promise<FootstepsObservations.IGetCarerHomeObservationsCountForCurrentMonthResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsObservations.IGetCarerHomeObservationsCountForCurrentMonthResult>({}, 'FootstepsObservations', 'GetCarerHomeObservationsCountForCurrentMonth', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetCarerHomeObservationsCountForCurrentMonth.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildsObservationsByEyfsArea(request : FootstepsObservations.IGetChildsObservationsByEyfsAreaRequest, overridenToken?: string): Promise<FootstepsObservations.IGetChildsObservationsByEyfsAreaResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetChildsObservationsByEyfsAreaRequest, FootstepsObservations.IGetChildsObservationsByEyfsAreaResult>(request, 'FootstepsObservations', 'GetChildsObservationsByEyfsArea', overridenToken);\r\n                                        \r\n                                            this.onGetChildsObservationsByEyfsArea.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildsObservationsByObservationStatus(request : FootstepsObservations.IGetChildsObservationsByObservationStatusRequest, overridenToken?: string): Promise<FootstepsObservations.IGetChildsObservationsByObservationStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetChildsObservationsByObservationStatusRequest, FootstepsObservations.IGetChildsObservationsByObservationStatusResult>(request, 'FootstepsObservations', 'GetChildsObservationsByObservationStatus', overridenToken);\r\n                                        \r\n                                            this.onGetChildsObservationsByObservationStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildsUnassignedObservations(request : FootstepsObservations.IGetChildsUnassignedObservationsRequest, overridenToken?: string): Promise<FootstepsObservations.IGetChildsUnassignedObservationsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetChildsUnassignedObservationsRequest, FootstepsObservations.IGetChildsUnassignedObservationsResult>(request, 'FootstepsObservations', 'GetChildsUnassignedObservations', overridenToken);\r\n                                        \r\n                                            this.onGetChildsUnassignedObservations.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getDraftCarerHomeObservationsCount(overridenToken?: string): Promise<FootstepsObservations.IGetDraftCarerHomeObservationsCountResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsObservations.IGetDraftCarerHomeObservationsCountResult>({}, 'FootstepsObservations', 'GetDraftCarerHomeObservationsCount', overridenToken);\r\n                                        \r\n                                            this.onGetDraftCarerHomeObservationsCount.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getDraftCarerHomeObservations(overridenToken?: string): Promise<FootstepsObservations.IGetDraftCarerHomeObservationsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsObservations.IGetDraftCarerHomeObservationsResult>({}, 'FootstepsObservations', 'GetDraftCarerHomeObservations', overridenToken);\r\n                                        \r\n                                            this.onGetDraftCarerHomeObservations.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getObservationCountByStatus(request : FootstepsObservations.IGetObservationCountByStatusRequest, overridenToken?: string): Promise<FootstepsObservations.IGetObservationCountByStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetObservationCountByStatusRequest, FootstepsObservations.IGetObservationCountByStatusResult>(request, 'FootstepsObservations', 'GetObservationCountByStatus', overridenToken);\r\n                                        \r\n                                            this.onGetObservationCountByStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getObservationCountByTypeForChild(request : FootstepsObservations.IGetObservationCountByTypeForChildRequest, overridenToken?: string): Promise<FootstepsObservations.IGetObservationCountByTypeForChildResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetObservationCountByTypeForChildRequest, FootstepsObservations.IGetObservationCountByTypeForChildResult>(request, 'FootstepsObservations', 'GetObservationCountByTypeForChild', overridenToken);\r\n                                        \r\n                                            this.onGetObservationCountByTypeForChild.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getObservationCountByTypesAndStatus(request : FootstepsObservations.IGetObservationCountByTypesAndStatusRequest, overridenToken?: string): Promise<FootstepsObservations.IGetObservationCountByTypesAndStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetObservationCountByTypesAndStatusRequest, FootstepsObservations.IGetObservationCountByTypesAndStatusResult>(request, 'FootstepsObservations', 'GetObservationCountByTypesAndStatus', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetObservationCountByTypesAndStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getObservation(request : FootstepsObservations.IGetObservationRequest, overridenToken?: string): Promise<FootstepsObservations.IGetObservationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetObservationRequest, FootstepsObservations.IGetObservationResult>(request, 'FootstepsObservations', 'GetObservation', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetObservation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getObservationsAwaitingApproval(overridenToken?: string): Promise<FootstepsObservations.IGetObservationsAwaitingApprovalResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsObservations.IGetObservationsAwaitingApprovalResult>({}, 'FootstepsObservations', 'GetObservationsAwaitingApproval', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetObservationsAwaitingApproval.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getObservationsByType(request : FootstepsObservations.IGetObservationsByTypeRequest, overridenToken?: string): Promise<FootstepsObservations.IGetObservationsByTypeResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetObservationsByTypeRequest, FootstepsObservations.IGetObservationsByTypeResult>(request, 'FootstepsObservations', 'GetObservationsByType', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetObservationsByType.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getSuggestedNextStepCommand(request : FootstepsObservations.IGetSuggestedNextStepCommandRequest, overridenToken?: string): Promise<FootstepsObservations.IGetSuggestedNextStepCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IGetSuggestedNextStepCommandRequest, FootstepsObservations.IGetSuggestedNextStepCommandResult>(request, 'FootstepsObservations', 'GetSuggestedNextStepCommand', overridenToken);\r\n                                        \r\n                                            this.onGetSuggestedNextStepCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async rejectObservation(request : FootstepsObservations.IRejectObservationRequest, overridenToken?: string): Promise<FootstepsObservations.IRejectObservationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IRejectObservationRequest, FootstepsObservations.IRejectObservationResult>(request, 'FootstepsObservations', 'RejectObservation', overridenToken);\r\n                                        \r\n                                            this.onRejectObservation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateObservationCommand(request : FootstepsObservations.IUpdateObservationCommandRequest, overridenToken?: string): Promise<FootstepsObservations.IUpdateObservationCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservations.IUpdateObservationCommandRequest, FootstepsObservations.IUpdateObservationCommandResult>(request, 'FootstepsObservations', 'UpdateObservationCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateObservationCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsObservationMediaFiles {\r\n                    \r\n                            export enum CloneUploadedFileError {\r\n                                fileNotFound = 'fileNotFound',\r\n                                invalidFileName = 'invalidFileName'\r\n                            }\r\n                        \r\n                            export enum CompleteUploadingObservationMediaFileUserType {\r\n                                carer = 'carer',\r\n                                user = 'user'\r\n                            }\r\n                        \r\n                            export enum CompleteUploadingObservationMediaFileError {\r\n                                missingChunks = 'missingChunks',\r\n                                invalidUser = 'invalidUser',\r\n                                fileNotFound = 'fileNotFound',\r\n                                observationNotFound = 'observationNotFound',\r\n                                businessNotFound = 'businessNotFound'\r\n                            }\r\n                        \r\n                            export enum DeleteObservationMediaError {\r\n                                fileDoesNotExistAgainstObservation = 'fileDoesNotExistAgainstObservation',\r\n                                fileNotFound = 'fileNotFound'\r\n                            }\r\n                        \r\n                            export enum GetObservationMediaBase64Error {\r\n                                observationNotFound = 'observationNotFound'\r\n                            }\r\n                        \r\n                            export enum ImageSize {\r\n                                small = 'small',\r\n                                medium = 'medium',\r\n                                large = 'large',\r\n                                full = 'full'\r\n                            }\r\n                        \r\n                            export enum GetObservationMediaError {\r\n                                observationNotFound = 'observationNotFound'\r\n                            }\r\n                        \r\n                            export enum MigrateRackspaceToAmazonError {\r\n                                businessNotFound = 'businessNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateObservationMediaParentPortalStatusError {\r\n                                mediaFilesDoNotExist = 'mediaFilesDoNotExist',\r\n                                oneOrMoreOfTheFilesDoesNotExist = 'oneOrMoreOfTheFilesDoesNotExist'\r\n                            }\r\n                        \r\n                                export interface ICloneUploadedFileRequest {\r\n                                    fileId: UUID,\r\n cloneName: string\r\n                                }\r\n                            \r\n                                export interface ICloneUploadedFileResult {\r\n                                    cloneId: UUID,\r\n successful: boolean,\r\n errors: CloneUploadedFileError[]\r\n                                }\r\n                            \r\n                                export interface ICompleteUploadingObservationMediaFileRequest {\r\n                                    mediaFiles: ICompleteUploadingObservationMediaFileCommandMediaFile[],\r\n observationId: UUID,\r\n uploadedByUserType: CompleteUploadingObservationMediaFileUserType | null\r\n                                }\r\n                            \r\n                                export interface ICompleteUploadingObservationMediaFileResult {\r\n                                    successful: boolean,\r\n errors: CompleteUploadingObservationMediaFileError[],\r\n observationMediaFiles: ICompleteUploadingObservationMediaFileCommandResultObservationMedia[]\r\n                                }\r\n                            \r\n                                export interface ICompleteUploadingObservationMediaFileCommandResultObservationMedia {\r\n                                    fileId: UUID\r\n                                }\r\n                           \r\n                                export interface ICompleteUploadingObservationMediaFileCommandMediaFile {\r\n                                    fileId: UUID,\r\n shownInParentPortal: boolean\r\n                                }\r\n                           \r\n                                export interface IDeleteObservationMediaRequest {\r\n                                    fileId: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteObservationMediaResult {\r\n                                    successful: boolean,\r\n errors: DeleteObservationMediaError[]\r\n                                }\r\n                            \r\n                                export interface IGetBlurredObservationImageFileRequest {\r\n                                    childId: UUID,\r\n fileId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetBlurredObservationImageFileForCarerRequest {\r\n                                    fileId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetBlurredObservationImageFileForChildrenRequest {\r\n                                    fileId: UUID,\r\n childIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IGetObservationMediaBase64Request {\r\n                                    observationId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetObservationMediaBase64Result {\r\n                                    successful: boolean,\r\n errors: GetObservationMediaBase64Error[],\r\n files: IGetObservationMediaBase64CommandResultMediaFile[]\r\n                                }\r\n                            \r\n                                export interface IGetObservationMediaBase64CommandResultMediaFile {\r\n                                    observationMediaFileId: UUID,\r\n fileName: string,\r\n showInParentPortal: boolean,\r\n url: string,\r\n thumbnailUrl: string,\r\n faceTags: IGetObservationMediaBase64CommandResultChildFace[]\r\n                                }\r\n                           \r\n                                export interface IGetObservationMediaBase64CommandResultChildFace {\r\n                                    childId: UUID | null,\r\n x: number,\r\n y: number,\r\n width: number,\r\n height: number,\r\n childVisible: boolean,\r\n maskFace: boolean,\r\n confidencePercent: number | null,\r\n ageRangeLow: number | null,\r\n ageRangeHigh: number | null,\r\n beard: boolean | null,\r\n beardPercent: number | null,\r\n happy: boolean | null,\r\n happyPercent: number | null,\r\n sad: boolean | null,\r\n sadPercent: number | null,\r\n angry: boolean | null,\r\n angryPercent: number | null,\r\n confused: boolean | null,\r\n confusedPercent: number | null,\r\n disgusted: boolean | null,\r\n disgustedPercent: number | null,\r\n surprised: boolean | null,\r\n surprisedPercent: number | null,\r\n calm: boolean | null,\r\n calmPercent: number | null,\r\n unknown: boolean | null,\r\n unknownPercent: number | null,\r\n eyeglasses: boolean | null,\r\n eyeglassesPercent: number | null,\r\n eyesOpen: boolean | null,\r\n eyesOpenPercent: number | null,\r\n gender: string,\r\n genderPercent: number | null,\r\n mouthOpen: boolean | null,\r\n mouthOpenPercent: number | null,\r\n mustache: boolean | null,\r\n mustachePercent: number | null,\r\n posePitch: number | null,\r\n poseRoll: number | null,\r\n poseYaw: number | null,\r\n smile: boolean | null,\r\n smilePercent: number | null,\r\n imageBrightness: number | null,\r\n imageSharpness: number | null\r\n                                }\r\n                           \r\n                                export interface IGetObservationMediaRequest {\r\n                                    observationId: UUID,\r\n size: ImageSize,\r\n thumbnailSize: ImageSize\r\n                                }\r\n                            \r\n                                export interface IGetObservationMediaResult {\r\n                                    successful: boolean,\r\n errors: GetObservationMediaError[],\r\n files: IGetObservationMediaCommandResultMediaFile[]\r\n                                }\r\n                            \r\n                                export interface IGetObservationMediaCommandResultMediaFile {\r\n                                    observationMediaFileId: UUID,\r\n fileName: string,\r\n showInParentPortal: boolean,\r\n url: string,\r\n thumbnailUrl: string,\r\n faceTags: IGetObservationMediaCommandResultChildFaces[]\r\n                                }\r\n                           \r\n                                export interface IGetObservationMediaCommandResultChildFaces {\r\n                                    childId: UUID | null,\r\n x: number,\r\n y: number,\r\n width: number,\r\n height: number,\r\n childVisible: boolean,\r\n maskFace: boolean,\r\n confidencePercent: number | null,\r\n ageRangeLow: number | null,\r\n ageRangeHigh: number | null,\r\n beard: boolean | null,\r\n beardPercent: number | null,\r\n happy: boolean | null,\r\n happyPercent: number | null,\r\n sad: boolean | null,\r\n sadPercent: number | null,\r\n angry: boolean | null,\r\n angryPercent: number | null,\r\n confused: boolean | null,\r\n confusedPercent: number | null,\r\n disgusted: boolean | null,\r\n disgustedPercent: number | null,\r\n surprised: boolean | null,\r\n surprisedPercent: number | null,\r\n calm: boolean | null,\r\n calmPercent: number | null,\r\n unknown: boolean | null,\r\n unknownPercent: number | null,\r\n eyeglasses: boolean | null,\r\n eyeglassesPercent: number | null,\r\n eyesOpen: boolean | null,\r\n eyesOpenPercent: number | null,\r\n gender: string,\r\n genderPercent: number | null,\r\n mouthOpen: boolean | null,\r\n mouthOpenPercent: number | null,\r\n mustache: boolean | null,\r\n mustachePercent: number | null,\r\n posePitch: number | null,\r\n poseRoll: number | null,\r\n poseYaw: number | null,\r\n smile: boolean | null,\r\n smilePercent: number | null,\r\n imageBrightness: number | null,\r\n imageSharpness: number | null\r\n                                }\r\n                           \r\n                                export interface IMigrateRackspaceToAmazonRequest {\r\n                                    businessId: UUID\r\n                                }\r\n                            \r\n                                export interface IMigrateRackspaceToAmazonResult {\r\n                                    successful: boolean,\r\n errors: MigrateRackspaceToAmazonError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateObservationMediaParentPortalStatusRequest {\r\n                                    mediaFiles: IUpdateObservationMediaParentPortalStatusCommandObservationMediaFile[]\r\n                                }\r\n                            \r\n                                export interface IUpdateObservationMediaParentPortalStatusResult {\r\n                                    successful: boolean,\r\n errors: UpdateObservationMediaParentPortalStatusError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateObservationMediaParentPortalStatusCommandObservationMediaFile {\r\n                                    fileId: UUID,\r\n shownInParentPortal: boolean\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsObservationMediaFilesCommands {\r\n                    \r\n                            public onCloneUploadedFile: Subject<RequestInfo<FootstepsObservationMediaFiles.ICloneUploadedFileRequest, FootstepsObservationMediaFiles.ICloneUploadedFileResult>> = new Subject();\r\n                        \r\n                            public onCompleteUploadingObservationMediaFile: Subject<RequestInfo<FootstepsObservationMediaFiles.ICompleteUploadingObservationMediaFileRequest, FootstepsObservationMediaFiles.ICompleteUploadingObservationMediaFileResult>> = new Subject();\r\n                        \r\n                            public onDeleteObservationMedia: Subject<RequestInfo<FootstepsObservationMediaFiles.IDeleteObservationMediaRequest, FootstepsObservationMediaFiles.IDeleteObservationMediaResult>> = new Subject();\r\n                        \r\n                            \r\n                        \r\n                            \r\n                        \r\n                            \r\n                        \r\n                            public onGetObservationMediaBase64: Subject<RequestInfo<FootstepsObservationMediaFiles.IGetObservationMediaBase64Request, FootstepsObservationMediaFiles.IGetObservationMediaBase64Result>> = new Subject();\r\n                        \r\n                            public onGetObservationMedia: Subject<RequestInfo<FootstepsObservationMediaFiles.IGetObservationMediaRequest, FootstepsObservationMediaFiles.IGetObservationMediaResult>> = new Subject();\r\n                        \r\n                            public onMigrateRackspaceToAmazon: Subject<RequestInfo<FootstepsObservationMediaFiles.IMigrateRackspaceToAmazonRequest, FootstepsObservationMediaFiles.IMigrateRackspaceToAmazonResult>> = new Subject();\r\n                        \r\n                            public onUpdateObservationMediaParentPortalStatus: Subject<RequestInfo<FootstepsObservationMediaFiles.IUpdateObservationMediaParentPortalStatusRequest, FootstepsObservationMediaFiles.IUpdateObservationMediaParentPortalStatusResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async cloneUploadedFile(request : FootstepsObservationMediaFiles.ICloneUploadedFileRequest, overridenToken?: string): Promise<FootstepsObservationMediaFiles.ICloneUploadedFileResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMediaFiles.ICloneUploadedFileRequest, FootstepsObservationMediaFiles.ICloneUploadedFileResult>(request, 'FootstepsObservationMediaFiles', 'CloneUploadedFile', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCloneUploadedFile.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async completeUploadingObservationMediaFile(request : FootstepsObservationMediaFiles.ICompleteUploadingObservationMediaFileRequest, overridenToken?: string): Promise<FootstepsObservationMediaFiles.ICompleteUploadingObservationMediaFileResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMediaFiles.ICompleteUploadingObservationMediaFileRequest, FootstepsObservationMediaFiles.ICompleteUploadingObservationMediaFileResult>(request, 'FootstepsObservationMediaFiles', 'CompleteUploadingObservationMediaFile', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCompleteUploadingObservationMediaFile.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteObservationMedia(request : FootstepsObservationMediaFiles.IDeleteObservationMediaRequest, overridenToken?: string): Promise<FootstepsObservationMediaFiles.IDeleteObservationMediaResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMediaFiles.IDeleteObservationMediaRequest, FootstepsObservationMediaFiles.IDeleteObservationMediaResult>(request, 'FootstepsObservationMediaFiles', 'DeleteObservationMedia', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteObservationMedia.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            getBlurredObservationImageFile(request : FootstepsObservationMediaFiles.IGetBlurredObservationImageFileRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsObservationMediaFiles', 'GetBlurredObservationImageFile', overridenToken);\r\n                            }\r\n                            \r\n                            getBlurredObservationImageFileUrl(request : FootstepsObservationMediaFiles.IGetBlurredObservationImageFileRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsObservationMediaFiles', 'GetBlurredObservationImageFile', temporaryToken);\r\n                                return url;\r\n                            }getBlurredObservationImageFileForCarer(request : FootstepsObservationMediaFiles.IGetBlurredObservationImageFileForCarerRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsObservationMediaFiles', 'GetBlurredObservationImageFileForCarer', overridenToken);\r\n                            }\r\n                            \r\n                            getBlurredObservationImageFileForCarerUrl(request : FootstepsObservationMediaFiles.IGetBlurredObservationImageFileForCarerRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsObservationMediaFiles', 'GetBlurredObservationImageFileForCarer', temporaryToken);\r\n                                return url;\r\n                            }getBlurredObservationImageFileForChildren(request : FootstepsObservationMediaFiles.IGetBlurredObservationImageFileForChildrenRequest, overridenToken?: string) : void {\r\n                                this.sauronService.executeFileDownload(request, 'FootstepsObservationMediaFiles', 'GetBlurredObservationImageFileForChildren', overridenToken);\r\n                            }\r\n                            \r\n                            getBlurredObservationImageFileForChildrenUrl(request : FootstepsObservationMediaFiles.IGetBlurredObservationImageFileForChildrenRequest, temporaryToken?: UUID) : string {\r\n                                let url = this.sauronService.getFileDownloadUrl(request, 'FootstepsObservationMediaFiles', 'GetBlurredObservationImageFileForChildren', temporaryToken);\r\n                                return url;\r\n                            }\r\n                                 public async getObservationMediaBase64(request : FootstepsObservationMediaFiles.IGetObservationMediaBase64Request, overridenToken?: string): Promise<FootstepsObservationMediaFiles.IGetObservationMediaBase64Result> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMediaFiles.IGetObservationMediaBase64Request, FootstepsObservationMediaFiles.IGetObservationMediaBase64Result>(request, 'FootstepsObservationMediaFiles', 'GetObservationMediaBase64', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetObservationMediaBase64.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getObservationMedia(request : FootstepsObservationMediaFiles.IGetObservationMediaRequest, overridenToken?: string): Promise<FootstepsObservationMediaFiles.IGetObservationMediaResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMediaFiles.IGetObservationMediaRequest, FootstepsObservationMediaFiles.IGetObservationMediaResult>(request, 'FootstepsObservationMediaFiles', 'GetObservationMedia', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetObservationMedia.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async migrateRackspaceToAmazon(request : FootstepsObservationMediaFiles.IMigrateRackspaceToAmazonRequest, overridenToken?: string): Promise<FootstepsObservationMediaFiles.IMigrateRackspaceToAmazonResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMediaFiles.IMigrateRackspaceToAmazonRequest, FootstepsObservationMediaFiles.IMigrateRackspaceToAmazonResult>(request, 'FootstepsObservationMediaFiles', 'MigrateRackspaceToAmazon', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onMigrateRackspaceToAmazon.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateObservationMediaParentPortalStatus(request : FootstepsObservationMediaFiles.IUpdateObservationMediaParentPortalStatusRequest, overridenToken?: string): Promise<FootstepsObservationMediaFiles.IUpdateObservationMediaParentPortalStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMediaFiles.IUpdateObservationMediaParentPortalStatusRequest, FootstepsObservationMediaFiles.IUpdateObservationMediaParentPortalStatusResult>(request, 'FootstepsObservationMediaFiles', 'UpdateObservationMediaParentPortalStatus', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateObservationMediaParentPortalStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsObservationMatters {\r\n                    \r\n                            export enum GetChildrenLastObservedMattersOnCurriculumError {\r\n                                childrenNotFound = 'childrenNotFound',\r\n                                observationNotFound = 'observationNotFound'\r\n                            }\r\n                        \r\n                            export enum GetMattersForChildrenByAreaError {\r\n                                observationNotFound = 'observationNotFound'\r\n                            }\r\n                        \r\n                            export enum SaveObservationMatterError {\r\n                                childNotFound = 'childNotFound',\r\n                                observationNotFound = 'observationNotFound',\r\n                                businessIdNotFound = 'businessIdNotFound',\r\n                                childNotPartOfThisObservation = 'childNotPartOfThisObservation'\r\n                            }\r\n                        \r\n                                export interface IGetChildrenLastCompletedMattersByDateRequest {\r\n                                    childIds: UUID[],\r\n byThisDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetChildrenLastCompletedMattersByDateResult {\r\n                                    matters: any; // Parenta.Footsteps.Repository.ChildObservationMatterRecord[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenLastObservedMattersOnCurriculumRequest {\r\n                                    observationId: UUID,\r\n curriculumKey: CurriculumKey\r\n                                }\r\n                            \r\n                                export interface IGetChildrenLastObservedMattersOnCurriculumResult {\r\n                                    children: IGetChildrenLastObservedMattersOnCurriculumCommandResultChild[],\r\n successful: boolean,\r\n errors: GetChildrenLastObservedMattersOnCurriculumError[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenLastObservedMattersOnCurriculumCommandResultChild {\r\n                                    id: UUID,\r\n matters: IGetChildrenLastObservedMattersOnCurriculumCommandResultChildObservationMatter[]\r\n                                }\r\n                           \r\n                                export interface IGetChildrenLastObservedMattersOnCurriculumCommandResultChildObservationMatter {\r\n                                    score: number,\r\n matterKey: ObservationMatterKey,\r\n recordedDate: string | moment.Moment | Date,\r\n hasNotChangedForSixtyDays: boolean\r\n                                }\r\n                           \r\n                                export interface IGetMattersForChildrenByAreaRequest {\r\n                                    observationId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetMattersForChildrenByAreaResult {\r\n                                    successful: boolean,\r\n errors: GetMattersForChildrenByAreaError[],\r\n areas: IGetMattersForChildrenByAreaCommandResultArea[]\r\n                                }\r\n                            \r\n                                export interface IGetMattersForChildrenByAreaCommandResultArea {\r\n                                    key: EyfsAreaKey,\r\n aspects: IGetMattersForChildrenByAreaCommandResultAspect[]\r\n                                }\r\n                           \r\n                                export interface IGetMattersForChildrenByAreaCommandResultAspect {\r\n                                    key: EyfsAspectKey,\r\n ageBands: IGetMattersForChildrenByAreaCommandResultAgeBand[]\r\n                                }\r\n                           \r\n                                export interface IGetMattersForChildrenByAreaCommandResultAgeBand {\r\n                                    startAge: number,\r\n endAge: number,\r\n children: IGetMattersForChildrenByAreaCommandResultChild[]\r\n                                }\r\n                           \r\n                                export interface IGetMattersForChildrenByAreaCommandResultChild {\r\n                                    id: UUID,\r\n matterKey: ObservationMatterKey,\r\n score: number\r\n                                }\r\n                           \r\n                                export interface IGetObservationMattersRequest {\r\n                                    curriculumKey: CurriculumKey,\r\n observationId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetObservationMattersResult {\r\n                                    matters: IGetObservationMattersResultOutputChildMatter[],\r\n nextStepMatters: IGetObservationMattersResultOutputChildMatter[]\r\n                                }\r\n                            \r\n                                export interface IGetObservationMattersResultOutputChildMatter {\r\n                                    childObservationId: UUID,\r\n matterKey: ObservationMatterKey,\r\n curriculumKey: CurriculumKey,\r\n score: number,\r\n businessId: UUID,\r\n childId: UUID\r\n                                }\r\n                           \r\n                                export interface ISaveObservationMatterRequest {\r\n                                    observationId: UUID,\r\n observationMatters: ISaveObservationMatterCommandObservationMatterUpdate[]\r\n                                }\r\n                            \r\n                                export interface ISaveObservationMatterResult {\r\n                                    successful: boolean,\r\n errors: SaveObservationMatterError[]\r\n                                }\r\n                            \r\n                                export interface ISaveObservationMatterCommandObservationMatterUpdate {\r\n                                    matterKey: ObservationMatterKey,\r\n curriculumKey: CurriculumKey,\r\n childId: UUID,\r\n score: number,\r\n isNextSteps: boolean\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsObservationMattersCommands {\r\n                    \r\n                            public onGetChildrenLastCompletedMattersByDate: Subject<RequestInfo<FootstepsObservationMatters.IGetChildrenLastCompletedMattersByDateRequest, FootstepsObservationMatters.IGetChildrenLastCompletedMattersByDateResult>> = new Subject();\r\n                        \r\n                            public onGetChildrenLastObservedMattersOnCurriculum: Subject<RequestInfo<FootstepsObservationMatters.IGetChildrenLastObservedMattersOnCurriculumRequest, FootstepsObservationMatters.IGetChildrenLastObservedMattersOnCurriculumResult>> = new Subject();\r\n                        \r\n                            public onGetMattersForChildrenByArea: Subject<RequestInfo<FootstepsObservationMatters.IGetMattersForChildrenByAreaRequest, FootstepsObservationMatters.IGetMattersForChildrenByAreaResult>> = new Subject();\r\n                        \r\n                            public onGetObservationMatters: Subject<RequestInfo<FootstepsObservationMatters.IGetObservationMattersRequest, FootstepsObservationMatters.IGetObservationMattersResult>> = new Subject();\r\n                        \r\n                            public onSaveObservationMatter: Subject<RequestInfo<FootstepsObservationMatters.ISaveObservationMatterRequest, FootstepsObservationMatters.ISaveObservationMatterResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getChildrenLastCompletedMattersByDate(request : FootstepsObservationMatters.IGetChildrenLastCompletedMattersByDateRequest, overridenToken?: string): Promise<FootstepsObservationMatters.IGetChildrenLastCompletedMattersByDateResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMatters.IGetChildrenLastCompletedMattersByDateRequest, FootstepsObservationMatters.IGetChildrenLastCompletedMattersByDateResult>(request, 'FootstepsObservationMatters', 'GetChildrenLastCompletedMattersByDate', overridenToken);\r\n                                        \r\n                                            this.onGetChildrenLastCompletedMattersByDate.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildrenLastObservedMattersOnCurriculum(request : FootstepsObservationMatters.IGetChildrenLastObservedMattersOnCurriculumRequest, overridenToken?: string): Promise<FootstepsObservationMatters.IGetChildrenLastObservedMattersOnCurriculumResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMatters.IGetChildrenLastObservedMattersOnCurriculumRequest, FootstepsObservationMatters.IGetChildrenLastObservedMattersOnCurriculumResult>(request, 'FootstepsObservationMatters', 'GetChildrenLastObservedMattersOnCurriculum', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetChildrenLastObservedMattersOnCurriculum.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getMattersForChildrenByArea(request : FootstepsObservationMatters.IGetMattersForChildrenByAreaRequest, overridenToken?: string): Promise<FootstepsObservationMatters.IGetMattersForChildrenByAreaResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMatters.IGetMattersForChildrenByAreaRequest, FootstepsObservationMatters.IGetMattersForChildrenByAreaResult>(request, 'FootstepsObservationMatters', 'GetMattersForChildrenByArea', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetMattersForChildrenByArea.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getObservationMatters(request : FootstepsObservationMatters.IGetObservationMattersRequest, overridenToken?: string): Promise<FootstepsObservationMatters.IGetObservationMattersResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMatters.IGetObservationMattersRequest, FootstepsObservationMatters.IGetObservationMattersResult>(request, 'FootstepsObservationMatters', 'GetObservationMatters', overridenToken);\r\n                                        \r\n                                            this.onGetObservationMatters.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async saveObservationMatter(request : FootstepsObservationMatters.ISaveObservationMatterRequest, overridenToken?: string): Promise<FootstepsObservationMatters.ISaveObservationMatterResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsObservationMatters.ISaveObservationMatterRequest, FootstepsObservationMatters.ISaveObservationMatterResult>(request, 'FootstepsObservationMatters', 'SaveObservationMatter', overridenToken);\r\n                                        \r\n                                            this.onSaveObservationMatter.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsNextStep {\r\n                    \r\n                            export enum CreateObservationFromNextStepsError {\r\n                                observationNotFound = 'observationNotFound',\r\n                                nextStepNotFound = 'nextStepNotFound'\r\n                            }\r\n                        \r\n                            export enum GetNextStepCommandError {\r\n                                invalidNextStepId = 'invalidNextStepId'\r\n                            }\r\n                        \r\n                            export enum GetNextStepsForReportError {\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateNextStepError {\r\n                                nextStepNotFound = 'nextStepNotFound',\r\n                                cannotUpdateADeletedNextStep = 'cannotUpdateADeletedNextStep',\r\n                                startDateAfterEndDate = 'startDateAfterEndDate',\r\n                                invalidDateCombination = 'invalidDateCombination'\r\n                            }\r\n                        \r\n                                export interface ICreateObservationFromNextStepsRequest {\r\n                                    nextStepIds: UUID[],\r\n importChildren: boolean\r\n                                }\r\n                            \r\n                                export interface ICreateObservationFromNextStepsResult {\r\n                                    successful: boolean,\r\n createdObservation: ICreateObservationFromNextStepsResultObservation,\r\n errors: CreateObservationFromNextStepsError[]\r\n                                }\r\n                            \r\n                                export interface ICreateObservationFromNextStepsResultObservation {\r\n                                    id: UUID,\r\n childIds: UUID[]\r\n                                }\r\n                           \r\n                                export interface IDeleteNextStepsRequest {\r\n                                    childObservationIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IDeleteNextStepsResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetAllApplicableNextStepsResult {\r\n                                    nextSteps: IGetAllApplicableNextStepsCommandResultNextStep[]\r\n                                }\r\n                            \r\n                                export interface IGetAllApplicableNextStepsCommandResultNextStep {\r\n                                    observationId: UUID,\r\n description: string,\r\n fromDate: string | moment.Moment | Date | null,\r\n toDate: string | moment.Moment | Date | null,\r\n isGroupObservation: boolean,\r\n type: ObservationType,\r\n childId: UUID,\r\n firstName: string,\r\n lastName: string,\r\n photoUrl: string,\r\n childObservationId: UUID,\r\n matterKeys: ObservationMatterKey[],\r\n areaKeys: EyfsAreaKey[],\r\n ageBandKeys: AgeBandKey[],\r\n curriculums: CurriculumKey[]\r\n                                }\r\n                           \r\n                                export interface IGetNextStepCommandRequest {\r\n                                    observationId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetNextStepCommandResult {\r\n                                    nextStep: IGetNextStepCommandResultObservation,\r\n errors: GetNextStepCommandError[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetNextStepCommandResultObservation {\r\n                                    id: UUID,\r\n description: string,\r\n startDate: string | moment.Moment | Date | null,\r\n endDate: string | moment.Moment | Date | null,\r\n businessId: UUID,\r\n childId: UUID,\r\n whenCreated: string | moment.Moment | Date,\r\n whenUpdated: string | moment.Moment | Date,\r\n childObservationMatters: IGetNextStepCommandResultChildObservationMatter[]\r\n                                }\r\n                           \r\n                                export interface IGetNextStepCommandResultChildObservationMatter {\r\n                                    childId: UUID,\r\n childObservationId: UUID,\r\n matterKey: ObservationMatterKey,\r\n score: number\r\n                                }\r\n                           \r\n                                export interface IGetNextStepsForReportRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetNextStepsForReportResult {\r\n                                    successful: boolean,\r\n errors: GetNextStepsForReportError[],\r\n nextSteps: IGetNextStepsForReportCommandResultNextStep[]\r\n                                }\r\n                            \r\n                                export interface IGetNextStepsForReportCommandResultNextStep {\r\n                                    description: string,\r\n fromDate: string | moment.Moment | Date | null,\r\n toDate: string | moment.Moment | Date | null,\r\n areas: IGetNextStepsForReportCommandResultEyfsArea[],\r\n observationId: UUID,\r\n curriculums: CurriculumKey[]\r\n                                }\r\n                           \r\n                                export interface IGetNextStepsForReportCommandResultEyfsArea {\r\n                                    areaKey: EyfsAreaKey,\r\n matters: IGetNextStepsForReportCommandResultMatter[]\r\n                                }\r\n                           \r\n                                export interface IGetNextStepsForReportCommandResultMatter {\r\n                                    ageBand: AgeBandKey,\r\n matterKey: ObservationMatterKey,\r\n currentLevel: EdsValue,\r\n plannedLevel: EdsValue\r\n                                }\r\n                           \r\n                                export interface IGetTotalNextStepsCountForCurrentBusinessResult {\r\n                                    nextStepsCount: number\r\n                                }\r\n                            \r\n                                export interface IUpdateNextStepRequest {\r\n                                    observationId: UUID,\r\n description: string,\r\n startDate: string | moment.Moment | Date | null,\r\n endDate: string | moment.Moment | Date | null,\r\n matters: IUpdateNextStepCommandChildObservationMatter[]\r\n                                }\r\n                            \r\n                                export interface IUpdateNextStepResult {\r\n                                    successful: boolean,\r\n errors: UpdateNextStepError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateNextStepCommandChildObservationMatter {\r\n                                    childId: UUID,\r\n observationId: UUID,\r\n matterKey: ObservationMatterKey,\r\n curriculumKey: CurriculumKey,\r\n score: number\r\n                                }\r\n                           \r\n                                export interface IUseNextStepsRequest {\r\n                                    childObservationIdsNextStepsToUse: UUID[],\r\n usedByChildObservationId: UUID\r\n                                }\r\n                            \r\n                                export interface IUseNextStepsResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsNextStepCommands {\r\n                    \r\n                            public onCreateObservationFromNextSteps: Subject<RequestInfo<FootstepsNextStep.ICreateObservationFromNextStepsRequest, FootstepsNextStep.ICreateObservationFromNextStepsResult>> = new Subject();\r\n                        \r\n                            public onDeleteNextSteps: Subject<RequestInfo<FootstepsNextStep.IDeleteNextStepsRequest, FootstepsNextStep.IDeleteNextStepsResult>> = new Subject();\r\n                        \r\n                            public onGetAllApplicableNextSteps: Subject<FootstepsNextStep.IGetAllApplicableNextStepsResult> = new Subject();\r\n                        \r\n                            public onGetNextStepCommand: Subject<RequestInfo<FootstepsNextStep.IGetNextStepCommandRequest, FootstepsNextStep.IGetNextStepCommandResult>> = new Subject();\r\n                        \r\n                            public onGetNextStepsForReport: Subject<RequestInfo<FootstepsNextStep.IGetNextStepsForReportRequest, FootstepsNextStep.IGetNextStepsForReportResult>> = new Subject();\r\n                        \r\n                            public onGetTotalNextStepsCountForCurrentBusiness: Subject<FootstepsNextStep.IGetTotalNextStepsCountForCurrentBusinessResult> = new Subject();\r\n                        \r\n                            public onUpdateNextStep: Subject<RequestInfo<FootstepsNextStep.IUpdateNextStepRequest, FootstepsNextStep.IUpdateNextStepResult>> = new Subject();\r\n                        \r\n                            public onUseNextSteps: Subject<RequestInfo<FootstepsNextStep.IUseNextStepsRequest, FootstepsNextStep.IUseNextStepsResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createObservationFromNextSteps(request : FootstepsNextStep.ICreateObservationFromNextStepsRequest, overridenToken?: string): Promise<FootstepsNextStep.ICreateObservationFromNextStepsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsNextStep.ICreateObservationFromNextStepsRequest, FootstepsNextStep.ICreateObservationFromNextStepsResult>(request, 'FootstepsNextStep', 'CreateObservationFromNextSteps', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateObservationFromNextSteps.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteNextSteps(request : FootstepsNextStep.IDeleteNextStepsRequest, overridenToken?: string): Promise<FootstepsNextStep.IDeleteNextStepsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsNextStep.IDeleteNextStepsRequest, FootstepsNextStep.IDeleteNextStepsResult>(request, 'FootstepsNextStep', 'DeleteNextSteps', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteNextSteps.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllApplicableNextSteps(overridenToken?: string): Promise<FootstepsNextStep.IGetAllApplicableNextStepsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsNextStep.IGetAllApplicableNextStepsResult>({}, 'FootstepsNextStep', 'GetAllApplicableNextSteps', overridenToken);\r\n                                        \r\n                                            this.onGetAllApplicableNextSteps.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getNextStepCommand(request : FootstepsNextStep.IGetNextStepCommandRequest, overridenToken?: string): Promise<FootstepsNextStep.IGetNextStepCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsNextStep.IGetNextStepCommandRequest, FootstepsNextStep.IGetNextStepCommandResult>(request, 'FootstepsNextStep', 'GetNextStepCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetNextStepCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getNextStepsForReport(request : FootstepsNextStep.IGetNextStepsForReportRequest, overridenToken?: string): Promise<FootstepsNextStep.IGetNextStepsForReportResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsNextStep.IGetNextStepsForReportRequest, FootstepsNextStep.IGetNextStepsForReportResult>(request, 'FootstepsNextStep', 'GetNextStepsForReport', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetNextStepsForReport.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getTotalNextStepsCountForCurrentBusiness(overridenToken?: string): Promise<FootstepsNextStep.IGetTotalNextStepsCountForCurrentBusinessResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsNextStep.IGetTotalNextStepsCountForCurrentBusinessResult>({}, 'FootstepsNextStep', 'GetTotalNextStepsCountForCurrentBusiness', overridenToken);\r\n                                        \r\n                                            this.onGetTotalNextStepsCountForCurrentBusiness.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateNextStep(request : FootstepsNextStep.IUpdateNextStepRequest, overridenToken?: string): Promise<FootstepsNextStep.IUpdateNextStepResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsNextStep.IUpdateNextStepRequest, FootstepsNextStep.IUpdateNextStepResult>(request, 'FootstepsNextStep', 'UpdateNextStep', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateNextStep.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async useNextSteps(request : FootstepsNextStep.IUseNextStepsRequest, overridenToken?: string): Promise<FootstepsNextStep.IUseNextStepsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsNextStep.IUseNextStepsRequest, FootstepsNextStep.IUseNextStepsResult>(request, 'FootstepsNextStep', 'UseNextSteps', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUseNextSteps.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsNewsfeed {\r\n                    \r\n                            export enum GetParentPortalNewsfeedByPageNewsfeedObservationType {\r\n                                baselineObservation = 'baselineObservation',\r\n                                homeObservation = 'homeObservation',\r\n                                adultLedActivity = 'adultLedActivity',\r\n                                childInitiated = 'childInitiated',\r\n                                carerHomeObservation = 'carerHomeObservation'\r\n                            }\r\n                        \r\n                            export enum GetParentPortalNewsfeedByPageNewsfeedByPageItemType {\r\n                                observation = 'observation',\r\n                                achievement = 'achievement',\r\n                                dropOff = 'dropOff',\r\n                                pickUp = 'pickUp',\r\n                                meal = 'meal',\r\n                                sleep = 'sleep',\r\n                                nappy = 'nappy',\r\n                                activity = 'activity',\r\n                                comment = 'comment'\r\n                            }\r\n                        \r\n                            export enum GetParentPortalNewsfeedByPageError {\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                                export interface IGetParentPortalNewsfeedByPageRequest {\r\n                                    childIds: UUID[],\r\n eventTypes: NewsfeedEventType[],\r\n pageNumber: number\r\n                                }\r\n                            \r\n                                export interface IGetParentPortalNewsfeedByPageResult {\r\n                                    successful: boolean,\r\n errors: GetParentPortalNewsfeedByPageError[],\r\n simpleNewsFeedItems: IGetParentPortalNewsfeedByPageResultNewsFeedItem[],\r\n dropOffPickUpEvents: IGetParentPortalNewsfeedByPageResultDropOffPickUpEvent[],\r\n observations: IGetParentPortalNewsfeedByPageResultObservationEvent[],\r\n accidents: IGetParentPortalNewsfeedByPageResultAccidentEvent[]\r\n                                }\r\n                            \r\n                                export interface IGetParentPortalNewsfeedByPageResultObservationEvent {\r\n                                    childId: UUID,\r\n itemDate: string | moment.Moment | Date,\r\n newsfeedObservationType: GetParentPortalNewsfeedByPageNewsfeedObservationType,\r\n description: string,\r\n eyfsAreaKeys: EyfsAreaKey[],\r\n images: IGetParentPortalNewsfeedByPageResultNewsFeedImage[],\r\n uniqueItemId: string\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalNewsfeedByPageResultNewsFeedImage {\r\n                                    fileName: string,\r\n fullUrl: string,\r\n thumbnailUrl: string\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalNewsfeedByPageResultNewsFeedItem {\r\n                                    itemDate: string | moment.Moment | Date,\r\n itemType: GetParentPortalNewsfeedByPageNewsfeedByPageItemType,\r\n description: string,\r\n itemSubType: GetParentPortalNewsfeedByPageNewsfeedObservationType | null,\r\n childId: UUID,\r\n status: number,\r\n duration: number,\r\n type: number,\r\n images: IGetParentPortalNewsfeedByPageResultNewsFeedImage[],\r\n uniqueItemId: string,\r\n gender: Gender\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalNewsfeedByPageResultAccidentEvent {\r\n                                    notes: string,\r\n locationName: string,\r\n reportedByName: string,\r\n supervisedByName: string,\r\n accidentDate: string | moment.Moment | Date,\r\n attendedHospital: boolean,\r\n firstAidGiven: boolean,\r\n headInjuryFormGiven: boolean,\r\n childId: UUID,\r\n isIncident: boolean,\r\n accidentPId: number,\r\n acknowledgedByFirstName: string,\r\n acknowledgedByLastName: string,\r\n acknowledgedOnDate: string | moment.Moment | Date | null,\r\n hasBeenAcknowledged: boolean,\r\n attachmentKey: string,\r\n attachmentPath: string,\r\n attachmentFileName: string,\r\n uniqueItemId: string\r\n                                }\r\n                           \r\n                                export interface IGetParentPortalNewsfeedByPageResultDropOffPickUpEvent {\r\n                                    childFirstName: string,\r\n carerRelationship: string,\r\n type: GetParentPortalNewsfeedByPageNewsfeedByPageItemType,\r\n eventTime: string | moment.Moment | Date,\r\n childId: UUID,\r\n carerFirstName: string,\r\n carerLastName: string,\r\n uniqueItemId: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsNewsfeedCommands {\r\n                    \r\n                            public onGetParentPortalNewsfeedByPage: Subject<RequestInfo<FootstepsNewsfeed.IGetParentPortalNewsfeedByPageRequest, FootstepsNewsfeed.IGetParentPortalNewsfeedByPageResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getParentPortalNewsfeedByPage(request : FootstepsNewsfeed.IGetParentPortalNewsfeedByPageRequest, overridenToken?: string): Promise<FootstepsNewsfeed.IGetParentPortalNewsfeedByPageResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsNewsfeed.IGetParentPortalNewsfeedByPageRequest, FootstepsNewsfeed.IGetParentPortalNewsfeedByPageResult>(request, 'FootstepsNewsfeed', 'GetParentPortalNewsfeedByPage', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetParentPortalNewsfeedByPage.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsInternal {\r\n                    \r\n                                export interface IThrowErrorRequest {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IThrowErrorResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsInternalCommands {\r\n                    \r\n                            public onThrowError: Subject<RequestInfo<FootstepsInternal.IThrowErrorRequest, FootstepsInternal.IThrowErrorResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async throwError(request : FootstepsInternal.IThrowErrorRequest, overridenToken?: string): Promise<FootstepsInternal.IThrowErrorResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsInternal.IThrowErrorRequest, FootstepsInternal.IThrowErrorResult>(request, 'FootstepsInternal', 'ThrowError', overridenToken);\r\n                                        \r\n                                            this.onThrowError.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsFaceTagging {\r\n                    \r\n                            export enum SetFaceTaggingsError {\r\n                                noTaggings = 'noTaggings',\r\n                                observationMediaNotFound = 'observationMediaNotFound',\r\n                                childNotFound = 'childNotFound',\r\n                                positionInvalid = 'positionInvalid'\r\n                            }\r\n                        \r\n                                export interface IGetFaceTaggingDataRequest {\r\n                                    observationMediaFileId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetFaceTaggingDataResult {\r\n                                    metadata: IGetFaceTaggingDataCommandResultMetaData[]\r\n                                }\r\n                            \r\n                                export interface IGetFaceTaggingDataCommandResultMetaData {\r\n                                    ageRange: IGetFaceTaggingDataCommandResultAgeRange,\r\n beard: IGetFaceTaggingDataCommandResultBoolValue,\r\n confidence: number | null,\r\n emotions: IGetFaceTaggingDataCommandResultEmotion[],\r\n eyeglasses: IGetFaceTaggingDataCommandResultBoolValue,\r\n eyesOpen: IGetFaceTaggingDataCommandResultBoolValue,\r\n gender: IGetFaceTaggingDataCommandResultGender,\r\n mouthOpen: IGetFaceTaggingDataCommandResultBoolValue,\r\n mustache: IGetFaceTaggingDataCommandResultBoolValue,\r\n pose: IGetFaceTaggingDataCommandResultPose,\r\n smile: IGetFaceTaggingDataCommandResultBoolValue,\r\n quality: IGetFaceTaggingDataCommandResultImageQuality,\r\n boundingBox: IGetFaceTaggingDataCommandResultBoundingBox\r\n                                }\r\n                           \r\n                                export interface IGetFaceTaggingDataCommandResultAgeRange {\r\n                                    low: number | null,\r\n high: number | null\r\n                                }\r\n                           \r\n                                export interface IGetFaceTaggingDataCommandResultEmotion {\r\n                                    confidence: number,\r\n type: IGetFaceTaggingDataCommandResultEmotionType\r\n                                }\r\n                           \r\n                                export interface IGetFaceTaggingDataCommandResultEmotionType {\r\n                                    value: string\r\n                                }\r\n                           \r\n                                export interface IGetFaceTaggingDataCommandResultBoolValue {\r\n                                    confidence: number,\r\n value: boolean\r\n                                }\r\n                           \r\n                                export interface IGetFaceTaggingDataCommandResultGender {\r\n                                    confidence: number,\r\n value: IGetFaceTaggingDataCommandResultGenderType\r\n                                }\r\n                           \r\n                                export interface IGetFaceTaggingDataCommandResultGenderType {\r\n                                    value: string\r\n                                }\r\n                           \r\n                                export interface IGetFaceTaggingDataCommandResultPose {\r\n                                    pitch: number,\r\n roll: number,\r\n yaw: number\r\n                                }\r\n                           \r\n                                export interface IGetFaceTaggingDataCommandResultImageQuality {\r\n                                    brightness: number,\r\n sharpness: number\r\n                                }\r\n                           \r\n                                export interface IGetFaceTaggingDataCommandResultBoundingBox {\r\n                                    top: number,\r\n left: number,\r\n height: number,\r\n width: number\r\n                                }\r\n                           \r\n                                export interface ISetFaceTaggingsRequest {\r\n                                    observationMediaId: UUID,\r\n childFaces: ISetFaceTaggingsCommandChildFace[]\r\n                                }\r\n                            \r\n                                export interface ISetFaceTaggingsResult {\r\n                                    successful: boolean,\r\n errors: SetFaceTaggingsError[]\r\n                                }\r\n                            \r\n                                export interface ISetFaceTaggingsCommandChildFace {\r\n                                    childId: UUID | null,\r\n x: number,\r\n y: number,\r\n width: number,\r\n height: number,\r\n childVisible: boolean,\r\n maskFace: boolean,\r\n confidencePercent: number | null,\r\n ageRangeLow: number | null,\r\n ageRangeHigh: number | null,\r\n beard: boolean | null,\r\n beardPercent: number | null,\r\n happy: boolean | null,\r\n happyPercent: number | null,\r\n sad: boolean | null,\r\n sadPercent: number | null,\r\n angry: boolean | null,\r\n angryPercent: number | null,\r\n confused: boolean | null,\r\n confusedPercent: number | null,\r\n disgusted: boolean | null,\r\n disgustedPercent: number | null,\r\n surprised: boolean | null,\r\n surprisedPercent: number | null,\r\n calm: boolean | null,\r\n calmPercent: number | null,\r\n unknown: boolean | null,\r\n unknownPercent: number | null,\r\n eyeglasses: boolean | null,\r\n eyeglassesPercent: number | null,\r\n eyesOpen: boolean | null,\r\n eyesOpenPercent: number | null,\r\n gender: string,\r\n genderPercent: number | null,\r\n mouthOpen: boolean | null,\r\n mouthOpenPercent: number | null,\r\n mustache: boolean | null,\r\n mustachePercent: number | null,\r\n posePitch: number | null,\r\n poseRoll: number | null,\r\n poseYaw: number | null,\r\n smile: boolean | null,\r\n smilePercent: number | null,\r\n imageBrightness: number | null,\r\n imageSharpness: number | null\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsFaceTaggingCommands {\r\n                    \r\n                            public onGetFaceTaggingData: Subject<RequestInfo<FootstepsFaceTagging.IGetFaceTaggingDataRequest, FootstepsFaceTagging.IGetFaceTaggingDataResult>> = new Subject();\r\n                        \r\n                            public onSetFaceTaggings: Subject<RequestInfo<FootstepsFaceTagging.ISetFaceTaggingsRequest, FootstepsFaceTagging.ISetFaceTaggingsResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getFaceTaggingData(request : FootstepsFaceTagging.IGetFaceTaggingDataRequest, overridenToken?: string): Promise<FootstepsFaceTagging.IGetFaceTaggingDataResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsFaceTagging.IGetFaceTaggingDataRequest, FootstepsFaceTagging.IGetFaceTaggingDataResult>(request, 'FootstepsFaceTagging', 'GetFaceTaggingData', overridenToken);\r\n                                        \r\n                                            this.onGetFaceTaggingData.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async setFaceTaggings(request : FootstepsFaceTagging.ISetFaceTaggingsRequest, overridenToken?: string): Promise<FootstepsFaceTagging.ISetFaceTaggingsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsFaceTagging.ISetFaceTaggingsRequest, FootstepsFaceTagging.ISetFaceTaggingsResult>(request, 'FootstepsFaceTagging', 'SetFaceTaggings', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSetFaceTaggings.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsEyfsUpgrade {\r\n                    \r\n                                export interface IUpgradeToEyfs2021Result {\r\n                                    \r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsEyfsUpgradeCommands {\r\n                    \r\n                            public onUpgradeToEyfs2021: Subject<FootstepsEyfsUpgrade.IUpgradeToEyfs2021Result> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async upgradeToEyfs2021(overridenToken?: string): Promise<FootstepsEyfsUpgrade.IUpgradeToEyfs2021Result> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsEyfsUpgrade.IUpgradeToEyfs2021Result>({}, 'FootstepsEyfsUpgrade', 'UpgradeToEyfs2021', overridenToken);\r\n                                        \r\n                                            this.onUpgradeToEyfs2021.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsEyfsCohorts {\r\n                    \r\n                                export interface IGetEyfsCohortsResult {\r\n                                    cohorts: any; // System.Collections.Generic.Dictionary`2[Parenta.Footsteps.Entities.EyfsCohortKey,System.String]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsEyfsCohortsCommands {\r\n                    \r\n                            public onGetEyfsCohorts: Subject<FootstepsEyfsCohorts.IGetEyfsCohortsResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getEyfsCohorts(overridenToken?: string): Promise<FootstepsEyfsCohorts.IGetEyfsCohortsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsEyfsCohorts.IGetEyfsCohortsResult>({}, 'FootstepsEyfsCohorts', 'GetEyfsCohorts', overridenToken);\r\n                                        \r\n                                            this.onGetEyfsCohorts.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsEyfsAreas {\r\n                    \r\n                                export interface IGetEyfsAreasResult {\r\n                                    eyfsAreaCollection: IEyfsAreasResultEyfsCurriculum\r\n                                }\r\n                            \r\n                                export interface IEyfsAreasResultEyfsCurriculum {\r\n                                    eyfsAreas: IEyfsAreasResultEyfsArea[]\r\n                                }\r\n                           \r\n                                export interface IEyfsAreasResultEyfsArea {\r\n                                    area: EyfsAreaKey,\r\n aspects: IEyfsAreasResultEyfsAspect[]\r\n                                }\r\n                           \r\n                                export interface IEyfsAreasResultEyfsAspect {\r\n                                    aspect: EyfsAspectKey,\r\n ageBands: IEyfsAreasResultEyfsAspectAgeBand[]\r\n                                }\r\n                           \r\n                                export interface IEyfsAreasResultEyfsAspectAgeBand {\r\n                                    ageBandKey: AgeBandKey,\r\n startAge: number,\r\n endAge: number,\r\n order: number,\r\n matters: IEyfsAreasResultCurriculumObservationMatter[]\r\n                                }\r\n                           \r\n                                export interface IEyfsAreasResultCurriculumObservationMatter {\r\n                                    observationMatterKey: ObservationMatterKey,\r\n linkedMatters: ObservationMatterKey[]\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsEyfsAreasCommands {\r\n                    \r\n                            public onGetEyfsAreas: Subject<FootstepsEyfsAreas.IGetEyfsAreasResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getEyfsAreas(overridenToken?: string): Promise<FootstepsEyfsAreas.IGetEyfsAreasResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsEyfsAreas.IGetEyfsAreasResult>({}, 'FootstepsEyfsAreas', 'GetEyfsAreas', overridenToken);\r\n                                        \r\n                                            this.onGetEyfsAreas.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsEyfs2021Areas {\r\n                    \r\n                                export interface IGetEyfs2021AreasResult {\r\n                                    eyfsAreaCollection: IEyfsAreasResultEyfsCurriculum\r\n                                }\r\n                            \r\n                                export interface IEyfsAreasResultEyfsCurriculum {\r\n                                    eyfsAreas: IEyfsAreasResultEyfsArea[]\r\n                                }\r\n                           \r\n                                export interface IEyfsAreasResultEyfsArea {\r\n                                    area: EyfsAreaKey,\r\n aspects: IEyfsAreasResultEyfsAspect[]\r\n                                }\r\n                           \r\n                                export interface IEyfsAreasResultEyfsAspect {\r\n                                    aspect: EyfsAspectKey,\r\n ageBands: IEyfsAreasResultEyfsAspectAgeBand[]\r\n                                }\r\n                           \r\n                                export interface IEyfsAreasResultEyfsAspectAgeBand {\r\n                                    ageBandKey: AgeBandKey,\r\n startAge: number,\r\n endAge: number,\r\n order: number,\r\n matters: IEyfsAreasResultCurriculumObservationMatter[]\r\n                                }\r\n                           \r\n                                export interface IEyfsAreasResultCurriculumObservationMatter {\r\n                                    observationMatterKey: ObservationMatterKey,\r\n linkedMatters: ObservationMatterKey[]\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsEyfs2021AreasCommands {\r\n                    \r\n                            public onGetEyfs2021Areas: Subject<FootstepsEyfs2021Areas.IGetEyfs2021AreasResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getEyfs2021Areas(overridenToken?: string): Promise<FootstepsEyfs2021Areas.IGetEyfs2021AreasResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsEyfs2021Areas.IGetEyfs2021AreasResult>({}, 'FootstepsEyfs2021Areas', 'GetEyfs2021Areas', overridenToken);\r\n                                        \r\n                                            this.onGetEyfs2021Areas.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsEmailing {\r\n                    \r\n                            export enum SendAchievementEmailError {\r\n                                recipientListEmpty = 'recipientListEmpty',\r\n                                invalidCarerId = 'invalidCarerId',\r\n                                invalidAchievement = 'invalidAchievement'\r\n                            }\r\n                        \r\n                            export enum SendAssessmentEmailError {\r\n                                noCarersFound = 'noCarersFound',\r\n                                noEmailAddressesFound = 'noEmailAddressesFound',\r\n                                childNotLinkedToCarer = 'childNotLinkedToCarer'\r\n                            }\r\n                        \r\n                            export enum SendCoelReportEmailError {\r\n                                childNotFound = 'childNotFound',\r\n                                keyPersonNotFound = 'keyPersonNotFound',\r\n                                noCarersFound = 'noCarersFound',\r\n                                noEmailAddressesFound = 'noEmailAddressesFound',\r\n                                carerNotLinkedToChild = 'carerNotLinkedToChild'\r\n                            }\r\n                        \r\n                            export enum SendEmailToNurseryError {\r\n                                noSubjectFound = 'noSubjectFound',\r\n                                noContentFound = 'noContentFound',\r\n                                currentUserNotFound = 'currentUserNotFound',\r\n                                businessNotFound = 'businessNotFound',\r\n                                nurseryNotFound = 'nurseryNotFound',\r\n                                nurseryNoEmailAddress = 'nurseryNoEmailAddress',\r\n                                carerNoEmailAddress = 'carerNoEmailAddress',\r\n                                fileTypeNotAllowed = 'fileTypeNotAllowed'\r\n                            }\r\n                        \r\n                            export enum SendLearningJourneyReportEmailError {\r\n                                childNotFound = 'childNotFound',\r\n                                keyPersonNotFound = 'keyPersonNotFound',\r\n                                noCarersFound = 'noCarersFound',\r\n                                noEmailAddressesFound = 'noEmailAddressesFound',\r\n                                carerIsNotRelatedToChild = 'carerIsNotRelatedToChild'\r\n                            }\r\n                        \r\n                            export enum SendNextStepsReportEmailError {\r\n                                childNotFound = 'childNotFound',\r\n                                keyPersonNotFound = 'keyPersonNotFound',\r\n                                noCarersFound = 'noCarersFound',\r\n                                noEmailAddressesFound = 'noEmailAddressesFound',\r\n                                carerNotLinkedToChild = 'carerNotLinkedToChild',\r\n                                carerIsNotRelatedToChild = 'carerIsNotRelatedToChild'\r\n                            }\r\n                        \r\n                            export enum SendProgressReportEmailError {\r\n                                childNotFound = 'childNotFound',\r\n                                noCarersFound = 'noCarersFound',\r\n                                noEmailAddressesFound = 'noEmailAddressesFound',\r\n                                carerIsNotRelatedToChild = 'carerIsNotRelatedToChild'\r\n                            }\r\n                        \r\n                            export enum SendStatementGaps2021ReportEmailError {\r\n                                childNotFound = 'childNotFound',\r\n                                keyPersonNotFound = 'keyPersonNotFound',\r\n                                noCarersFound = 'noCarersFound',\r\n                                noEmailAddressesFound = 'noEmailAddressesFound',\r\n                                carerIsNotRelatedToChild = 'carerIsNotRelatedToChild'\r\n                            }\r\n                        \r\n                            export enum SendStatementGapsReportEmailError {\r\n                                childNotFound = 'childNotFound',\r\n                                keyPersonNotFound = 'keyPersonNotFound',\r\n                                noCarersFound = 'noCarersFound',\r\n                                noEmailAddressesFound = 'noEmailAddressesFound',\r\n                                carerIsNotRelatedToChild = 'carerIsNotRelatedToChild'\r\n                            }\r\n                        \r\n                            export enum SendTrackerReportEmailError {\r\n                                childNotFound = 'childNotFound',\r\n                                noCarersFound = 'noCarersFound',\r\n                                noEmailAddressesFound = 'noEmailAddressesFound',\r\n                                carerIsNotRelatedToChild = 'carerIsNotRelatedToChild'\r\n                            }\r\n                        \r\n                            export enum SendWellbeingAndInvolvementEmailError {\r\n                                childNotFound = 'childNotFound',\r\n                                noCarersFound = 'noCarersFound',\r\n                                noEmailAddressesFound = 'noEmailAddressesFound',\r\n                                carerIsNotRelatedToChild = 'carerIsNotRelatedToChild'\r\n                            }\r\n                        \r\n                                export interface ISendAchievementEmailRequest {\r\n                                    recipients: ISendAchievementEmailCommandCarerRecipient[]\r\n                                }\r\n                            \r\n                                export interface ISendAchievementEmailResult {\r\n                                    successful: boolean,\r\n errors: SendAchievementEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendAchievementEmailCommandCarerRecipient {\r\n                                    carerId: UUID,\r\n comments: string,\r\n achievementId: UUID\r\n                                }\r\n                           \r\n                                export interface ISendAssessmentEmailRequest {\r\n                                    assessmentId: UUID,\r\n assessmentType: AssessmentType,\r\n carerInfo: ISendAssessmentEmailCommandCarerRecipient[]\r\n                                }\r\n                            \r\n                                export interface ISendAssessmentEmailResult {\r\n                                    successful: boolean,\r\n errors: SendAssessmentEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendAssessmentEmailCommandCarerRecipient {\r\n                                    carerId: UUID,\r\n comments: string\r\n                                }\r\n                           \r\n                                export interface ISendCoelReportEmailRequest {\r\n                                    carerRecipients: ISendCoelReportEmailCommandCarerRecipient[],\r\n childId: UUID,\r\n keyPersonId: UUID | null,\r\n fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface ISendCoelReportEmailResult {\r\n                                    isSuccessful: boolean,\r\n errors: SendCoelReportEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendCoelReportEmailCommandCarerRecipient {\r\n                                    id: UUID,\r\n comment: string\r\n                                }\r\n                           \r\n                                export interface ISendEmailToNurseryRequest {\r\n                                    subject: string,\r\n content: string,\r\n attachments: ISendEmailToNurseryCommandNurseryFileUpload[]\r\n                                }\r\n                            \r\n                                export interface ISendEmailToNurseryResult {\r\n                                    successful: boolean,\r\n errors: SendEmailToNurseryError[]\r\n                                }\r\n                            \r\n                                export interface ISendEmailToNurseryCommandNurseryFileUpload {\r\n                                    base64: any; // System.Byte[],\r\n name: string\r\n                                }\r\n                           \r\n                                export interface ISendLearningJourneyReportEmailRequest {\r\n                                    carerRecipients: ISendLearningJourneyReportEmailCommandCarerRecipient[],\r\n childId: UUID,\r\n keyPersonId: UUID | null,\r\n fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date,\r\n sortOrder: string\r\n                                }\r\n                            \r\n                                export interface ISendLearningJourneyReportEmailResult {\r\n                                    successful: boolean,\r\n errors: SendLearningJourneyReportEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendLearningJourneyReportEmailCommandCarerRecipient {\r\n                                    id: UUID,\r\n comments: string\r\n                                }\r\n                           \r\n                                export interface ISendNextStepsReportEmailRequest {\r\n                                    carerRecipients: ISendNextStepsReportEmailCommandCarerRecipient[],\r\n childId: UUID,\r\n keyPersonId: UUID | null,\r\n fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface ISendNextStepsReportEmailResult {\r\n                                    successful: boolean,\r\n errors: SendNextStepsReportEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendNextStepsReportEmailCommandCarerRecipient {\r\n                                    id: UUID,\r\n comments: string\r\n                                }\r\n                           \r\n                                export interface ISendProgressReportEmailRequest {\r\n                                    childId: UUID,\r\n carerRecipients: ISendProgressReportEmailCommandCarerRecipient[],\r\n fromDate: string | moment.Moment | Date,\r\n reportType: ReportType,\r\n isYear: boolean\r\n                                }\r\n                            \r\n                                export interface ISendProgressReportEmailResult {\r\n                                    successful: boolean,\r\n errors: SendProgressReportEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendProgressReportEmailCommandCarerRecipient {\r\n                                    id: UUID,\r\n comments: string\r\n                                }\r\n                           \r\n                                export interface ISendStatementGaps2021ReportEmailRequest {\r\n                                    carerRecipients: ISendStatementGaps2021ReportEmailCommandCarerRecipient[],\r\n childId: UUID,\r\n keyPersonId: UUID | null,\r\n reportDate: string | moment.Moment | Date,\r\n hideSecureMatter: boolean\r\n                                }\r\n                            \r\n                                export interface ISendStatementGaps2021ReportEmailResult {\r\n                                    successful: boolean,\r\n errors: SendStatementGaps2021ReportEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendStatementGaps2021ReportEmailCommandCarerRecipient {\r\n                                    id: UUID,\r\n comments: string\r\n                                }\r\n                           \r\n                                export interface ISendStatementGapsReportEmailRequest {\r\n                                    carerRecipients: ISendStatementGapsReportEmailCommandCarerRecipient[],\r\n childId: UUID,\r\n keyPersonId: UUID | null,\r\n reportDate: string | moment.Moment | Date,\r\n hideSecureMatter: boolean\r\n                                }\r\n                            \r\n                                export interface ISendStatementGapsReportEmailResult {\r\n                                    successful: boolean,\r\n errors: SendStatementGapsReportEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendStatementGapsReportEmailCommandCarerRecipient {\r\n                                    id: UUID,\r\n comments: string\r\n                                }\r\n                           \r\n                                export interface ISendTrackerReportEmailRequest {\r\n                                    childId: UUID,\r\n carerRecipients: ISendTrackerReportEmailCommandCarerRecipient[],\r\n fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface ISendTrackerReportEmailResult {\r\n                                    successful: boolean,\r\n errors: SendTrackerReportEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendTrackerReportEmailCommandCarerRecipient {\r\n                                    carerId: UUID,\r\n comments: string\r\n                                }\r\n                           \r\n                                export interface ISendWellbeingAndInvolvementEmailRequest {\r\n                                    childId: UUID,\r\n fromDate: string | moment.Moment | Date,\r\n toDate: string | moment.Moment | Date,\r\n matterKeys: ObservationMatterKey[],\r\n recipients: ISendWellbeingAndInvolvementEmailCommandRecipient[]\r\n                                }\r\n                            \r\n                                export interface ISendWellbeingAndInvolvementEmailResult {\r\n                                    successful: boolean,\r\n errors: SendWellbeingAndInvolvementEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendWellbeingAndInvolvementEmailCommandRecipient {\r\n                                    carerId: UUID,\r\n comments: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsEmailingCommands {\r\n                    \r\n                            public onSendAchievementEmail: Subject<RequestInfo<FootstepsEmailing.ISendAchievementEmailRequest, FootstepsEmailing.ISendAchievementEmailResult>> = new Subject();\r\n                        \r\n                            public onSendAssessmentEmail: Subject<RequestInfo<FootstepsEmailing.ISendAssessmentEmailRequest, FootstepsEmailing.ISendAssessmentEmailResult>> = new Subject();\r\n                        \r\n                            public onSendCoelReportEmail: Subject<RequestInfo<FootstepsEmailing.ISendCoelReportEmailRequest, FootstepsEmailing.ISendCoelReportEmailResult>> = new Subject();\r\n                        \r\n                            public onSendEmailToNursery: Subject<RequestInfo<FootstepsEmailing.ISendEmailToNurseryRequest, FootstepsEmailing.ISendEmailToNurseryResult>> = new Subject();\r\n                        \r\n                            public onSendLearningJourneyReportEmail: Subject<RequestInfo<FootstepsEmailing.ISendLearningJourneyReportEmailRequest, FootstepsEmailing.ISendLearningJourneyReportEmailResult>> = new Subject();\r\n                        \r\n                            public onSendNextStepsReportEmail: Subject<RequestInfo<FootstepsEmailing.ISendNextStepsReportEmailRequest, FootstepsEmailing.ISendNextStepsReportEmailResult>> = new Subject();\r\n                        \r\n                            public onSendProgressReportEmail: Subject<RequestInfo<FootstepsEmailing.ISendProgressReportEmailRequest, FootstepsEmailing.ISendProgressReportEmailResult>> = new Subject();\r\n                        \r\n                            public onSendStatementGaps2021ReportEmail: Subject<RequestInfo<FootstepsEmailing.ISendStatementGaps2021ReportEmailRequest, FootstepsEmailing.ISendStatementGaps2021ReportEmailResult>> = new Subject();\r\n                        \r\n                            public onSendStatementGapsReportEmail: Subject<RequestInfo<FootstepsEmailing.ISendStatementGapsReportEmailRequest, FootstepsEmailing.ISendStatementGapsReportEmailResult>> = new Subject();\r\n                        \r\n                            public onSendTrackerReportEmail: Subject<RequestInfo<FootstepsEmailing.ISendTrackerReportEmailRequest, FootstepsEmailing.ISendTrackerReportEmailResult>> = new Subject();\r\n                        \r\n                            public onSendWellbeingAndInvolvementEmail: Subject<RequestInfo<FootstepsEmailing.ISendWellbeingAndInvolvementEmailRequest, FootstepsEmailing.ISendWellbeingAndInvolvementEmailResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async sendAchievementEmail(request : FootstepsEmailing.ISendAchievementEmailRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendAchievementEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendAchievementEmailRequest, FootstepsEmailing.ISendAchievementEmailResult>(request, 'FootstepsEmailing', 'SendAchievementEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendAchievementEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendAssessmentEmail(request : FootstepsEmailing.ISendAssessmentEmailRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendAssessmentEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendAssessmentEmailRequest, FootstepsEmailing.ISendAssessmentEmailResult>(request, 'FootstepsEmailing', 'SendAssessmentEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendAssessmentEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendCoelReportEmail(request : FootstepsEmailing.ISendCoelReportEmailRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendCoelReportEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendCoelReportEmailRequest, FootstepsEmailing.ISendCoelReportEmailResult>(request, 'FootstepsEmailing', 'SendCoelReportEmail', overridenToken);\r\n                                        \r\n                                            this.onSendCoelReportEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendEmailToNursery(request : FootstepsEmailing.ISendEmailToNurseryRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendEmailToNurseryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendEmailToNurseryRequest, FootstepsEmailing.ISendEmailToNurseryResult>(request, 'FootstepsEmailing', 'SendEmailToNursery', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendEmailToNursery.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendLearningJourneyReportEmail(request : FootstepsEmailing.ISendLearningJourneyReportEmailRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendLearningJourneyReportEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendLearningJourneyReportEmailRequest, FootstepsEmailing.ISendLearningJourneyReportEmailResult>(request, 'FootstepsEmailing', 'SendLearningJourneyReportEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendLearningJourneyReportEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendNextStepsReportEmail(request : FootstepsEmailing.ISendNextStepsReportEmailRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendNextStepsReportEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendNextStepsReportEmailRequest, FootstepsEmailing.ISendNextStepsReportEmailResult>(request, 'FootstepsEmailing', 'SendNextStepsReportEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendNextStepsReportEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendProgressReportEmail(request : FootstepsEmailing.ISendProgressReportEmailRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendProgressReportEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendProgressReportEmailRequest, FootstepsEmailing.ISendProgressReportEmailResult>(request, 'FootstepsEmailing', 'SendProgressReportEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendProgressReportEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendStatementGaps2021ReportEmail(request : FootstepsEmailing.ISendStatementGaps2021ReportEmailRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendStatementGaps2021ReportEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendStatementGaps2021ReportEmailRequest, FootstepsEmailing.ISendStatementGaps2021ReportEmailResult>(request, 'FootstepsEmailing', 'SendStatementGaps2021ReportEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendStatementGaps2021ReportEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendStatementGapsReportEmail(request : FootstepsEmailing.ISendStatementGapsReportEmailRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendStatementGapsReportEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendStatementGapsReportEmailRequest, FootstepsEmailing.ISendStatementGapsReportEmailResult>(request, 'FootstepsEmailing', 'SendStatementGapsReportEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendStatementGapsReportEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendTrackerReportEmail(request : FootstepsEmailing.ISendTrackerReportEmailRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendTrackerReportEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendTrackerReportEmailRequest, FootstepsEmailing.ISendTrackerReportEmailResult>(request, 'FootstepsEmailing', 'SendTrackerReportEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendTrackerReportEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendWellbeingAndInvolvementEmail(request : FootstepsEmailing.ISendWellbeingAndInvolvementEmailRequest, overridenToken?: string): Promise<FootstepsEmailing.ISendWellbeingAndInvolvementEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEmailing.ISendWellbeingAndInvolvementEmailRequest, FootstepsEmailing.ISendWellbeingAndInvolvementEmailResult>(request, 'FootstepsEmailing', 'SendWellbeingAndInvolvementEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendWellbeingAndInvolvementEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsEcho {\r\n                    \r\n                                export interface IFootstepsChildEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface IFootstepsChildEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsEchoCommands {\r\n                    \r\n                            public onFootstepsChildEcho: Subject<RequestInfo<FootstepsEcho.IFootstepsChildEchoRequest, FootstepsEcho.IFootstepsChildEchoResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async footstepsChildEcho(request : FootstepsEcho.IFootstepsChildEchoRequest, overridenToken?: string): Promise<FootstepsEcho.IFootstepsChildEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsEcho.IFootstepsChildEchoRequest, FootstepsEcho.IFootstepsChildEchoResult>(request, 'FootstepsEcho', 'FootstepsChildEcho', overridenToken);\r\n                                        \r\n                                            this.onFootstepsChildEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsCoelObservationPercentages {\r\n                    \r\n                            export enum GetChildCoelObservationPercentagesError {\r\n                                childDoesNotExist = 'childDoesNotExist'\r\n                            }\r\n                        \r\n                            export enum GetCoelObservationAreaPercentagesError {\r\n                                startDateAfterEndDate = 'startDateAfterEndDate'\r\n                            }\r\n                        \r\n                                export interface IGetChildCoelObservationPercentagesRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetChildCoelObservationPercentagesResult {\r\n                                    successful: boolean,\r\n aspectPercentageResult: IGetChildCoelObservationPercentagesResultAspectPercentage[],\r\n errors: GetChildCoelObservationPercentagesError[]\r\n                                }\r\n                            \r\n                                export interface IGetChildCoelObservationPercentagesResultAspectPercentage {\r\n                                    matterKey: ObservationMatterKey,\r\n matterPercentage: number\r\n                                }\r\n                           \r\n                                export interface IGetCoelObservationAreaPercentagesRequest {\r\n                                    childIds: UUID[],\r\n startDate: string | moment.Moment | Date,\r\n endDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetCoelObservationAreaPercentagesResult {\r\n                                    successful: boolean,\r\n errors: GetCoelObservationAreaPercentagesError[],\r\n numberOfObservations: number,\r\n areas: IGetCoelObservationAreaPercentagesCommandResultArea[]\r\n                                }\r\n                            \r\n                                export interface IGetCoelObservationAreaPercentagesCommandResultArea {\r\n                                    areaKey: CoelAreaKey,\r\n areaPercentage: number,\r\n aspects: IGetCoelObservationAreaPercentagesCommandResultAspect[],\r\n numberOfObservations: number\r\n                                }\r\n                           \r\n                                export interface IGetCoelObservationAreaPercentagesCommandResultAspect {\r\n                                    coelAspectKey: CoelAspectKey,\r\n aspectPercentage: number,\r\n observationMatters: IGetCoelObservationAreaPercentagesCommandResultMatters[],\r\n numberOfObservations: number\r\n                                }\r\n                           \r\n                                export interface IGetCoelObservationAreaPercentagesCommandResultMatters {\r\n                                    matterKey: ObservationMatterKey,\r\n matterPercentage: number\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsCoelObservationPercentagesCommands {\r\n                    \r\n                            public onGetChildCoelObservationPercentages: Subject<RequestInfo<FootstepsCoelObservationPercentages.IGetChildCoelObservationPercentagesRequest, FootstepsCoelObservationPercentages.IGetChildCoelObservationPercentagesResult>> = new Subject();\r\n                        \r\n                            public onGetCoelObservationAreaPercentages: Subject<RequestInfo<FootstepsCoelObservationPercentages.IGetCoelObservationAreaPercentagesRequest, FootstepsCoelObservationPercentages.IGetCoelObservationAreaPercentagesResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getChildCoelObservationPercentages(request : FootstepsCoelObservationPercentages.IGetChildCoelObservationPercentagesRequest, overridenToken?: string): Promise<FootstepsCoelObservationPercentages.IGetChildCoelObservationPercentagesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCoelObservationPercentages.IGetChildCoelObservationPercentagesRequest, FootstepsCoelObservationPercentages.IGetChildCoelObservationPercentagesResult>(request, 'FootstepsCoelObservationPercentages', 'GetChildCoelObservationPercentages', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetChildCoelObservationPercentages.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getCoelObservationAreaPercentages(request : FootstepsCoelObservationPercentages.IGetCoelObservationAreaPercentagesRequest, overridenToken?: string): Promise<FootstepsCoelObservationPercentages.IGetCoelObservationAreaPercentagesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCoelObservationPercentages.IGetCoelObservationAreaPercentagesRequest, FootstepsCoelObservationPercentages.IGetCoelObservationAreaPercentagesResult>(request, 'FootstepsCoelObservationPercentages', 'GetCoelObservationAreaPercentages', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetCoelObservationAreaPercentages.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsCoelObservation {\r\n                    \r\n                            export enum GetChildCoelObservationError {\r\n                                invalidObservationId = 'invalidObservationId'\r\n                            }\r\n                        \r\n                                export interface IGetChildCoelObservationRequest {\r\n                                    observationId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetChildCoelObservationResult {\r\n                                    coelAreas: IGetChildCoelObservationResultCoelArea[],\r\n successful: boolean,\r\n errors: GetChildCoelObservationError[]\r\n                                }\r\n                            \r\n                                export interface IGetChildCoelObservationResultCoelArea {\r\n                                    key: CoelAreaKey,\r\n coelAspects: IGetChildCoelObservationResultCoelAspect[]\r\n                                }\r\n                           \r\n                                export interface IGetChildCoelObservationResultCoelAspect {\r\n                                    key: CoelAspectKey,\r\n coelChildMatters: IGetChildCoelObservationResultCoelChildMatters[]\r\n                                }\r\n                           \r\n                                export interface IGetChildCoelObservationResultCoelChildMatters {\r\n                                    childId: UUID,\r\n matters: IGetChildCoelObservationResultChildMatter[]\r\n                                }\r\n                           \r\n                                export interface IGetChildCoelObservationResultChildMatter {\r\n                                    matterKey: ObservationMatterKey,\r\n checked: boolean\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsCoelObservationCommands {\r\n                    \r\n                            public onGetChildCoelObservation: Subject<RequestInfo<FootstepsCoelObservation.IGetChildCoelObservationRequest, FootstepsCoelObservation.IGetChildCoelObservationResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getChildCoelObservation(request : FootstepsCoelObservation.IGetChildCoelObservationRequest, overridenToken?: string): Promise<FootstepsCoelObservation.IGetChildCoelObservationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCoelObservation.IGetChildCoelObservationRequest, FootstepsCoelObservation.IGetChildCoelObservationResult>(request, 'FootstepsCoelObservation', 'GetChildCoelObservation', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetChildCoelObservation.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsCoelAreas {\r\n                    \r\n                                export interface IGetCoel2021AreasResult {\r\n                                    coelAreaCollection: ICoelAreasResultCoelCurriculum\r\n                                }\r\n                            \r\n                                export interface ICoelAreasResultCoelCurriculum {\r\n                                    coelAreas: ICoelAreasResultCoelArea[]\r\n                                }\r\n                           \r\n                                export interface ICoelAreasResultCoelArea {\r\n                                    key: CoelAreaKey,\r\n coelAspects: ICoelAreasResultCoelAspect[]\r\n                                }\r\n                           \r\n                                export interface ICoelAreasResultCoelAspect {\r\n                                    key: CoelAspectKey,\r\n matterKeys: ObservationMatterKey[]\r\n                                }\r\n                           \r\n                                export interface IGetCoelAreasResult {\r\n                                    coelAreaCollection: ICoelAreasResultCoelCurriculum\r\n                                }\r\n                            \r\n                                export interface ICoelAreasResultCoelCurriculum {\r\n                                    coelAreas: ICoelAreasResultCoelArea[]\r\n                                }\r\n                           \r\n                                export interface ICoelAreasResultCoelArea {\r\n                                    key: CoelAreaKey,\r\n coelAspects: ICoelAreasResultCoelAspect[]\r\n                                }\r\n                           \r\n                                export interface ICoelAreasResultCoelAspect {\r\n                                    key: CoelAspectKey,\r\n matterKeys: ObservationMatterKey[]\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsCoelAreasCommands {\r\n                    \r\n                            public onGetCoel2021Areas: Subject<FootstepsCoelAreas.IGetCoel2021AreasResult> = new Subject();\r\n                        \r\n                            public onGetCoelAreas: Subject<FootstepsCoelAreas.IGetCoelAreasResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getCoel2021Areas(overridenToken?: string): Promise<FootstepsCoelAreas.IGetCoel2021AreasResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsCoelAreas.IGetCoel2021AreasResult>({}, 'FootstepsCoelAreas', 'GetCoel2021Areas', overridenToken);\r\n                                        \r\n                                            this.onGetCoel2021Areas.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getCoelAreas(overridenToken?: string): Promise<FootstepsCoelAreas.IGetCoelAreasResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsCoelAreas.IGetCoelAreasResult>({}, 'FootstepsCoelAreas', 'GetCoelAreas', overridenToken);\r\n                                        \r\n                                            this.onGetCoelAreas.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsClientFile {\r\n                    \r\n                            export enum CreateClientFileError {\r\n                                originalFileNameIsEmpty = 'originalFileNameIsEmpty'\r\n                            }\r\n                        \r\n                                export interface ICreateClientFileRequest {\r\n                                    originalFileName: string\r\n                                }\r\n                            \r\n                                export interface ICreateClientFileResult {\r\n                                    successful: boolean,\r\n errors: CreateClientFileError[],\r\n id: UUID,\r\n bucketName: string,\r\n storageAccessKey: string,\r\n s3ObjectKey: string,\r\n uploadSignature: string,\r\n regionName: string\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsClientFileCommands {\r\n                    \r\n                            public onCreateClientFile: Subject<RequestInfo<FootstepsClientFile.ICreateClientFileRequest, FootstepsClientFile.ICreateClientFileResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createClientFile(request : FootstepsClientFile.ICreateClientFileRequest, overridenToken?: string): Promise<FootstepsClientFile.ICreateClientFileResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsClientFile.ICreateClientFileRequest, FootstepsClientFile.ICreateClientFileResult>(request, 'FootstepsClientFile', 'CreateClientFile', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateClientFile.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsChild {\r\n                    \r\n                            export enum ChangeRequestChildDetailsError {\r\n                                currentUserNotFound = 'currentUserNotFound',\r\n                                nurseryNotFound = 'nurseryNotFound',\r\n                                nurseryNoEmail = 'nurseryNoEmail',\r\n                                businessNotFound = 'businessNotFound',\r\n                                childNotFound = 'childNotFound',\r\n                                nurseryIdIsZero = 'nurseryIdIsZero'\r\n                            }\r\n                        \r\n                            export enum GetChildrenForCarerError {\r\n                                carerNotFound = 'carerNotFound'\r\n                            }\r\n                        \r\n                            export enum GetChildrenForCurrentCarerError {\r\n                                carerNotFound = 'carerNotFound',\r\n                                carerHasNoRelationships = 'carerHasNoRelationships'\r\n                            }\r\n                        \r\n                                export interface IChangeRequestChildDetailsRequest {\r\n                                    id: number,\r\n firstName: string,\r\n middleName: string,\r\n lastName: string,\r\n knownName: string,\r\n doB: string,\r\n gender: string,\r\n allergies: IChangeRequestChildDetailsCommandAllergiesItems[],\r\n dietaryRequirements: IChangeRequestChildDetailsCommandDietaryRequirementItems[],\r\n medicalConditions: IChangeRequestChildDetailsCommandMedicalConditionItems[],\r\n illnessesHad: IChangeRequestChildDetailsCommandIllnessesHadItems[],\r\n illnessesImmune: IChangeRequestChildDetailsCommandIllnessesImmuneItems[],\r\n permissions: IChangeRequestChildDetailsCommandPermissionItems[],\r\n relationship: string,\r\n keyworker: string,\r\n room: string\r\n                                }\r\n                            \r\n                                export interface IChangeRequestChildDetailsResult {\r\n                                    successful: boolean,\r\n errors: ChangeRequestChildDetailsError[]\r\n                                }\r\n                            \r\n                                export interface IChangeRequestChildDetailsCommandPermissionItems {\r\n                                    id: number,\r\n label: string\r\n                                }\r\n                           \r\n                                export interface IChangeRequestChildDetailsCommandIllnessesImmuneItems {\r\n                                    id: number,\r\n label: string\r\n                                }\r\n                           \r\n                                export interface IChangeRequestChildDetailsCommandIllnessesHadItems {\r\n                                    id: number,\r\n label: string\r\n                                }\r\n                           \r\n                                export interface IChangeRequestChildDetailsCommandMedicalConditionItems {\r\n                                    id: number,\r\n label: string\r\n                                }\r\n                           \r\n                                export interface IChangeRequestChildDetailsCommandDietaryRequirementItems {\r\n                                    id: number,\r\n label: string\r\n                                }\r\n                           \r\n                                export interface IChangeRequestChildDetailsCommandAllergiesItems {\r\n                                    id: number,\r\n label: string\r\n                                }\r\n                           \r\n                                export interface IChangeRequestChildDetailsCommandLabelItem {\r\n                                    id: number,\r\n label: string\r\n                                }\r\n                           \r\n                                export interface IGetChildProgressRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetChildProgressResult {\r\n                                    areas: IGetChildProgressCommandResultArea[]\r\n                                }\r\n                            \r\n                                export interface IGetChildProgressCommandResultArea {\r\n                                    aspects: IGetChildProgressCommandResultAspect[],\r\n areaKey: EyfsAreaKey\r\n                                }\r\n                           \r\n                                export interface IGetChildProgressCommandResultAspect {\r\n                                    ageBands: IGetChildProgressCommandResultAgeBand[],\r\n aspectKey: EyfsAspectKey\r\n                                }\r\n                           \r\n                                export interface IGetChildProgressCommandResultAgeBand {\r\n                                    matters: IGetChildProgressCommandResultMatter[],\r\n notStartedPercentage: number,\r\n emergingPercentage: number,\r\n developingPercentage: number,\r\n securePercentage: number,\r\n startAge: number,\r\n endAge: number\r\n                                }\r\n                           \r\n                                export interface IGetChildProgressCommandResultMatter {\r\n                                    matterKey: ObservationMatterKey,\r\n state: EdsValue\r\n                                }\r\n                           \r\n                                export interface IGetChildrenAchievementCountsRequest {\r\n                                    childIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenAchievementCountsResult {\r\n                                    childrenAchievementCounts: IGetChildrenAchievementCountsCommandResultChildAchievementCount[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenAchievementCountsCommandResultChildAchievementCount {\r\n                                    id: UUID,\r\n photo: string,\r\n firstName: string,\r\n lastName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n keyWorker: IGetChildrenAchievementCountsCommandResultStaff,\r\n count: number\r\n                                }\r\n                           \r\n                                export interface IGetChildrenAchievementCountsCommandResultStaff {\r\n                                    firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                                export interface IGetChildrenRequest {\r\n                                    childrenIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenResult {\r\n                                    children: IGetChildrenCommandResultChild[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenCommandResultChild {\r\n                                    businessId: UUID,\r\n childId: UUID,\r\n firstName: string,\r\n lastName: string,\r\n knownName: string,\r\n middleName: string,\r\n gender: Gender,\r\n startDate: string | moment.Moment | Date,\r\n leaveDate: string | moment.Moment | Date,\r\n dateOfBirth: string | moment.Moment | Date,\r\n is1To1: boolean,\r\n cohorts: EyfsCohortKey[],\r\n keyWorker: IGetChildrenCommandResultStaff,\r\n assignedRoom: IGetChildrenCommandResultRoom,\r\n rooms: IGetChildrenCommandResultRoom[],\r\n allergies: IGetChildrenCommandResultAllergy[],\r\n medicalConditions: IGetChildrenCommandResultMedicalCondition[],\r\n inToday: boolean,\r\n photoUrl: string,\r\n funding: string,\r\n statusId: AbacusChildStatusKey,\r\n childLegacyId: number,\r\n test: any; // Parenta.Abacus.Entities.Children2\r\n                                }\r\n                           \r\n                                export interface IGetChildrenCommandResultStaff {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                                export interface IGetChildrenCommandResultRoom {\r\n                                    id: UUID,\r\n name: string,\r\n roomId: number\r\n                                }\r\n                           \r\n                                export interface IGetChildrenCommandResultAllergy {\r\n                                    id: UUID,\r\n name: string,\r\n pId: number,\r\n itemId: number\r\n                                }\r\n                           \r\n                                export interface IGetChildrenCommandResultMedicalCondition {\r\n                                    id: UUID,\r\n businessId: UUID,\r\n name: string,\r\n itemId: number\r\n                                }\r\n                           \r\n                                export interface IGetChildrenForCarerRequest {\r\n                                    carerId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetChildrenForCarerResult {\r\n                                    successful: boolean,\r\n errors: GetChildrenForCarerError[],\r\n childrenIds: UUID[],\r\n legacyChildrenIds: number[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenForCurrentCarerResult {\r\n                                    successful: boolean,\r\n errors: GetChildrenForCurrentCarerError[],\r\n children: IGetChildrenForCurrentCarerResultChild[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenForCurrentCarerResultChild {\r\n                                    firstName: string,\r\n lastName: string,\r\n knownName: string,\r\n photoUrl: string,\r\n legacyId: number,\r\n id: UUID\r\n                                }\r\n                           \r\n                                export interface IGetChildrenObservationCountsRequest {\r\n                                    dateFrom: string | moment.Moment | Date | null,\r\n dateTo: string | moment.Moment | Date | null,\r\n childIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenObservationCountsResult {\r\n                                    children: IGetChildrenObservationCountsCommandResultChild[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenObservationCountsCommandResultChild {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string,\r\n photo: string,\r\n keyWorker: IGetChildrenObservationCountsCommandResultStaff,\r\n observationStatusCounts: any; // System.Collections.Generic.Dictionary`2[Parenta.Footsteps.Entities.ObservationStatus,System.Int32],\r\n areaMatterCounts: any; // System.Collections.Generic.Dictionary`2[Parenta.Footsteps.Entities.Eyfs.EyfsAreaKey,System.Int32],\r\n unassignedObservationsCount: number\r\n                                }\r\n                           \r\n                                export interface IGetChildrenObservationCountsCommandResultStaff {\r\n                                    firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsChildCommands {\r\n                    \r\n                            public onChangeRequestChildDetails: Subject<RequestInfo<FootstepsChild.IChangeRequestChildDetailsRequest, FootstepsChild.IChangeRequestChildDetailsResult>> = new Subject();\r\n                        \r\n                            public onGetChildProgress: Subject<RequestInfo<FootstepsChild.IGetChildProgressRequest, FootstepsChild.IGetChildProgressResult>> = new Subject();\r\n                        \r\n                            public onGetChildrenAchievementCounts: Subject<RequestInfo<FootstepsChild.IGetChildrenAchievementCountsRequest, FootstepsChild.IGetChildrenAchievementCountsResult>> = new Subject();\r\n                        \r\n                            public onGetChildren: Subject<RequestInfo<FootstepsChild.IGetChildrenRequest, FootstepsChild.IGetChildrenResult>> = new Subject();\r\n                        \r\n                            public onGetChildrenForCarer: Subject<RequestInfo<FootstepsChild.IGetChildrenForCarerRequest, FootstepsChild.IGetChildrenForCarerResult>> = new Subject();\r\n                        \r\n                            public onGetChildrenForCurrentCarer: Subject<FootstepsChild.IGetChildrenForCurrentCarerResult> = new Subject();\r\n                        \r\n                            public onGetChildrenObservationCounts: Subject<RequestInfo<FootstepsChild.IGetChildrenObservationCountsRequest, FootstepsChild.IGetChildrenObservationCountsResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async changeRequestChildDetails(request : FootstepsChild.IChangeRequestChildDetailsRequest, overridenToken?: string): Promise<FootstepsChild.IChangeRequestChildDetailsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsChild.IChangeRequestChildDetailsRequest, FootstepsChild.IChangeRequestChildDetailsResult>(request, 'FootstepsChild', 'ChangeRequestChildDetails', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onChangeRequestChildDetails.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildProgress(request : FootstepsChild.IGetChildProgressRequest, overridenToken?: string): Promise<FootstepsChild.IGetChildProgressResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsChild.IGetChildProgressRequest, FootstepsChild.IGetChildProgressResult>(request, 'FootstepsChild', 'GetChildProgress', overridenToken);\r\n                                        \r\n                                            this.onGetChildProgress.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildrenAchievementCounts(request : FootstepsChild.IGetChildrenAchievementCountsRequest, overridenToken?: string): Promise<FootstepsChild.IGetChildrenAchievementCountsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsChild.IGetChildrenAchievementCountsRequest, FootstepsChild.IGetChildrenAchievementCountsResult>(request, 'FootstepsChild', 'GetChildrenAchievementCounts', overridenToken);\r\n                                        \r\n                                            this.onGetChildrenAchievementCounts.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildren(request : FootstepsChild.IGetChildrenRequest, overridenToken?: string): Promise<FootstepsChild.IGetChildrenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsChild.IGetChildrenRequest, FootstepsChild.IGetChildrenResult>(request, 'FootstepsChild', 'GetChildren', overridenToken);\r\n                                        \r\n                                            this.onGetChildren.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildrenForCarer(request : FootstepsChild.IGetChildrenForCarerRequest, overridenToken?: string): Promise<FootstepsChild.IGetChildrenForCarerResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsChild.IGetChildrenForCarerRequest, FootstepsChild.IGetChildrenForCarerResult>(request, 'FootstepsChild', 'GetChildrenForCarer', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetChildrenForCarer.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getChildrenForCurrentCarer(overridenToken?: string): Promise<FootstepsChild.IGetChildrenForCurrentCarerResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsChild.IGetChildrenForCurrentCarerResult>({}, 'FootstepsChild', 'GetChildrenForCurrentCarer', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetChildrenForCurrentCarer.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildrenObservationCounts(request : FootstepsChild.IGetChildrenObservationCountsRequest, overridenToken?: string): Promise<FootstepsChild.IGetChildrenObservationCountsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsChild.IGetChildrenObservationCountsRequest, FootstepsChild.IGetChildrenObservationCountsResult>(request, 'FootstepsChild', 'GetChildrenObservationCounts', overridenToken);\r\n                                        \r\n                                            this.onGetChildrenObservationCounts.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsCarer {\r\n                    \r\n                            export enum ChangeRequestCarerDetailsError {\r\n                                currentUserNotFound = 'currentUserNotFound',\r\n                                businessNotFound = 'businessNotFound',\r\n                                nurseryNotFound = 'nurseryNotFound',\r\n                                nurseryNoEmail = 'nurseryNoEmail'\r\n                            }\r\n                        \r\n                            export enum CreateCarerForChildError {\r\n                                validationError = 'validationError',\r\n                                childDoesNotExist = 'childDoesNotExist'\r\n                            }\r\n                        \r\n                            export enum DeleteCarerMediaError {\r\n                                fileWithIdDoesNotExist = 'fileWithIdDoesNotExist',\r\n                                fileNotOwnedByCurrentCarer = 'fileNotOwnedByCurrentCarer'\r\n                            }\r\n                        \r\n                            export enum GetCarersForChildrenError {\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                            export enum GetPrimaryCarerError {\r\n                                childHasNoPrimaryCarer = 'childHasNoPrimaryCarer'\r\n                            }\r\n                        \r\n                            export enum LinkCarerToChildError {\r\n                                mappingAlreadyExists = 'mappingAlreadyExists',\r\n                                childDoesNotExist = 'childDoesNotExist',\r\n                                carerDoesNotExist = 'carerDoesNotExist',\r\n                                relationshipTooLong = 'relationshipTooLong',\r\n                                carerIsAlreadyPrimaryCarer = 'carerIsAlreadyPrimaryCarer'\r\n                            }\r\n                        \r\n                            export enum UnlinkCarerFromChildError {\r\n                                childDoesNotExist = 'childDoesNotExist',\r\n                                carerDoesNotExist = 'carerDoesNotExist',\r\n                                linkDoesNotExist = 'linkDoesNotExist',\r\n                                cannotUnlinkPrimaryCarer = 'cannotUnlinkPrimaryCarer'\r\n                            }\r\n                        \r\n                                export interface IChangeRequestCarerDetailsRequest {\r\n                                    id: number,\r\n title: string,\r\n firstName: string,\r\n lastName: string,\r\n houseNameNo: string,\r\n address1: string,\r\n address2: string,\r\n address3: string,\r\n town: string,\r\n county: string,\r\n postcode: string,\r\n homePhone: string,\r\n workPhone: string,\r\n otherPhone: string,\r\n phoneNumber: string,\r\n email: string,\r\n emergencyContactNumbers: IChangeRequestCarerDetailsCommandLabelItem[],\r\n isEmergencyContact: boolean\r\n                                }\r\n                            \r\n                                export interface IChangeRequestCarerDetailsResult {\r\n                                    successful: boolean,\r\n errors: ChangeRequestCarerDetailsError[]\r\n                                }\r\n                            \r\n                                export interface IChangeRequestCarerDetailsCommandLabelItem {\r\n                                    id: number,\r\n label: string\r\n                                }\r\n                           \r\n                                export interface ICreateCarerForChildRequest {\r\n                                    childId: UUID,\r\n relationship: string,\r\n isParentalResponsibility: boolean,\r\n isEmergencyContact: boolean,\r\n carerName: ICreateCarerForChildCommandCarerNameInfo,\r\n carerEmail: string,\r\n carerPhoneNumberSet: ICreateCarerForChildCommandPhoneNumberSet,\r\n carerAddress: ICreateCarerForChildCommandCarerAddressInfo,\r\n isMale: boolean\r\n                                }\r\n                            \r\n                                export interface ICreateCarerForChildResult {\r\n                                    successful: boolean,\r\n errors: CreateCarerForChildError[],\r\n carerGuid: UUID,\r\n carerId: number\r\n                                }\r\n                            \r\n                                export interface ICreateCarerForChildCommandCarerNameInfo {\r\n                                    title: string,\r\n firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                                export interface ICreateCarerForChildCommandPhoneNumberSet {\r\n                                    homePhone: string,\r\n workPhone: string,\r\n mobilePhone: string\r\n                                }\r\n                           \r\n                                export interface ICreateCarerForChildCommandCarerAddressInfo {\r\n                                    addressIdentifier: string,\r\n addressLine1: string,\r\n addressLine2: string,\r\n addressLine3: string,\r\n town: string,\r\n county: string,\r\n postCode: string\r\n                                }\r\n                           \r\n                                export interface IDeleteCarerMediaRequest {\r\n                                    fileId: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteCarerMediaResult {\r\n                                    successful: boolean,\r\n errors: DeleteCarerMediaError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllCarerNamesForNurseryResult {\r\n                                    carers: IGetAllCarerNamesForNurseryCommandResultCarerInfo[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetAllCarerNamesForNurseryCommandResultCarerInfo {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string,\r\n legacyId: number,\r\n title: string\r\n                                }\r\n                           \r\n                                export interface IGetCarersForChildrenRequest {\r\n                                    childIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IGetCarersForChildrenResult {\r\n                                    successful: boolean,\r\n carers: IGetCarersForChildrenResultCarer[],\r\n errors: GetCarersForChildrenError[]\r\n                                }\r\n                            \r\n                                export interface IGetCarersForChildrenResultCarer {\r\n                                    id: UUID,\r\n children: IGetCarersForChildrenResultChildRelation[],\r\n firstName: string,\r\n lastName: string,\r\n email: string,\r\n isParentalResponsibility: boolean\r\n                                }\r\n                           \r\n                                export interface IGetCarersForChildrenResultChildRelation {\r\n                                    relationshipToCarer: string,\r\n child: IGetCarersForChildrenResultChild,\r\n isPrimaryCarer: boolean\r\n                                }\r\n                           \r\n                                export interface IGetCarersForChildrenResultChild {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                                export interface IGetChildCarersEmailDetailsRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetChildCarersEmailDetailsResult {\r\n                                    carers: IGetChildCarersEmailDetailsCommandResultCarer[]\r\n                                }\r\n                            \r\n                                export interface IGetChildCarersEmailDetailsCommandResultCarer {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string,\r\n email: string,\r\n relationship: string,\r\n isParentalResponsibility: boolean\r\n                                }\r\n                           \r\n                                export interface IGetChildCarersRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetChildCarersResult {\r\n                                    hasAccessToFamilySection: boolean,\r\n carers: IGetChildCarersCommandResultCarer[]\r\n                                }\r\n                            \r\n                                export interface IGetChildCarersCommandResultCarer {\r\n                                    id: UUID,\r\n title: string,\r\n firstName: string,\r\n lastName: string,\r\n workTel: string,\r\n mobileTel: string,\r\n homeTel: string,\r\n email: string,\r\n addressIdentifier: string,\r\n addressLine1: string,\r\n addressLine2: string,\r\n addressLine3: string,\r\n town: string,\r\n county: string,\r\n postCode: string,\r\n isEmergencyContact: boolean,\r\n isParentalResponsibility: boolean,\r\n relationship: string,\r\n photoUrl: string,\r\n isMale: boolean\r\n                                }\r\n                           \r\n                                export interface IGetPrimaryCarerRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetPrimaryCarerResult {\r\n                                    carerId: UUID,\r\n successful: boolean,\r\n errors: GetPrimaryCarerError[]\r\n                                }\r\n                            \r\n                                export interface ILinkCarerToChildRequest {\r\n                                    childId: UUID,\r\n adultId: UUID,\r\n relationship: string,\r\n isEmergencyContact: boolean,\r\n isParentalResponsibility: boolean\r\n                                }\r\n                            \r\n                                export interface ILinkCarerToChildResult {\r\n                                    successful: boolean,\r\n child2Adult: ILinkCarerToChildCommandResultChild2AdultResult,\r\n errors: LinkCarerToChildError[]\r\n                                }\r\n                            \r\n                                export interface ILinkCarerToChildCommandResultChild2AdultResult {\r\n                                    pId: number,\r\n itemId: number,\r\n adultId: number,\r\n childId: number,\r\n relationship: string,\r\n activateParentPortal: boolean,\r\n nurseryId: number,\r\n createDate: string | moment.Moment | Date,\r\n emergency: boolean,\r\n isParentalResponsibility: boolean,\r\n isBillPayer: boolean\r\n                                }\r\n                           \r\n                                export interface IUnlinkCarerFromChildRequest {\r\n                                    childId: UUID,\r\n carerId: UUID\r\n                                }\r\n                            \r\n                                export interface IUnlinkCarerFromChildResult {\r\n                                    successful: boolean,\r\n errors: UnlinkCarerFromChildError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsCarerCommands {\r\n                    \r\n                            public onChangeRequestCarerDetails: Subject<RequestInfo<FootstepsCarer.IChangeRequestCarerDetailsRequest, FootstepsCarer.IChangeRequestCarerDetailsResult>> = new Subject();\r\n                        \r\n                            public onCreateCarerForChild: Subject<RequestInfo<FootstepsCarer.ICreateCarerForChildRequest, FootstepsCarer.ICreateCarerForChildResult>> = new Subject();\r\n                        \r\n                            public onDeleteCarerMedia: Subject<RequestInfo<FootstepsCarer.IDeleteCarerMediaRequest, FootstepsCarer.IDeleteCarerMediaResult>> = new Subject();\r\n                        \r\n                            public onGetAllCarerNamesForNursery: Subject<FootstepsCarer.IGetAllCarerNamesForNurseryResult> = new Subject();\r\n                        \r\n                            public onGetCarersForChildren: Subject<RequestInfo<FootstepsCarer.IGetCarersForChildrenRequest, FootstepsCarer.IGetCarersForChildrenResult>> = new Subject();\r\n                        \r\n                            public onGetChildCarersEmailDetails: Subject<RequestInfo<FootstepsCarer.IGetChildCarersEmailDetailsRequest, FootstepsCarer.IGetChildCarersEmailDetailsResult>> = new Subject();\r\n                        \r\n                            public onGetChildCarers: Subject<RequestInfo<FootstepsCarer.IGetChildCarersRequest, FootstepsCarer.IGetChildCarersResult>> = new Subject();\r\n                        \r\n                            public onGetPrimaryCarer: Subject<RequestInfo<FootstepsCarer.IGetPrimaryCarerRequest, FootstepsCarer.IGetPrimaryCarerResult>> = new Subject();\r\n                        \r\n                            public onLinkCarerToChild: Subject<RequestInfo<FootstepsCarer.ILinkCarerToChildRequest, FootstepsCarer.ILinkCarerToChildResult>> = new Subject();\r\n                        \r\n                            public onUnlinkCarerFromChild: Subject<RequestInfo<FootstepsCarer.IUnlinkCarerFromChildRequest, FootstepsCarer.IUnlinkCarerFromChildResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async changeRequestCarerDetails(request : FootstepsCarer.IChangeRequestCarerDetailsRequest, overridenToken?: string): Promise<FootstepsCarer.IChangeRequestCarerDetailsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCarer.IChangeRequestCarerDetailsRequest, FootstepsCarer.IChangeRequestCarerDetailsResult>(request, 'FootstepsCarer', 'ChangeRequestCarerDetails', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onChangeRequestCarerDetails.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createCarerForChild(request : FootstepsCarer.ICreateCarerForChildRequest, overridenToken?: string): Promise<FootstepsCarer.ICreateCarerForChildResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCarer.ICreateCarerForChildRequest, FootstepsCarer.ICreateCarerForChildResult>(request, 'FootstepsCarer', 'CreateCarerForChild', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateCarerForChild.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteCarerMedia(request : FootstepsCarer.IDeleteCarerMediaRequest, overridenToken?: string): Promise<FootstepsCarer.IDeleteCarerMediaResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCarer.IDeleteCarerMediaRequest, FootstepsCarer.IDeleteCarerMediaResult>(request, 'FootstepsCarer', 'DeleteCarerMedia', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteCarerMedia.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllCarerNamesForNursery(overridenToken?: string): Promise<FootstepsCarer.IGetAllCarerNamesForNurseryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsCarer.IGetAllCarerNamesForNurseryResult>({}, 'FootstepsCarer', 'GetAllCarerNamesForNursery', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAllCarerNamesForNursery.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getCarersForChildren(request : FootstepsCarer.IGetCarersForChildrenRequest, overridenToken?: string): Promise<FootstepsCarer.IGetCarersForChildrenResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCarer.IGetCarersForChildrenRequest, FootstepsCarer.IGetCarersForChildrenResult>(request, 'FootstepsCarer', 'GetCarersForChildren', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetCarersForChildren.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildCarersEmailDetails(request : FootstepsCarer.IGetChildCarersEmailDetailsRequest, overridenToken?: string): Promise<FootstepsCarer.IGetChildCarersEmailDetailsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCarer.IGetChildCarersEmailDetailsRequest, FootstepsCarer.IGetChildCarersEmailDetailsResult>(request, 'FootstepsCarer', 'GetChildCarersEmailDetails', overridenToken);\r\n                                        \r\n                                            this.onGetChildCarersEmailDetails.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildCarers(request : FootstepsCarer.IGetChildCarersRequest, overridenToken?: string): Promise<FootstepsCarer.IGetChildCarersResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCarer.IGetChildCarersRequest, FootstepsCarer.IGetChildCarersResult>(request, 'FootstepsCarer', 'GetChildCarers', overridenToken);\r\n                                        \r\n                                            this.onGetChildCarers.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getPrimaryCarer(request : FootstepsCarer.IGetPrimaryCarerRequest, overridenToken?: string): Promise<FootstepsCarer.IGetPrimaryCarerResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCarer.IGetPrimaryCarerRequest, FootstepsCarer.IGetPrimaryCarerResult>(request, 'FootstepsCarer', 'GetPrimaryCarer', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetPrimaryCarer.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async linkCarerToChild(request : FootstepsCarer.ILinkCarerToChildRequest, overridenToken?: string): Promise<FootstepsCarer.ILinkCarerToChildResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCarer.ILinkCarerToChildRequest, FootstepsCarer.ILinkCarerToChildResult>(request, 'FootstepsCarer', 'LinkCarerToChild', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onLinkCarerToChild.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async unlinkCarerFromChild(request : FootstepsCarer.IUnlinkCarerFromChildRequest, overridenToken?: string): Promise<FootstepsCarer.IUnlinkCarerFromChildResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsCarer.IUnlinkCarerFromChildRequest, FootstepsCarer.IUnlinkCarerFromChildResult>(request, 'FootstepsCarer', 'UnlinkCarerFromChild', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUnlinkCarerFromChild.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsBusiness {\r\n                    \r\n                                export interface IGetBusinessLogoAsBase64Result {\r\n                                    successful: boolean,\r\n dataUri: string\r\n                                }\r\n                            \r\n                                export interface IGetBusinessLogoUrlResult {\r\n                                    businesslogoUrl: string,\r\n businessName: string\r\n                                }\r\n                            \r\n                                export interface ISetBusinessDemoExpiryRequest {\r\n                                    businessId: UUID,\r\n expiryDate: string | moment.Moment | Date | null\r\n                                }\r\n                            \r\n                                export interface ISetBusinessDemoExpiryResult {\r\n                                    successful: boolean,\r\n errors: Error[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsBusinessCommands {\r\n                    \r\n                            public onGetBusinessLogoAsBase64: Subject<FootstepsBusiness.IGetBusinessLogoAsBase64Result> = new Subject();\r\n                        \r\n                            public onGetBusinessLogoUrl: Subject<FootstepsBusiness.IGetBusinessLogoUrlResult> = new Subject();\r\n                        \r\n                            public onSetBusinessDemoExpiry: Subject<RequestInfo<FootstepsBusiness.ISetBusinessDemoExpiryRequest, FootstepsBusiness.ISetBusinessDemoExpiryResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getBusinessLogoAsBase64(overridenToken?: string): Promise<FootstepsBusiness.IGetBusinessLogoAsBase64Result> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsBusiness.IGetBusinessLogoAsBase64Result>({}, 'FootstepsBusiness', 'GetBusinessLogoAsBase64', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetBusinessLogoAsBase64.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getBusinessLogoUrl(overridenToken?: string): Promise<FootstepsBusiness.IGetBusinessLogoUrlResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsBusiness.IGetBusinessLogoUrlResult>({}, 'FootstepsBusiness', 'GetBusinessLogoUrl', overridenToken);\r\n                                        \r\n                                            this.onGetBusinessLogoUrl.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async setBusinessDemoExpiry(request : FootstepsBusiness.ISetBusinessDemoExpiryRequest, overridenToken?: string): Promise<FootstepsBusiness.ISetBusinessDemoExpiryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsBusiness.ISetBusinessDemoExpiryRequest, FootstepsBusiness.ISetBusinessDemoExpiryResult>(request, 'FootstepsBusiness', 'SetBusinessDemoExpiry', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSetBusinessDemoExpiry.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsAssessment {\r\n                    \r\n                            export enum ApproveAssessmentError {\r\n                                assessmentNotFound = 'assessmentNotFound'\r\n                            }\r\n                        \r\n                            export enum CreateAssessmentCommandError {\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                            export enum CreateExemptAssessmentError {\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                            export enum DeleteAssessmentError {\r\n                                assessmentNotFound = 'assessmentNotFound'\r\n                            }\r\n                        \r\n                            export enum GetAssessmentCoelCommentsError {\r\n                                assessmentNotFound = 'assessmentNotFound'\r\n                            }\r\n                        \r\n                            export enum GetAssessmentError {\r\n                                invalidAssessmentId = 'invalidAssessmentId'\r\n                            }\r\n                        \r\n                            export enum GetAssessmentLastModifiedDateError {\r\n                                assessmentNotFound = 'assessmentNotFound'\r\n                            }\r\n                        \r\n                            export enum GetAssessmentStatementsError {\r\n                                assessmentNotFound = 'assessmentNotFound'\r\n                            }\r\n                        \r\n                            export enum GetAutomaticallyGeneratedAssessmentChoicesCommandBandSelectionStyle {\r\n                                highestSecureAgeBand = 'highestSecureAgeBand',\r\n                                highestAccessedAgeBand = 'highestAccessedAgeBand'\r\n                            }\r\n                        \r\n                            export enum GetAutomaticallyGeneratedAssessmentChoicesCommandError {\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                            export enum GetChildAssessmentsByStatusError {\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                            export enum RejectAssessmentError {\r\n                                assessmentNotFound = 'assessmentNotFound'\r\n                            }\r\n                        \r\n                            export enum SaveAssessmentPrimeAreasError {\r\n                                assessmentDoesNotExist = 'assessmentDoesNotExist',\r\n                                startDateIsEmpty = 'startDateIsEmpty',\r\n                                communicationAndLearningCommentsIsEmpty = 'communicationAndLearningCommentsIsEmpty',\r\n                                listeningAndAttentionCommentsIsEmpty = 'listeningAndAttentionCommentsIsEmpty',\r\n                                understandingCommentsIsEmpty = 'understandingCommentsIsEmpty',\r\n                                speakingCommentsIsEmpty = 'speakingCommentsIsEmpty',\r\n                                physicalDevelopmentCommentsIsEmpty = 'physicalDevelopmentCommentsIsEmpty',\r\n                                movingAndHandlingCommentsIsEmpty = 'movingAndHandlingCommentsIsEmpty',\r\n                                healthAndSelfCareCommentsIsEmpty = 'healthAndSelfCareCommentsIsEmpty',\r\n                                psedCommentsIsEmpty = 'psedCommentsIsEmpty',\r\n                                mathsCommentsIsEmpty = 'mathsCommentsIsEmpty',\r\n                                literacyCommentIsEmpty = 'literacyCommentIsEmpty',\r\n                                understandingTheWorldCommentIsEmpty = 'understandingTheWorldCommentIsEmpty',\r\n                                expressiveArtsAndDesignCommentIsEmpty = 'expressiveArtsAndDesignCommentIsEmpty',\r\n                                makingRelationshipsCommentsIsEmpty = 'makingRelationshipsCommentsIsEmpty',\r\n                                selfConfidenceAndSelfAwarenessCommentsIsEmpty = 'selfConfidenceAndSelfAwarenessCommentsIsEmpty',\r\n                                managingFeelingAndBehaviourCommentsIsEmpty = 'managingFeelingAndBehaviourCommentsIsEmpty',\r\n                                readingCommentIsEmpty = 'readingCommentIsEmpty',\r\n                                writngCommentIsEmpty = 'writngCommentIsEmpty',\r\n                                numbersCommentIsEmpty = 'numbersCommentIsEmpty',\r\n                                shapeSpaceAndMeasureCommentIsEmpty = 'shapeSpaceAndMeasureCommentIsEmpty',\r\n                                peopleAndCommunitesCommentIsEmpty = 'peopleAndCommunitesCommentIsEmpty',\r\n                                theWorldCommentIsEmpty = 'theWorldCommentIsEmpty',\r\n                                technologyCommentIsEmpty = 'technologyCommentIsEmpty',\r\n                                exploringNewMaterialsCommentIsEmpty = 'exploringNewMaterialsCommentIsEmpty',\r\n                                beingImaginativeCommentIsEmpty = 'beingImaginativeCommentIsEmpty',\r\n                                someAreasAreMissing = 'someAreasAreMissing',\r\n                                someAspectsAreMissing = 'someAspectsAreMissing'\r\n                            }\r\n                        \r\n                            export enum SaveAssessmentStatementsError {\r\n                                assessmentNotFound = 'assessmentNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateAssessmentCoelError {\r\n                                assessmentNotFound = 'assessmentNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateAssessmentStatementsError {\r\n                                assessmentNotFound = 'assessmentNotFound',\r\n                                areasRequiringExtraSupportIsEmpty = 'areasRequiringExtraSupportIsEmpty'\r\n                            }\r\n                        \r\n                            export enum UpdateAssessmentStatusError {\r\n                                assessmentNotFound = 'assessmentNotFound'\r\n                            }\r\n                        \r\n                                export interface IApproveAssessmentRequest {\r\n                                    assessmentIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IApproveAssessmentResult {\r\n                                    successful: boolean,\r\n errors: ApproveAssessmentError[]\r\n                                }\r\n                            \r\n                                export interface ICreateAssessmentCommandRequest {\r\n                                    childId: UUID,\r\n date: string | moment.Moment | Date,\r\n assessmentType: AssessmentType,\r\n withNextSteps: boolean\r\n                                }\r\n                            \r\n                                export interface ICreateAssessmentCommandResult {\r\n                                    successful: boolean,\r\n errors: CreateAssessmentCommandError[],\r\n result: ICreateAssessmentCommandResultAssessment\r\n                                }\r\n                            \r\n                                export interface ICreateAssessmentCommandResultAssessment {\r\n                                    id: UUID\r\n                                }\r\n                           \r\n                                export interface ICreateExemptAssessmentRequest {\r\n                                    childId: UUID,\r\n date: string | moment.Moment | Date,\r\n exemptionReason: AssessmentExemptionReason,\r\n exemptionText: string\r\n                                }\r\n                            \r\n                                export interface ICreateExemptAssessmentResult {\r\n                                    successful: boolean,\r\n errors: CreateExemptAssessmentError[],\r\n result: ICreateExemptAssessmentCommandResultAssessment\r\n                                }\r\n                            \r\n                                export interface ICreateExemptAssessmentCommandResultAssessment {\r\n                                    id: UUID\r\n                                }\r\n                           \r\n                                export interface IDeleteAssessmentRequest {\r\n                                    id: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteAssessmentResult {\r\n                                    successful: boolean,\r\n errors: DeleteAssessmentError[]\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentCoelCommentsRequest {\r\n                                    assessmentId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentCoelCommentsResult {\r\n                                    successful: boolean,\r\n errors: GetAssessmentCoelCommentsError[],\r\n comments: string,\r\n playingAndExploring: string,\r\n activeLearning: string,\r\n creatingAndThinkingCritically: string\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentCountByStatusRequest {\r\n                                    assessmentStatus: AssessmentStatus\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentCountByStatusResult {\r\n                                    count: number\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentCountsCommandResult {\r\n                                    successful: boolean,\r\n childrenCurrentlyPresent: IGetAssessmentCountsCommandResultChildAssessmentCount[],\r\n childrenNotCurrentlyPresent: IGetAssessmentCountsCommandResultChildAssessmentCount[]\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentCountsCommandResultChildAssessmentCount {\r\n                                    childId: UUID,\r\n awaitingApprovalAssesmentsCount: number,\r\n draftAssessmentsCount: number,\r\n completedAssessmentsCount: number,\r\n rejectedAssessmentsCount: number\r\n                                }\r\n                           \r\n                                export interface IGetAssessmentRequest {\r\n                                    assessmentId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentResult {\r\n                                    resultAssessment: IGetAssessmentCommandResultAssessment,\r\n errors: GetAssessmentError[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentCommandResultAssessment {\r\n                                    id: UUID,\r\n childId: UUID,\r\n createdByUserId: UUID | null,\r\n date: string | moment.Moment | Date,\r\n coelComments: string,\r\n coelPlayingAndExploringComments: string,\r\n coelActiveLearningComments: string,\r\n coelCreatingAndThinkingCriticallyComments: string,\r\n areasOfGoodProgress: string,\r\n areasRequiringExtraSupport: string,\r\n nextSteps: string,\r\n waysToHelpAtHome: string,\r\n keyPersonStatement: string,\r\n parentCarerComments: string,\r\n healthVisitorComments: string,\r\n status: AssessmentStatus,\r\n type: AssessmentType,\r\n assessmentAreas: IGetAssessmentCommandResultAssessmentArea[],\r\n isExempt: boolean,\r\n exemptionReason: AssessmentExemptionReason,\r\n exemptionText: string,\r\n rejectionReason: string,\r\n userProvidedAssessmentName: string\r\n                                }\r\n                           \r\n                                export interface IGetAssessmentCommandResultAssessmentArea {\r\n                                    id: UUID,\r\n assessmentId: UUID,\r\n areaKey: EyfsAreaKey,\r\n ageBandKey: AgeBandKey | null,\r\n comments: string,\r\n assessmentAspects: IGetAssessmentCommandResultAssessmentAspect[],\r\n assessmentEarlyLearningGoals: IGetAssessmentCommandResultAssessmentEarlyLearningGoal[]\r\n                                }\r\n                           \r\n                                export interface IGetAssessmentCommandResultAssessmentAspect {\r\n                                    assessmentAreaId: UUID,\r\n aspectKey: EyfsAspectKey,\r\n comments: string,\r\n ageBandKey: AgeBandKey | null,\r\n goal: EarlyLearningGoal\r\n                                }\r\n                           \r\n                                export interface IGetAssessmentCommandResultAssessmentEarlyLearningGoal {\r\n                                    assessmentAreaId: UUID,\r\n eyfsEarlyLearningGoalKey: EyfsEarlyLearningGoalKey,\r\n comments: string,\r\n barriersToLearning: string,\r\n successfulStrategiesForLearning: string,\r\n goalEds: EarlyLearningGoal\r\n                                }\r\n                           \r\n                                export interface IGetAssessmentLastModifiedDateRequest {\r\n                                    assessmentId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentLastModifiedDateResult {\r\n                                    lastModifiedDate: string | moment.Moment | Date,\r\n successful: boolean,\r\n userId: UUID | null,\r\n userFirstName: string,\r\n userLastName: string,\r\n errors: GetAssessmentLastModifiedDateError[]\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentsByStatusRequest {\r\n                                    status: AssessmentStatus\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentsByStatusResult {\r\n                                    assessments: IGetAssessmentsByStatusCommandResultAssessment[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentsByStatusCommandResultAssessment {\r\n                                    id: UUID,\r\n childId: UUID,\r\n childFirstName: string,\r\n childLastName: string,\r\n photoUrl: string,\r\n status: AssessmentStatus,\r\n type: AssessmentType,\r\n createdByFullName: string,\r\n updatedByFullName: string,\r\n whenCreated: string | moment.Moment | Date,\r\n createdByUserId: UUID | null,\r\n updatedByUserId: UUID | null,\r\n whenUpdated: string | moment.Moment | Date,\r\n assessmentDate: string | moment.Moment | Date,\r\n rejectionReason: string,\r\n userProvidedAssessmentName: string\r\n                                }\r\n                           \r\n                                export interface IGetAssessmentStatementsRequest {\r\n                                    assessmentId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetAssessmentStatementsResult {\r\n                                    successful: boolean,\r\n errors: GetAssessmentStatementsError[],\r\n keyPersonStatement: string,\r\n nextSteps: string,\r\n parentCarerComments: string,\r\n healthVisitorComments: string,\r\n areasOfGoodProgress: string,\r\n areasRequiringExtraSupport: string,\r\n waysToHelpAtHome: string\r\n                                }\r\n                            \r\n                                export interface IGetAutomaticallyGeneratedAssessmentChoicesCommandRequest {\r\n                                    selectionStyle: GetAutomaticallyGeneratedAssessmentChoicesCommandBandSelectionStyle,\r\n curriculumKey: CurriculumKey,\r\n childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetAutomaticallyGeneratedAssessmentChoicesCommandResult {\r\n                                    generatedAreas: IGetAutomaticallyGeneratedAssessmentChoicesCommandResultGeneratedAssementChoice[],\r\n successful: boolean,\r\n errors: GetAutomaticallyGeneratedAssessmentChoicesCommandError[]\r\n                                }\r\n                            \r\n                                export interface IGetAutomaticallyGeneratedAssessmentChoicesCommandResultGeneratedAssementChoice {\r\n                                    selectedAgeBand: AgeBandKey,\r\n eyfsAspectKey: EyfsAspectKey\r\n                                }\r\n                           \r\n                                export interface IGetChildAssessmentListRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetChildAssessmentListResult {\r\n                                    childAssesments: IGetChildAssessmentListResultChildAssesment[]\r\n                                }\r\n                            \r\n                                export interface IGetChildAssessmentListResultChildAssesment {\r\n                                    createdDate: string | moment.Moment | Date,\r\n lastEditedDate: string | moment.Moment | Date,\r\n assessmentBy: string,\r\n lastEditedBy: string,\r\n assessmentType: string\r\n                                }\r\n                           \r\n                                export interface IGetChildAssessmentsByStatusRequest {\r\n                                    childId: UUID,\r\n status: AssessmentStatus\r\n                                }\r\n                            \r\n                                export interface IGetChildAssessmentsByStatusResult {\r\n                                    successful: boolean,\r\n errors: GetChildAssessmentsByStatusError[],\r\n assessments: IGetChildAssessmentsByStatusResultAssessment[]\r\n                                }\r\n                            \r\n                                export interface IGetChildAssessmentsByStatusResultAssessment {\r\n                                    id: UUID,\r\n childId: UUID,\r\n date: string | moment.Moment | Date,\r\n coelComments: string,\r\n coelPlayingAndExploringComments: string,\r\n coelActiveLearningComments: string,\r\n coelCreatingAndThinkingCriticallyComments: string,\r\n areasOfGoodProgress: string,\r\n areasRequiringExtraSupport: string,\r\n nextSteps: string,\r\n waysToHelpAtHome: string,\r\n keyPersonStatement: string,\r\n parentCarerComments: string,\r\n status: AssessmentStatus,\r\n type: AssessmentType,\r\n assessmentAreas: IGetChildAssessmentsByStatusResultAssessmentArea[],\r\n whenUpdated: string | moment.Moment | Date,\r\n createdByFirstName: string,\r\n createdByLastName: string,\r\n lastUpdatedByFirstName: string,\r\n lastUpdatedByLastName: string,\r\n assessmentDate: string | moment.Moment | Date,\r\n userProvidedAssessmentName: string\r\n                                }\r\n                           \r\n                                export interface IGetChildAssessmentsByStatusResultAssessmentArea {\r\n                                    id: UUID,\r\n assessmentId: UUID,\r\n areaKey: EyfsAreaKey,\r\n comments: string,\r\n assessmentAspects: IGetChildAssessmentsByStatusResultAssessmentAspect[]\r\n                                }\r\n                           \r\n                                export interface IGetChildAssessmentsByStatusResultAssessmentAspect {\r\n                                    assessmentAreaId: UUID,\r\n aspectKey: EyfsAspectKey,\r\n comments: string,\r\n ageBandKey: AgeBandKey,\r\n goal: EarlyLearningGoal\r\n                                }\r\n                           \r\n                                export interface IRejectAssessmentRequest {\r\n                                    assessmentIds: UUID[],\r\n rejectionReason: string\r\n                                }\r\n                            \r\n                                export interface IRejectAssessmentResult {\r\n                                    successful: boolean,\r\n errors: RejectAssessmentError[]\r\n                                }\r\n                            \r\n                                export interface ISaveAssessmentPrimeAreasRequest {\r\n                                    assessmentId: UUID,\r\n date: string | moment.Moment | Date,\r\n assessmentAreas: ISaveAssessmentPrimeAreasCommandAssessmentArea[],\r\n userProvidedAssessmentName: string\r\n                                }\r\n                            \r\n                                export interface ISaveAssessmentPrimeAreasResult {\r\n                                    successful: boolean,\r\n errors: SaveAssessmentPrimeAreasError[]\r\n                                }\r\n                            \r\n                                export interface ISaveAssessmentPrimeAreasCommandAssessmentArea {\r\n                                    areaKey: EyfsAreaKey,\r\n ageBandKey: AgeBandKey | null,\r\n comments: string,\r\n assessmentAspects: ISaveAssessmentPrimeAreasCommandAssessmentAspect[],\r\n assessmentEarlyLearningGoals: ISaveAssessmentPrimeAreasCommandAssessmentEarlyLearningGoal[]\r\n                                }\r\n                           \r\n                                export interface ISaveAssessmentPrimeAreasCommandAssessmentAspect {\r\n                                    aspectKey: EyfsAspectKey,\r\n comments: string,\r\n ageBandKey: AgeBandKey | null,\r\n goal: EarlyLearningGoal\r\n                                }\r\n                           \r\n                                export interface ISaveAssessmentPrimeAreasCommandAssessmentEarlyLearningGoal {\r\n                                    earlyLearningGoalKey: EyfsEarlyLearningGoalKey,\r\n comments: string,\r\n goal: EarlyLearningGoal,\r\n barriersToLearning: string,\r\n successfulStrategiesForLearning: string\r\n                                }\r\n                           \r\n                                export interface ISaveAssessmentStatementsRequest {\r\n                                    assessmentId: UUID,\r\n nextSteps: string,\r\n keyPersonStatement: string,\r\n parentCarerComments: string,\r\n healthVisitorComments: string,\r\n areasOfGoodProgress: string,\r\n areasRequiringExtraSupport: string,\r\n waysToHelpAtHome: string\r\n                                }\r\n                            \r\n                                export interface ISaveAssessmentStatementsResult {\r\n                                    successful: boolean,\r\n errors: SaveAssessmentStatementsError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateAssessmentCoelRequest {\r\n                                    id: UUID,\r\n comments: string,\r\n playingAndExploringComments: string,\r\n activeLearningComments: string,\r\n creatingAndThinkingCriticallyComments: string\r\n                                }\r\n                            \r\n                                export interface IUpdateAssessmentCoelResult {\r\n                                    successful: boolean,\r\n errors: UpdateAssessmentCoelError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateAssessmentStatementsRequest {\r\n                                    id: UUID,\r\n nextSteps: string,\r\n keyPersonStatement: string,\r\n parentCarerComments: string\r\n                                }\r\n                            \r\n                                export interface IUpdateAssessmentStatementsResult {\r\n                                    successful: boolean,\r\n errors: UpdateAssessmentStatementsError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateAssessmentStatusRequest {\r\n                                    assessmentIds: UUID[],\r\n status: AssessmentStatus\r\n                                }\r\n                            \r\n                                export interface IUpdateAssessmentStatusResult {\r\n                                    successful: boolean,\r\n errors: UpdateAssessmentStatusError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsAssessmentCommands {\r\n                    \r\n                            public onApproveAssessment: Subject<RequestInfo<FootstepsAssessment.IApproveAssessmentRequest, FootstepsAssessment.IApproveAssessmentResult>> = new Subject();\r\n                        \r\n                            public onCreateAssessmentCommand: Subject<RequestInfo<FootstepsAssessment.ICreateAssessmentCommandRequest, FootstepsAssessment.ICreateAssessmentCommandResult>> = new Subject();\r\n                        \r\n                            public onCreateExemptAssessment: Subject<RequestInfo<FootstepsAssessment.ICreateExemptAssessmentRequest, FootstepsAssessment.ICreateExemptAssessmentResult>> = new Subject();\r\n                        \r\n                            public onDeleteAssessment: Subject<RequestInfo<FootstepsAssessment.IDeleteAssessmentRequest, FootstepsAssessment.IDeleteAssessmentResult>> = new Subject();\r\n                        \r\n                            public onGetAssessmentCoelComments: Subject<RequestInfo<FootstepsAssessment.IGetAssessmentCoelCommentsRequest, FootstepsAssessment.IGetAssessmentCoelCommentsResult>> = new Subject();\r\n                        \r\n                            public onGetAssessmentCountByStatus: Subject<RequestInfo<FootstepsAssessment.IGetAssessmentCountByStatusRequest, FootstepsAssessment.IGetAssessmentCountByStatusResult>> = new Subject();\r\n                        \r\n                            public onGetAssessmentCountsCommand: Subject<FootstepsAssessment.IGetAssessmentCountsCommandResult> = new Subject();\r\n                        \r\n                            public onGetAssessment: Subject<RequestInfo<FootstepsAssessment.IGetAssessmentRequest, FootstepsAssessment.IGetAssessmentResult>> = new Subject();\r\n                        \r\n                            public onGetAssessmentLastModifiedDate: Subject<RequestInfo<FootstepsAssessment.IGetAssessmentLastModifiedDateRequest, FootstepsAssessment.IGetAssessmentLastModifiedDateResult>> = new Subject();\r\n                        \r\n                            public onGetAssessmentsByStatus: Subject<RequestInfo<FootstepsAssessment.IGetAssessmentsByStatusRequest, FootstepsAssessment.IGetAssessmentsByStatusResult>> = new Subject();\r\n                        \r\n                            public onGetAssessmentStatements: Subject<RequestInfo<FootstepsAssessment.IGetAssessmentStatementsRequest, FootstepsAssessment.IGetAssessmentStatementsResult>> = new Subject();\r\n                        \r\n                            public onGetAutomaticallyGeneratedAssessmentChoicesCommand: Subject<RequestInfo<FootstepsAssessment.IGetAutomaticallyGeneratedAssessmentChoicesCommandRequest, FootstepsAssessment.IGetAutomaticallyGeneratedAssessmentChoicesCommandResult>> = new Subject();\r\n                        \r\n                            public onGetChildAssessmentList: Subject<RequestInfo<FootstepsAssessment.IGetChildAssessmentListRequest, FootstepsAssessment.IGetChildAssessmentListResult>> = new Subject();\r\n                        \r\n                            public onGetChildAssessmentsByStatus: Subject<RequestInfo<FootstepsAssessment.IGetChildAssessmentsByStatusRequest, FootstepsAssessment.IGetChildAssessmentsByStatusResult>> = new Subject();\r\n                        \r\n                            public onRejectAssessment: Subject<RequestInfo<FootstepsAssessment.IRejectAssessmentRequest, FootstepsAssessment.IRejectAssessmentResult>> = new Subject();\r\n                        \r\n                            public onSaveAssessmentPrimeAreas: Subject<RequestInfo<FootstepsAssessment.ISaveAssessmentPrimeAreasRequest, FootstepsAssessment.ISaveAssessmentPrimeAreasResult>> = new Subject();\r\n                        \r\n                            public onSaveAssessmentStatements: Subject<RequestInfo<FootstepsAssessment.ISaveAssessmentStatementsRequest, FootstepsAssessment.ISaveAssessmentStatementsResult>> = new Subject();\r\n                        \r\n                            public onUpdateAssessmentCoel: Subject<RequestInfo<FootstepsAssessment.IUpdateAssessmentCoelRequest, FootstepsAssessment.IUpdateAssessmentCoelResult>> = new Subject();\r\n                        \r\n                            public onUpdateAssessmentStatements: Subject<RequestInfo<FootstepsAssessment.IUpdateAssessmentStatementsRequest, FootstepsAssessment.IUpdateAssessmentStatementsResult>> = new Subject();\r\n                        \r\n                            public onUpdateAssessmentStatus: Subject<RequestInfo<FootstepsAssessment.IUpdateAssessmentStatusRequest, FootstepsAssessment.IUpdateAssessmentStatusResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async approveAssessment(request : FootstepsAssessment.IApproveAssessmentRequest, overridenToken?: string): Promise<FootstepsAssessment.IApproveAssessmentResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IApproveAssessmentRequest, FootstepsAssessment.IApproveAssessmentResult>(request, 'FootstepsAssessment', 'ApproveAssessment', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onApproveAssessment.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createAssessmentCommand(request : FootstepsAssessment.ICreateAssessmentCommandRequest, overridenToken?: string): Promise<FootstepsAssessment.ICreateAssessmentCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.ICreateAssessmentCommandRequest, FootstepsAssessment.ICreateAssessmentCommandResult>(request, 'FootstepsAssessment', 'CreateAssessmentCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateAssessmentCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createExemptAssessment(request : FootstepsAssessment.ICreateExemptAssessmentRequest, overridenToken?: string): Promise<FootstepsAssessment.ICreateExemptAssessmentResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.ICreateExemptAssessmentRequest, FootstepsAssessment.ICreateExemptAssessmentResult>(request, 'FootstepsAssessment', 'CreateExemptAssessment', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateExemptAssessment.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteAssessment(request : FootstepsAssessment.IDeleteAssessmentRequest, overridenToken?: string): Promise<FootstepsAssessment.IDeleteAssessmentResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IDeleteAssessmentRequest, FootstepsAssessment.IDeleteAssessmentResult>(request, 'FootstepsAssessment', 'DeleteAssessment', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteAssessment.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAssessmentCoelComments(request : FootstepsAssessment.IGetAssessmentCoelCommentsRequest, overridenToken?: string): Promise<FootstepsAssessment.IGetAssessmentCoelCommentsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IGetAssessmentCoelCommentsRequest, FootstepsAssessment.IGetAssessmentCoelCommentsResult>(request, 'FootstepsAssessment', 'GetAssessmentCoelComments', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAssessmentCoelComments.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAssessmentCountByStatus(request : FootstepsAssessment.IGetAssessmentCountByStatusRequest, overridenToken?: string): Promise<FootstepsAssessment.IGetAssessmentCountByStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IGetAssessmentCountByStatusRequest, FootstepsAssessment.IGetAssessmentCountByStatusResult>(request, 'FootstepsAssessment', 'GetAssessmentCountByStatus', overridenToken);\r\n                                        \r\n                                            this.onGetAssessmentCountByStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAssessmentCountsCommand(overridenToken?: string): Promise<FootstepsAssessment.IGetAssessmentCountsCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},FootstepsAssessment.IGetAssessmentCountsCommandResult>({}, 'FootstepsAssessment', 'GetAssessmentCountsCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAssessmentCountsCommand.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAssessment(request : FootstepsAssessment.IGetAssessmentRequest, overridenToken?: string): Promise<FootstepsAssessment.IGetAssessmentResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IGetAssessmentRequest, FootstepsAssessment.IGetAssessmentResult>(request, 'FootstepsAssessment', 'GetAssessment', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAssessment.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAssessmentLastModifiedDate(request : FootstepsAssessment.IGetAssessmentLastModifiedDateRequest, overridenToken?: string): Promise<FootstepsAssessment.IGetAssessmentLastModifiedDateResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IGetAssessmentLastModifiedDateRequest, FootstepsAssessment.IGetAssessmentLastModifiedDateResult>(request, 'FootstepsAssessment', 'GetAssessmentLastModifiedDate', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAssessmentLastModifiedDate.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAssessmentsByStatus(request : FootstepsAssessment.IGetAssessmentsByStatusRequest, overridenToken?: string): Promise<FootstepsAssessment.IGetAssessmentsByStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IGetAssessmentsByStatusRequest, FootstepsAssessment.IGetAssessmentsByStatusResult>(request, 'FootstepsAssessment', 'GetAssessmentsByStatus', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAssessmentsByStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAssessmentStatements(request : FootstepsAssessment.IGetAssessmentStatementsRequest, overridenToken?: string): Promise<FootstepsAssessment.IGetAssessmentStatementsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IGetAssessmentStatementsRequest, FootstepsAssessment.IGetAssessmentStatementsResult>(request, 'FootstepsAssessment', 'GetAssessmentStatements', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAssessmentStatements.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAutomaticallyGeneratedAssessmentChoicesCommand(request : FootstepsAssessment.IGetAutomaticallyGeneratedAssessmentChoicesCommandRequest, overridenToken?: string): Promise<FootstepsAssessment.IGetAutomaticallyGeneratedAssessmentChoicesCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IGetAutomaticallyGeneratedAssessmentChoicesCommandRequest, FootstepsAssessment.IGetAutomaticallyGeneratedAssessmentChoicesCommandResult>(request, 'FootstepsAssessment', 'GetAutomaticallyGeneratedAssessmentChoicesCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAutomaticallyGeneratedAssessmentChoicesCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildAssessmentList(request : FootstepsAssessment.IGetChildAssessmentListRequest, overridenToken?: string): Promise<FootstepsAssessment.IGetChildAssessmentListResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IGetChildAssessmentListRequest, FootstepsAssessment.IGetChildAssessmentListResult>(request, 'FootstepsAssessment', 'GetChildAssessmentList', overridenToken);\r\n                                        \r\n                                            this.onGetChildAssessmentList.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildAssessmentsByStatus(request : FootstepsAssessment.IGetChildAssessmentsByStatusRequest, overridenToken?: string): Promise<FootstepsAssessment.IGetChildAssessmentsByStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IGetChildAssessmentsByStatusRequest, FootstepsAssessment.IGetChildAssessmentsByStatusResult>(request, 'FootstepsAssessment', 'GetChildAssessmentsByStatus', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetChildAssessmentsByStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async rejectAssessment(request : FootstepsAssessment.IRejectAssessmentRequest, overridenToken?: string): Promise<FootstepsAssessment.IRejectAssessmentResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IRejectAssessmentRequest, FootstepsAssessment.IRejectAssessmentResult>(request, 'FootstepsAssessment', 'RejectAssessment', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onRejectAssessment.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async saveAssessmentPrimeAreas(request : FootstepsAssessment.ISaveAssessmentPrimeAreasRequest, overridenToken?: string): Promise<FootstepsAssessment.ISaveAssessmentPrimeAreasResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.ISaveAssessmentPrimeAreasRequest, FootstepsAssessment.ISaveAssessmentPrimeAreasResult>(request, 'FootstepsAssessment', 'SaveAssessmentPrimeAreas', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSaveAssessmentPrimeAreas.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async saveAssessmentStatements(request : FootstepsAssessment.ISaveAssessmentStatementsRequest, overridenToken?: string): Promise<FootstepsAssessment.ISaveAssessmentStatementsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.ISaveAssessmentStatementsRequest, FootstepsAssessment.ISaveAssessmentStatementsResult>(request, 'FootstepsAssessment', 'SaveAssessmentStatements', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSaveAssessmentStatements.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateAssessmentCoel(request : FootstepsAssessment.IUpdateAssessmentCoelRequest, overridenToken?: string): Promise<FootstepsAssessment.IUpdateAssessmentCoelResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IUpdateAssessmentCoelRequest, FootstepsAssessment.IUpdateAssessmentCoelResult>(request, 'FootstepsAssessment', 'UpdateAssessmentCoel', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateAssessmentCoel.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateAssessmentStatements(request : FootstepsAssessment.IUpdateAssessmentStatementsRequest, overridenToken?: string): Promise<FootstepsAssessment.IUpdateAssessmentStatementsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IUpdateAssessmentStatementsRequest, FootstepsAssessment.IUpdateAssessmentStatementsResult>(request, 'FootstepsAssessment', 'UpdateAssessmentStatements', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateAssessmentStatements.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateAssessmentStatus(request : FootstepsAssessment.IUpdateAssessmentStatusRequest, overridenToken?: string): Promise<FootstepsAssessment.IUpdateAssessmentStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAssessment.IUpdateAssessmentStatusRequest, FootstepsAssessment.IUpdateAssessmentStatusResult>(request, 'FootstepsAssessment', 'UpdateAssessmentStatus', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateAssessmentStatus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsAddUploadedFileForS3 {\r\n                    \r\n                            export enum AddUploadedFileForS3Error {\r\n                                fileNameIsMissing = 'fileNameIsMissing',\r\n                                pathIsMissing = 'pathIsMissing',\r\n                                fileIdIsEmpty = 'fileIdIsEmpty',\r\n                                fileSizeIsEmpty = 'fileSizeIsEmpty'\r\n                            }\r\n                        \r\n                                export interface IAddUploadedFileForS3Request {\r\n                                    path: string,\r\n fileId: UUID,\r\n originalFileName: string,\r\n fileSize: number,\r\n userType: UserType | null\r\n                                }\r\n                            \r\n                                export interface IAddUploadedFileForS3Result {\r\n                                    successful: boolean,\r\n errors: AddUploadedFileForS3Error[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsAddUploadedFileForS3Commands {\r\n                    \r\n                            public onAddUploadedFileForS3: Subject<RequestInfo<FootstepsAddUploadedFileForS3.IAddUploadedFileForS3Request, FootstepsAddUploadedFileForS3.IAddUploadedFileForS3Result>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async addUploadedFileForS3(request : FootstepsAddUploadedFileForS3.IAddUploadedFileForS3Request, overridenToken?: string): Promise<FootstepsAddUploadedFileForS3.IAddUploadedFileForS3Result> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAddUploadedFileForS3.IAddUploadedFileForS3Request, FootstepsAddUploadedFileForS3.IAddUploadedFileForS3Result>(request, 'FootstepsAddUploadedFileForS3', 'AddUploadedFileForS3', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onAddUploadedFileForS3.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace FootstepsAchievement {\r\n                    \r\n                            export enum CreateAchievementError {\r\n                                childDoesNotExist = 'childDoesNotExist',\r\n                                fileDoesNotExist = 'fileDoesNotExist',\r\n                                invalidUserError = 'invalidUserError',\r\n                                missingChunks = 'missingChunks'\r\n                            }\r\n                        \r\n                            export enum DeleteAchievementError {\r\n                                achievementDoesNotExist = 'achievementDoesNotExist'\r\n                            }\r\n                        \r\n                            export enum GetAchievementsError {\r\n                                achievementNotFound = 'achievementNotFound'\r\n                            }\r\n                        \r\n                                export interface ICreateAchievementRequest {\r\n                                    certificates: ICreateAchievementCommandCertificate[]\r\n                                }\r\n                            \r\n                                export interface ICreateAchievementResult {\r\n                                    successful: boolean,\r\n errors: CreateAchievementError[],\r\n createdAchievements: ICreateAchievementCommandResultAchievement[]\r\n                                }\r\n                            \r\n                                export interface ICreateAchievementCommandResultAchievement {\r\n                                    id: UUID,\r\n childId: UUID\r\n                                }\r\n                           \r\n                                export interface ICreateAchievementCommandCertificate {\r\n                                    partialFileId: UUID,\r\n childId: UUID\r\n                                }\r\n                           \r\n                                export interface IDeleteAchievementRequest {\r\n                                    achievementId: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteAchievementResult {\r\n                                    successful: boolean,\r\n errors: DeleteAchievementError[]\r\n                                }\r\n                            \r\n                                export interface IGetAchievementsRequest {\r\n                                    achievementIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IGetAchievementsResult {\r\n                                    successful: boolean,\r\n errors: GetAchievementsError[],\r\n fileUrls: string[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenCertificatesRequest {\r\n                                    childIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenCertificatesResult {\r\n                                    successful: boolean,\r\n childCertificates: IGetChildrenCertificatesCommandResultChildCertificate[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenCertificatesCommandResultChildCertificate {\r\n                                    childId: UUID,\r\n uploadedFileId: UUID,\r\n fileUrl: string,\r\n thumbnailUrl: string,\r\n dateUploaded: string | moment.Moment | Date\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class FootstepsAchievementCommands {\r\n                    \r\n                            public onCreateAchievement: Subject<RequestInfo<FootstepsAchievement.ICreateAchievementRequest, FootstepsAchievement.ICreateAchievementResult>> = new Subject();\r\n                        \r\n                            public onDeleteAchievement: Subject<RequestInfo<FootstepsAchievement.IDeleteAchievementRequest, FootstepsAchievement.IDeleteAchievementResult>> = new Subject();\r\n                        \r\n                            public onGetAchievements: Subject<RequestInfo<FootstepsAchievement.IGetAchievementsRequest, FootstepsAchievement.IGetAchievementsResult>> = new Subject();\r\n                        \r\n                            public onGetChildrenCertificates: Subject<RequestInfo<FootstepsAchievement.IGetChildrenCertificatesRequest, FootstepsAchievement.IGetChildrenCertificatesResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createAchievement(request : FootstepsAchievement.ICreateAchievementRequest, overridenToken?: string): Promise<FootstepsAchievement.ICreateAchievementResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAchievement.ICreateAchievementRequest, FootstepsAchievement.ICreateAchievementResult>(request, 'FootstepsAchievement', 'CreateAchievement', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateAchievement.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteAchievement(request : FootstepsAchievement.IDeleteAchievementRequest, overridenToken?: string): Promise<FootstepsAchievement.IDeleteAchievementResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAchievement.IDeleteAchievementRequest, FootstepsAchievement.IDeleteAchievementResult>(request, 'FootstepsAchievement', 'DeleteAchievement', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteAchievement.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAchievements(request : FootstepsAchievement.IGetAchievementsRequest, overridenToken?: string): Promise<FootstepsAchievement.IGetAchievementsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAchievement.IGetAchievementsRequest, FootstepsAchievement.IGetAchievementsResult>(request, 'FootstepsAchievement', 'GetAchievements', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAchievements.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getChildrenCertificates(request : FootstepsAchievement.IGetChildrenCertificatesRequest, overridenToken?: string): Promise<FootstepsAchievement.IGetChildrenCertificatesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<FootstepsAchievement.IGetChildrenCertificatesRequest, FootstepsAchievement.IGetChildrenCertificatesResult>(request, 'FootstepsAchievement', 'GetChildrenCertificates', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetChildrenCertificates.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace CommunicationEmailAudit {\r\n                    \r\n                            export enum GetSentEmailAttachmentUrlError {\r\n                                emailOrAttachmentNotFound = 'emailOrAttachmentNotFound'\r\n                            }\r\n                        \r\n                                export interface IGetSentEmailsCommandRequest {\r\n                                    startDate: string | moment.Moment | Date,\r\n endDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetSentEmailsCommandResult {\r\n                                    sentEmails: IGetSentEmailsCommandResultSentEmail[]\r\n                                }\r\n                            \r\n                                export interface IGetSentEmailsCommandResultSentEmail {\r\n                                    messageId: UUID,\r\n subject: string,\r\n fromName: string,\r\n recipientName: string,\r\n toEmail: string,\r\n senderName: string,\r\n reasonForEmail: string,\r\n relatedChildName: string,\r\n createdDate: string | moment.Moment | Date,\r\n attachments: IGetSentEmailsCommandResultSentEmailAttachment[],\r\n bodyAttachmentId: UUID,\r\n statusHistory: IGetSentEmailsCommandResultSentEmailStatusRecord[]\r\n                                }\r\n                           \r\n                                export interface IGetSentEmailsCommandResultSentEmailAttachment {\r\n                                    fileName: string,\r\n attachmentId: UUID\r\n                                }\r\n                           \r\n                                export interface IGetSentEmailsCommandResultSentEmailStatusRecord {\r\n                                    date: string | moment.Moment | Date,\r\n status: EmailStatus\r\n                                }\r\n                           \r\n                                export interface IGetSentEmailAttachmentUrlRequest {\r\n                                    messageId: UUID,\r\n attachmentId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetSentEmailAttachmentUrlResult {\r\n                                    attachmentUrl: string,\r\n successful: boolean,\r\n errors: GetSentEmailAttachmentUrlError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class CommunicationEmailAuditCommands {\r\n                    \r\n                            public onGetSentEmailsCommand: Subject<RequestInfo<CommunicationEmailAudit.IGetSentEmailsCommandRequest, CommunicationEmailAudit.IGetSentEmailsCommandResult>> = new Subject();\r\n                        \r\n                            public onGetSentEmailAttachmentUrl: Subject<RequestInfo<CommunicationEmailAudit.IGetSentEmailAttachmentUrlRequest, CommunicationEmailAudit.IGetSentEmailAttachmentUrlResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getSentEmailsCommand(request : CommunicationEmailAudit.IGetSentEmailsCommandRequest, overridenToken?: string): Promise<CommunicationEmailAudit.IGetSentEmailsCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<CommunicationEmailAudit.IGetSentEmailsCommandRequest, CommunicationEmailAudit.IGetSentEmailsCommandResult>(request, 'CommunicationEmailAudit', 'GetSentEmailsCommand', overridenToken);\r\n                                        \r\n                                            this.onGetSentEmailsCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getSentEmailAttachmentUrl(request : CommunicationEmailAudit.IGetSentEmailAttachmentUrlRequest, overridenToken?: string): Promise<CommunicationEmailAudit.IGetSentEmailAttachmentUrlResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<CommunicationEmailAudit.IGetSentEmailAttachmentUrlRequest, CommunicationEmailAudit.IGetSentEmailAttachmentUrlResult>(request, 'CommunicationEmailAudit', 'GetSentEmailAttachmentUrl', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetSentEmailAttachmentUrl.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace MessagingUserMessage {\r\n                    \r\n                            export enum GetThreadMessagesForUserCommandSyncResultType {\r\n                                fullRefresh = 'fullRefresh',\r\n                                newMessages = 'newMessages',\r\n                                upToDateAlready = 'upToDateAlready'\r\n                            }\r\n                        \r\n                            export enum GetThreadMessagesForUserCommandSenderType {\r\n                                user = 'user',\r\n                                parent = 'parent'\r\n                            }\r\n                        \r\n                            export enum GetThreadMessagesForUserCommandError {\r\n                                threadNotFound = 'threadNotFound',\r\n                                notParticipant = 'notParticipant'\r\n                            }\r\n                        \r\n                            export enum SendMessageFromUserCommandError {\r\n                                threadNotFound = 'threadNotFound',\r\n                                notParticipant = 'notParticipant',\r\n                                cannotReplyToAnnouncement = 'cannotReplyToAnnouncement',\r\n                                messageBodyEmpty = 'messageBodyEmpty',\r\n                                messageBodyTooLong = 'messageBodyTooLong',\r\n                                threadSubjectRequiredForNewThread = 'threadSubjectRequiredForNewThread',\r\n                                threadSubjectTooLong = 'threadSubjectTooLong',\r\n                                recipientsRequiredForNewThread = 'recipientsRequiredForNewThread',\r\n                                cannotSendToYourself = 'cannotSendToYourself',\r\n                                carerGroupSizeLimitExceeded = 'carerGroupSizeLimitExceeded'\r\n                            }\r\n                        \r\n                            export enum SearchUserMessagesCommandError {\r\n                                emptySearchTerm = 'emptySearchTerm'\r\n                            }\r\n                        \r\n                            export enum UpdateAnnouncementMessageCommandError {\r\n                                threadNotFound = 'threadNotFound',\r\n                                messageNotFound = 'messageNotFound',\r\n                                notParticipant = 'notParticipant',\r\n                                notAnnouncementThread = 'notAnnouncementThread',\r\n                                messageBodyEmpty = 'messageBodyEmpty',\r\n                                messageBodyTooLong = 'messageBodyTooLong',\r\n                                messageNotInThread = 'messageNotInThread',\r\n                                subjectEmpty = 'subjectEmpty',\r\n                                subjectTooLong = 'subjectTooLong'\r\n                            }\r\n                        \r\n                            export enum EditMessageFromUserCommandError {\r\n                                messageNotFound = 'messageNotFound',\r\n                                notMessageSender = 'notMessageSender',\r\n                                messageIsDeleted = 'messageIsDeleted',\r\n                                newBodyEmpty = 'newBodyEmpty',\r\n                                newBodyTooLong = 'newBodyTooLong'\r\n                            }\r\n                        \r\n                            export enum DeleteMessageFromUserCommandError {\r\n                                messageNotFound = 'messageNotFound',\r\n                                notMessageSender = 'notMessageSender',\r\n                                messageAlreadyDeleted = 'messageAlreadyDeleted'\r\n                            }\r\n                        \r\n                                export interface IGetThreadMessagesForUserCommandRequest {\r\n                                    threadId: UUID,\r\n lastKnownHash: string\r\n                                }\r\n                            \r\n                                export interface IGetThreadMessagesForUserCommandResult {\r\n                                    successful: boolean,\r\n errors: GetThreadMessagesForUserCommandError[],\r\n messages: IGetThreadMessagesCommandResultMessage[],\r\n currentHash: string,\r\n resultType: GetThreadMessagesForUserCommandSyncResultType,\r\n totalMessageCount: number\r\n                                }\r\n                            \r\n                                export interface IGetThreadMessagesCommandResultMessage {\r\n                                    messageId: UUID,\r\n threadId: UUID,\r\n senderName: string,\r\n senderType: GetThreadMessagesForUserCommandSenderType,\r\n messageBody: string,\r\n sentDate: string | moment.Moment | Date,\r\n receivedDate: string | moment.Moment | Date | null,\r\n readDate: string | moment.Moment | Date | null,\r\n isSentByMe: boolean,\r\n readByCount: number,\r\n receivedByCount: number,\r\n reactions: IGetThreadMessagesCommandResultReactionSummary[],\r\n attachmentId: UUID | null,\r\n isDeleted: boolean,\r\n editedDate: string | moment.Moment | Date | null\r\n                                }\r\n                           \r\n                                export interface IGetThreadMessagesCommandResultReactionSummary {\r\n                                    emoji: string,\r\n count: number,\r\n participantNames: string[],\r\n hasReactedWithThis: boolean\r\n                                }\r\n                           \r\n                                export interface ISendMessageFromUserCommandRequest {\r\n                                    threadId: UUID | null,\r\n threadSubject: string,\r\n messageBody: string,\r\n recipientUserIds: UUID[],\r\n recipientCarerIds: UUID[],\r\n isAnnouncement: boolean\r\n                                }\r\n                            \r\n                                export interface ISendMessageFromUserCommandResult {\r\n                                    successful: boolean,\r\n errors: SendMessageFromUserCommandError[],\r\n threadId: UUID,\r\n messageId: UUID,\r\n sentDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface ISearchUserMessagesCommandRequest {\r\n                                    searchTerm: string\r\n                                }\r\n                            \r\n                                export interface ISearchUserMessagesCommandResult {\r\n                                    successful: boolean,\r\n errors: SearchUserMessagesCommandError[],\r\n results: ISearchUserMessagesCommandResultMessageResult[]\r\n                                }\r\n                            \r\n                                export interface ISearchUserMessagesCommandResultMessageResult {\r\n                                    messageId: UUID,\r\n threadId: UUID,\r\n threadSubject: string,\r\n threadParticipantNames: string[],\r\n messageBody: string,\r\n sentDate: string | moment.Moment | Date,\r\n senderName: string\r\n                                }\r\n                           \r\n                                export interface IUpdateAnnouncementMessageCommandRequest {\r\n                                    threadId: UUID,\r\n messageId: UUID,\r\n subject: string,\r\n messageBody: string\r\n                                }\r\n                            \r\n                                export interface IUpdateAnnouncementMessageCommandResult {\r\n                                    successful: boolean,\r\n errors: UpdateAnnouncementMessageCommandError[]\r\n                                }\r\n                            \r\n                                export interface IEditMessageFromUserCommandRequest {\r\n                                    messageId: UUID,\r\n newBody: string\r\n                                }\r\n                            \r\n                                export interface IEditMessageFromUserCommandResult {\r\n                                    successful: boolean,\r\n errors: EditMessageFromUserCommandError[],\r\n editedDate: string | moment.Moment | Date | null\r\n                                }\r\n                            \r\n                                export interface IDeleteMessageFromUserCommandRequest {\r\n                                    messageId: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteMessageFromUserCommandResult {\r\n                                    successful: boolean,\r\n errors: DeleteMessageFromUserCommandError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class MessagingUserMessageCommands {\r\n                    \r\n                            public onGetThreadMessagesForUserCommand: Subject<RequestInfo<MessagingUserMessage.IGetThreadMessagesForUserCommandRequest, MessagingUserMessage.IGetThreadMessagesForUserCommandResult>> = new Subject();\r\n                        \r\n                            public onSendMessageFromUserCommand: Subject<RequestInfo<MessagingUserMessage.ISendMessageFromUserCommandRequest, MessagingUserMessage.ISendMessageFromUserCommandResult>> = new Subject();\r\n                        \r\n                            public onSearchUserMessagesCommand: Subject<RequestInfo<MessagingUserMessage.ISearchUserMessagesCommandRequest, MessagingUserMessage.ISearchUserMessagesCommandResult>> = new Subject();\r\n                        \r\n                            public onUpdateAnnouncementMessageCommand: Subject<RequestInfo<MessagingUserMessage.IUpdateAnnouncementMessageCommandRequest, MessagingUserMessage.IUpdateAnnouncementMessageCommandResult>> = new Subject();\r\n                        \r\n                            public onEditMessageFromUserCommand: Subject<RequestInfo<MessagingUserMessage.IEditMessageFromUserCommandRequest, MessagingUserMessage.IEditMessageFromUserCommandResult>> = new Subject();\r\n                        \r\n                            public onDeleteMessageFromUserCommand: Subject<RequestInfo<MessagingUserMessage.IDeleteMessageFromUserCommandRequest, MessagingUserMessage.IDeleteMessageFromUserCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getThreadMessagesForUserCommand(request : MessagingUserMessage.IGetThreadMessagesForUserCommandRequest, overridenToken?: string): Promise<MessagingUserMessage.IGetThreadMessagesForUserCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingUserMessage.IGetThreadMessagesForUserCommandRequest, MessagingUserMessage.IGetThreadMessagesForUserCommandResult>(request, 'MessagingUserMessage', 'GetThreadMessagesForUserCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetThreadMessagesForUserCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendMessageFromUserCommand(request : MessagingUserMessage.ISendMessageFromUserCommandRequest, overridenToken?: string): Promise<MessagingUserMessage.ISendMessageFromUserCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingUserMessage.ISendMessageFromUserCommandRequest, MessagingUserMessage.ISendMessageFromUserCommandResult>(request, 'MessagingUserMessage', 'SendMessageFromUserCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendMessageFromUserCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async searchUserMessagesCommand(request : MessagingUserMessage.ISearchUserMessagesCommandRequest, overridenToken?: string): Promise<MessagingUserMessage.ISearchUserMessagesCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingUserMessage.ISearchUserMessagesCommandRequest, MessagingUserMessage.ISearchUserMessagesCommandResult>(request, 'MessagingUserMessage', 'SearchUserMessagesCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSearchUserMessagesCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateAnnouncementMessageCommand(request : MessagingUserMessage.IUpdateAnnouncementMessageCommandRequest, overridenToken?: string): Promise<MessagingUserMessage.IUpdateAnnouncementMessageCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingUserMessage.IUpdateAnnouncementMessageCommandRequest, MessagingUserMessage.IUpdateAnnouncementMessageCommandResult>(request, 'MessagingUserMessage', 'UpdateAnnouncementMessageCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateAnnouncementMessageCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async editMessageFromUserCommand(request : MessagingUserMessage.IEditMessageFromUserCommandRequest, overridenToken?: string): Promise<MessagingUserMessage.IEditMessageFromUserCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingUserMessage.IEditMessageFromUserCommandRequest, MessagingUserMessage.IEditMessageFromUserCommandResult>(request, 'MessagingUserMessage', 'EditMessageFromUserCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onEditMessageFromUserCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteMessageFromUserCommand(request : MessagingUserMessage.IDeleteMessageFromUserCommandRequest, overridenToken?: string): Promise<MessagingUserMessage.IDeleteMessageFromUserCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingUserMessage.IDeleteMessageFromUserCommandRequest, MessagingUserMessage.IDeleteMessageFromUserCommandResult>(request, 'MessagingUserMessage', 'DeleteMessageFromUserCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteMessageFromUserCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace MessagingCarerMessage {\r\n                    \r\n                            export enum GetThreadMessagesForCarerCommandSyncResultType {\r\n                                fullRefresh = 'fullRefresh',\r\n                                newMessages = 'newMessages',\r\n                                upToDateAlready = 'upToDateAlready'\r\n                            }\r\n                        \r\n                            export enum GetThreadMessagesForCarerCommandSenderType {\r\n                                user = 'user',\r\n                                parent = 'parent'\r\n                            }\r\n                        \r\n                            export enum GetThreadMessagesForCarerCommandError {\r\n                                threadNotFound = 'threadNotFound',\r\n                                notParticipant = 'notParticipant'\r\n                            }\r\n                        \r\n                            export enum SendMessageFromCarerCommandError {\r\n                                threadNotFound = 'threadNotFound',\r\n                                notParticipant = 'notParticipant',\r\n                                cannotReplyToAnnouncement = 'cannotReplyToAnnouncement',\r\n                                messageBodyEmpty = 'messageBodyEmpty',\r\n                                messageBodyTooLong = 'messageBodyTooLong',\r\n                                threadSubjectRequiredForNewThread = 'threadSubjectRequiredForNewThread',\r\n                                threadSubjectTooLong = 'threadSubjectTooLong',\r\n                                recipientsRequiredForNewThread = 'recipientsRequiredForNewThread',\r\n                                cannotSendToYourself = 'cannotSendToYourself',\r\n                                carerGroupSizeLimitExceeded = 'carerGroupSizeLimitExceeded'\r\n                            }\r\n                        \r\n                                export interface IGetThreadMessagesForCarerCommandRequest {\r\n                                    threadId: UUID,\r\n lastKnownHash: string\r\n                                }\r\n                            \r\n                                export interface IGetThreadMessagesForCarerCommandResult {\r\n                                    successful: boolean,\r\n errors: GetThreadMessagesForCarerCommandError[],\r\n messages: IGetThreadMessagesCommandResultMessage[],\r\n currentHash: string,\r\n resultType: GetThreadMessagesForCarerCommandSyncResultType,\r\n totalMessageCount: number\r\n                                }\r\n                            \r\n                                export interface IGetThreadMessagesCommandResultMessage {\r\n                                    messageId: UUID,\r\n threadId: UUID,\r\n senderName: string,\r\n senderType: GetThreadMessagesForCarerCommandSenderType,\r\n messageBody: string,\r\n sentDate: string | moment.Moment | Date,\r\n receivedDate: string | moment.Moment | Date | null,\r\n readDate: string | moment.Moment | Date | null,\r\n isSentByMe: boolean,\r\n readByCount: number,\r\n receivedByCount: number,\r\n reactions: IGetThreadMessagesCommandResultReactionSummary[],\r\n attachmentId: UUID | null,\r\n isDeleted: boolean,\r\n editedDate: string | moment.Moment | Date | null\r\n                                }\r\n                           \r\n                                export interface IGetThreadMessagesCommandResultReactionSummary {\r\n                                    emoji: string,\r\n count: number,\r\n participantNames: string[],\r\n hasReactedWithThis: boolean\r\n                                }\r\n                           \r\n                                export interface ISendMessageFromCarerCommandRequest {\r\n                                    threadId: UUID | null,\r\n threadSubject: string,\r\n messageBody: string,\r\n recipientUserIds: UUID[],\r\n recipientCarerIds: UUID[],\r\n isAnnouncement: boolean\r\n                                }\r\n                            \r\n                                export interface ISendMessageFromCarerCommandResult {\r\n                                    successful: boolean,\r\n errors: SendMessageFromCarerCommandError[],\r\n threadId: UUID,\r\n messageId: UUID,\r\n sentDate: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class MessagingCarerMessageCommands {\r\n                    \r\n                            public onGetThreadMessagesForCarerCommand: Subject<RequestInfo<MessagingCarerMessage.IGetThreadMessagesForCarerCommandRequest, MessagingCarerMessage.IGetThreadMessagesForCarerCommandResult>> = new Subject();\r\n                        \r\n                            public onSendMessageFromCarerCommand: Subject<RequestInfo<MessagingCarerMessage.ISendMessageFromCarerCommandRequest, MessagingCarerMessage.ISendMessageFromCarerCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getThreadMessagesForCarerCommand(request : MessagingCarerMessage.IGetThreadMessagesForCarerCommandRequest, overridenToken?: string): Promise<MessagingCarerMessage.IGetThreadMessagesForCarerCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingCarerMessage.IGetThreadMessagesForCarerCommandRequest, MessagingCarerMessage.IGetThreadMessagesForCarerCommandResult>(request, 'MessagingCarerMessage', 'GetThreadMessagesForCarerCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetThreadMessagesForCarerCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendMessageFromCarerCommand(request : MessagingCarerMessage.ISendMessageFromCarerCommandRequest, overridenToken?: string): Promise<MessagingCarerMessage.ISendMessageFromCarerCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingCarerMessage.ISendMessageFromCarerCommandRequest, MessagingCarerMessage.ISendMessageFromCarerCommandResult>(request, 'MessagingCarerMessage', 'SendMessageFromCarerCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendMessageFromCarerCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace MessagingMessage {\r\n                    \r\n                            export enum MarkMessagesAsReceivedCommandError {\r\n                                messagesNotFound = 'messagesNotFound',\r\n                                notParticipantInThread = 'notParticipantInThread'\r\n                            }\r\n                        \r\n                            export enum MarkMessagesAsReadCommandError {\r\n                                messagesNotFound = 'messagesNotFound',\r\n                                notParticipantInThread = 'notParticipantInThread'\r\n                            }\r\n                        \r\n                                export interface IMarkMessagesAsReceivedCommandRequest {\r\n                                    messageIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IMarkMessagesAsReceivedCommandResult {\r\n                                    successful: boolean,\r\n errors: MarkMessagesAsReceivedCommandError[],\r\n updatedCount: number\r\n                                }\r\n                            \r\n                                export interface IMarkMessagesAsReadCommandRequest {\r\n                                    messageIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IMarkMessagesAsReadCommandResult {\r\n                                    successful: boolean,\r\n errors: MarkMessagesAsReadCommandError[],\r\n updatedCount: number\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class MessagingMessageCommands {\r\n                    \r\n                            public onMarkMessagesAsReceivedCommand: Subject<RequestInfo<MessagingMessage.IMarkMessagesAsReceivedCommandRequest, MessagingMessage.IMarkMessagesAsReceivedCommandResult>> = new Subject();\r\n                        \r\n                            public onMarkMessagesAsReadCommand: Subject<RequestInfo<MessagingMessage.IMarkMessagesAsReadCommandRequest, MessagingMessage.IMarkMessagesAsReadCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async markMessagesAsReceivedCommand(request : MessagingMessage.IMarkMessagesAsReceivedCommandRequest, overridenToken?: string): Promise<MessagingMessage.IMarkMessagesAsReceivedCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingMessage.IMarkMessagesAsReceivedCommandRequest, MessagingMessage.IMarkMessagesAsReceivedCommandResult>(request, 'MessagingMessage', 'MarkMessagesAsReceivedCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onMarkMessagesAsReceivedCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async markMessagesAsReadCommand(request : MessagingMessage.IMarkMessagesAsReadCommandRequest, overridenToken?: string): Promise<MessagingMessage.IMarkMessagesAsReadCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingMessage.IMarkMessagesAsReadCommandRequest, MessagingMessage.IMarkMessagesAsReadCommandResult>(request, 'MessagingMessage', 'MarkMessagesAsReadCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onMarkMessagesAsReadCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace MessagingThread {\r\n                    \r\n                            export enum GetUnreadMessagesError {\r\n                                threadNotFound = 'threadNotFound',\r\n                                notParticipant = 'notParticipant'\r\n                            }\r\n                        \r\n                            export enum ArchiveThreadCommandError {\r\n                                threadNotFound = 'threadNotFound',\r\n                                notParticipant = 'notParticipant'\r\n                            }\r\n                        \r\n                                export interface IGetMyThreadsCommandRequest {\r\n                                    includeArchived: boolean\r\n                                }\r\n                            \r\n                                export interface IGetMyThreadsCommandResult {\r\n                                    successful: boolean,\r\n nurseryName: string,\r\n threads: IGetMyThreadsCommandResultThreadSummary[]\r\n                                }\r\n                            \r\n                                export interface IGetMyThreadsCommandResultThreadSummary {\r\n                                    threadId: UUID,\r\n subject: string,\r\n threadType: CommunicationThreadType,\r\n lastMessagePreview: string,\r\n lastMessageDate: string | moment.Moment | Date,\r\n unreadCount: number,\r\n participantDetails: IGetMyThreadsCommandResultParticipantDetail[],\r\n participantCount: number,\r\n isArchived: boolean\r\n                                }\r\n                           \r\n                                export interface IGetMyThreadsCommandResultParticipantDetail {\r\n                                    userId: UUID | null,\r\n carerId: UUID | null,\r\n participantName: string,\r\n jobTitle: string,\r\n children: IGetMyThreadsCommandResultChildInfo[],\r\n participantType: ParticipantType\r\n                                }\r\n                           \r\n                                export interface IGetMyThreadsCommandResultChildInfo {\r\n                                    childId: number,\r\n firstName: string,\r\n knownName: string,\r\n lastName: string,\r\n relationship: string\r\n                                }\r\n                           \r\n                                export interface IGetUnreadMessagesRequest {\r\n                                    threadId: UUID | null\r\n                                }\r\n                            \r\n                                export interface IGetUnreadMessagesResult {\r\n                                    successful: boolean,\r\n errors: GetUnreadMessagesError[],\r\n unreadCount: number,\r\n totalUnreadCount: number\r\n                                }\r\n                            \r\n                                export interface IArchiveThreadCommandRequest {\r\n                                    threadId: UUID\r\n                                }\r\n                            \r\n                                export interface IArchiveThreadCommandResult {\r\n                                    successful: boolean,\r\n errors: ArchiveThreadCommandError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class MessagingThreadCommands {\r\n                    \r\n                            public onGetMyThreadsCommand: Subject<RequestInfo<MessagingThread.IGetMyThreadsCommandRequest, MessagingThread.IGetMyThreadsCommandResult>> = new Subject();\r\n                        \r\n                            public onGetUnreadMessages: Subject<RequestInfo<MessagingThread.IGetUnreadMessagesRequest, MessagingThread.IGetUnreadMessagesResult>> = new Subject();\r\n                        \r\n                            public onArchiveThreadCommand: Subject<RequestInfo<MessagingThread.IArchiveThreadCommandRequest, MessagingThread.IArchiveThreadCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getMyThreadsCommand(request : MessagingThread.IGetMyThreadsCommandRequest, overridenToken?: string): Promise<MessagingThread.IGetMyThreadsCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingThread.IGetMyThreadsCommandRequest, MessagingThread.IGetMyThreadsCommandResult>(request, 'MessagingThread', 'GetMyThreadsCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetMyThreadsCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getUnreadMessages(request : MessagingThread.IGetUnreadMessagesRequest, overridenToken?: string): Promise<MessagingThread.IGetUnreadMessagesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingThread.IGetUnreadMessagesRequest, MessagingThread.IGetUnreadMessagesResult>(request, 'MessagingThread', 'GetUnreadMessages', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetUnreadMessages.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async archiveThreadCommand(request : MessagingThread.IArchiveThreadCommandRequest, overridenToken?: string): Promise<MessagingThread.IArchiveThreadCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingThread.IArchiveThreadCommandRequest, MessagingThread.IArchiveThreadCommandResult>(request, 'MessagingThread', 'ArchiveThreadCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onArchiveThreadCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace MessagingReaction {\r\n                    \r\n                            export enum SetMessageReactionCommandReactionAction {\r\n                                added = 'added',\r\n                                removed = 'removed'\r\n                            }\r\n                        \r\n                            export enum SetMessageReactionCommandError {\r\n                                messageNotFound = 'messageNotFound',\r\n                                notParticipant = 'notParticipant',\r\n                                invalidEmoji = 'invalidEmoji'\r\n                            }\r\n                        \r\n                                export interface ISetMessageReactionCommandRequest {\r\n                                    messageId: UUID,\r\n emoji: string\r\n                                }\r\n                            \r\n                                export interface ISetMessageReactionCommandResult {\r\n                                    successful: boolean,\r\n errors: SetMessageReactionCommandError[],\r\n reactionId: UUID | null,\r\n action: SetMessageReactionCommandReactionAction\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class MessagingReactionCommands {\r\n                    \r\n                            public onSetMessageReactionCommand: Subject<RequestInfo<MessagingReaction.ISetMessageReactionCommandRequest, MessagingReaction.ISetMessageReactionCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async setMessageReactionCommand(request : MessagingReaction.ISetMessageReactionCommandRequest, overridenToken?: string): Promise<MessagingReaction.ISetMessageReactionCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<MessagingReaction.ISetMessageReactionCommandRequest, MessagingReaction.ISetMessageReactionCommandResult>(request, 'MessagingReaction', 'SetMessageReactionCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSetMessageReactionCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace MessagingRecipient {\r\n                    \r\n                                export interface IGetMessageRecipientsCommandResult {\r\n                                    successful: boolean,\r\n recipients: IGetMessageRecipientsCommandResultRecipientInfo[]\r\n                                }\r\n                            \r\n                                export interface IGetMessageRecipientsCommandResultRecipientInfo {\r\n                                    id: UUID,\r\n firstName: string,\r\n lastName: string,\r\n children: IGetMessageRecipientsCommandResultChildInfo[]\r\n                                }\r\n                           \r\n                                export interface IGetMessageRecipientsCommandResultChildInfo {\r\n                                    childId: number,\r\n firstName: string,\r\n knownName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class MessagingRecipientCommands {\r\n                    \r\n                            public onGetMessageRecipientsCommand: Subject<MessagingRecipient.IGetMessageRecipientsCommandResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getMessageRecipientsCommand(overridenToken?: string): Promise<MessagingRecipient.IGetMessageRecipientsCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},MessagingRecipient.IGetMessageRecipientsCommandResult>({}, 'MessagingRecipient', 'GetMessageRecipientsCommand', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetMessageRecipientsCommand.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusParentaPay {\r\n                    \r\n                            export enum CompleteParentaPayOnboardingError {\r\n                                onboardingNotStarted = 'onboardingNotStarted',\r\n                                onboardingIsNotComplete = 'onboardingIsNotComplete'\r\n                            }\r\n                        \r\n                            export enum BeginParentaPayOnboardingError {\r\n                                alreadyOnboarded = 'alreadyOnboarded'\r\n                            }\r\n                        \r\n                            export enum GetParentaPayDashboardLinkError {\r\n                                onboardingNotStarted = 'onboardingNotStarted'\r\n                            }\r\n                        \r\n                            export enum ChargeCarersError {\r\n                                unableToObtainLock = 'unableToObtainLock',\r\n                                amountTooLow = 'amountTooLow',\r\n                                amountTooHigh = 'amountTooHigh',\r\n                                parentaPayOnboardingIncomplete = 'parentaPayOnboardingIncomplete',\r\n                                collectionAlreadyExistsForCarer = 'collectionAlreadyExistsForCarer',\r\n                                amountExceedsBillPayerChildrenBalances = 'amountExceedsBillPayerChildrenBalances'\r\n                            }\r\n                        \r\n                            export enum GetChildrenAndBillPayersChildIneligibleReason {\r\n                                noOutstandingBalance = 'noOutstandingBalance',\r\n                                noEligibleBillPayers = 'noEligibleBillPayers',\r\n                                balanceBelowMinimumPayment = 'balanceBelowMinimumPayment'\r\n                            }\r\n                        \r\n                            export enum GetChildrenAndBillPayersBillPayerIneligibleReason {\r\n                                parentPortalNotActive = 'parentPortalNotActive',\r\n                                noPaymentMethods = 'noPaymentMethods',\r\n                                paymentInProgress = 'paymentInProgress'\r\n                            }\r\n                        \r\n                            export enum PaymentStatus {\r\n                                succeeded = 'succeeded',\r\n                                pending = 'pending',\r\n                                failed = 'failed'\r\n                            }\r\n                        \r\n                            export enum ImportParentaPayPaymentsToAbacusError {\r\n                                unableToObtainLock = 'unableToObtainLock',\r\n                                noData = 'noData',\r\n                                noAdultId = 'noAdultId',\r\n                                noAdultData = 'noAdultData',\r\n                                noChildId = 'noChildId',\r\n                                noChildData = 'noChildData',\r\n                                noPaymentData = 'noPaymentData',\r\n                                invoiceNotFound = 'invoiceNotFound',\r\n                                invoiceAmountNotEnough = 'invoiceAmountNotEnough',\r\n                                allocationAmountDoesNotMatchPaymentAmount = 'allocationAmountDoesNotMatchPaymentAmount'\r\n                            }\r\n                        \r\n                            export enum CancelQueuedCollectionError {\r\n                                couldNotObtainCriticalLock = 'couldNotObtainCriticalLock',\r\n                                collectionNotFound = 'collectionNotFound'\r\n                            }\r\n                        \r\n                                export interface ICompleteParentaPayOnboardingResult {\r\n                                    successful: boolean,\r\n errors: CompleteParentaPayOnboardingError[]\r\n                                }\r\n                            \r\n                                export interface IBeginParentaPayOnboardingResult {\r\n                                    link: string,\r\n successful: boolean,\r\n errors: BeginParentaPayOnboardingError[]\r\n                                }\r\n                            \r\n                                export interface IGetParentaPayDashboardLinkResult {\r\n                                    successful: boolean,\r\n errors: GetParentaPayDashboardLinkError[],\r\n dashboardUrl: string\r\n                                }\r\n                            \r\n                                export interface IGetParentaPayStatusCommandResult {\r\n                                    isOnboardingComplete: boolean,\r\n isOnboardingStarted: boolean\r\n                                }\r\n                            \r\n                                export interface IChargeCarersRequest {\r\n                                    charges: IChargeCarersCommandCarerCharge[]\r\n                                }\r\n                            \r\n                                export interface IChargeCarersResult {\r\n                                    successful: boolean,\r\n errors: ChargeCarersError[]\r\n                                }\r\n                            \r\n                                export interface IChargeCarersCommandCarerCharge {\r\n                                    adults2Guid: UUID,\r\n amountInPounds: number\r\n                                }\r\n                           \r\n                                export interface IGetChildrenAndBillPayersResult {\r\n                                    stripeAccountVerifiedDate: string | moment.Moment | Date | null,\r\n childrenAndBillPayers: IGetChildrenAndBillPayersCommandResultChildAndBillPayers[]\r\n                                }\r\n                            \r\n                                export interface IGetChildrenAndBillPayersCommandResultChildAndBillPayers {\r\n                                    accountBalance: string,\r\n billPayers: IGetChildrenAndBillPayersCommandResultChildBillPayer[],\r\n childFirstName: string,\r\n childLastName: string,\r\n isEligibleForCharge: boolean,\r\n ineligibleReason: GetChildrenAndBillPayersChildIneligibleReason | null,\r\n childId: UUID,\r\n photoUrl: string\r\n                                }\r\n                           \r\n                                export interface IGetChildrenAndBillPayersCommandResultChildBillPayer {\r\n                                    carerId: UUID,\r\n billPayerFirstName: string,\r\n billPayerLastName: string,\r\n isEligibleForCharge: boolean,\r\n ineligibleReason: GetChildrenAndBillPayersBillPayerIneligibleReason | null,\r\n collectionInProgressAmount: number,\r\n billPayerChildren: IGetChildrenAndBillPayersCommandResultChildBillPayerChild[]\r\n                                }\r\n                           \r\n                                export interface IGetChildrenAndBillPayersCommandResultChildBillPayerChild {\r\n                                    firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                                export interface IGetPaymentsCommandResult {\r\n                                    payments: IGetPaymentsCommandResultPaymentModel[]\r\n                                }\r\n                            \r\n                                export interface IGetPaymentsCommandResultPaymentModel {\r\n                                    amountValue: number,\r\n amountCurrency: string,\r\n transactionReference: string,\r\n adults2Guid: UUID,\r\n dateCreated: string | moment.Moment | Date,\r\n status: PaymentStatus,\r\n adultFirstName: string,\r\n adultLastName: string\r\n                                }\r\n                           \r\n                                export interface IGetPendingCollectionProcessRequestsResult {\r\n                                    successful: boolean,\r\n pendingCollectionProcessRequests: IGetPendingCollectionProcessRequestsCommandResultPendingCollectionProcessRequest[]\r\n                                }\r\n                            \r\n                                export interface IGetPendingCollectionProcessRequestsCommandResultPendingCollectionProcessRequest {\r\n                                    id: UUID,\r\n nurseryId: number,\r\n createdDate: string | moment.Moment | Date,\r\n executionDate: string | moment.Moment | Date\r\n                                }\r\n                           \r\n                                export interface IExecuteQueuedCollectionResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetQueuedCollectionsResult {\r\n                                    queuedCollections: IGetQueuedCollectionsCommandResultPendingCollectionModel[]\r\n                                }\r\n                            \r\n                                export interface IGetQueuedCollectionsCommandResultPendingCollectionModel {\r\n                                    executionDate: string | moment.Moment | Date,\r\n collectionDate: string | moment.Moment | Date,\r\n amount: number,\r\n status: QueuedCollectionStatus,\r\n carerFirstName: string,\r\n carerLastName: string,\r\n collectionChildModels: IGetQueuedCollectionsCommandResultCollectionChildModel[],\r\n id: UUID,\r\n adultId: UUID,\r\n creationDate: string | moment.Moment | Date\r\n                                }\r\n                           \r\n                                export interface IGetQueuedCollectionsCommandResultCollectionChildModel {\r\n                                    childFirstName: string,\r\n childLastName: string\r\n                                }\r\n                           \r\n                                export interface IGetPaymentsAndAllocationsResult {\r\n                                    carers: IGetPaymentsAndAllocationsCommandResultCarerModel[]\r\n                                }\r\n                            \r\n                                export interface IGetPaymentsAndAllocationsCommandResultCarerModel {\r\n                                    totalValue: number,\r\n adults2Guid: UUID,\r\n adultFirstName: string,\r\n adultLastName: string,\r\n payments: IGetPaymentsAndAllocationsCommandResultPaymentModel[],\r\n children: IGetPaymentsAndAllocationsCommandResultPaymentChildModel[],\r\n allocatedAmount: number,\r\n unallocatedAmount: number,\r\n possibleInvoices: IGetPaymentsAndAllocationsCommandResultPossibleInvoiceModel[]\r\n                                }\r\n                           \r\n                                export interface IGetPaymentsAndAllocationsCommandResultPaymentModel {\r\n                                    transactionReference: string,\r\n dateCreated: string | moment.Moment | Date,\r\n amount: number,\r\n allocatedAmount: number,\r\n unallocatedAmount: number,\r\n id: UUID\r\n                                }\r\n                           \r\n                                export interface IGetPaymentsAndAllocationsCommandResultPaymentChildModel {\r\n                                    firstName: string,\r\n lastName: string,\r\n children2Guid: UUID,\r\n photoUrl: any; // System.Uri\r\n                                }\r\n                           \r\n                                export interface IGetPaymentsAndAllocationsCommandResultPossibleInvoiceModel {\r\n                                    invoiceNumber: string,\r\n children2Guid: UUID,\r\n childFirstName: string,\r\n childLastName: string,\r\n invoiceDate: string | moment.Moment | Date,\r\n totalCost: number,\r\n invoiceOutstandingAmount: number,\r\n amountPaid: number,\r\n invoiceId: number,\r\n childPhoto: any; // System.Uri,\r\n isForDifferentAdult: boolean,\r\n carerFirstName: string,\r\n carerLastName: string\r\n                                }\r\n                           \r\n                                export interface IImportParentaPayPaymentsToAbacusRequest {\r\n                                    paymentImports: IImportParentaPayPaymentsToAbacusCommandPaymentImport[]\r\n                                }\r\n                            \r\n                                export interface IImportParentaPayPaymentsToAbacusResult {\r\n                                    success: boolean,\r\n listPaymentData: IImportParentaPayPaymentsToAbacusCommandResultPaymentAdultChildPayment[],\r\n listInvoiceAllocation: IImportParentaPayPaymentsToAbacusCommandResultInvoiceAllocation[],\r\n errors: ImportParentaPayPaymentsToAbacusError[]\r\n                                }\r\n                            \r\n                                export interface IImportParentaPayPaymentsToAbacusCommandResultPaymentAdultChildPayment {\r\n                                    adult2Id: UUID,\r\n childId: UUID,\r\n paymentId: number,\r\n chargedAmount: number,\r\n payRefNo: string\r\n                                }\r\n                           \r\n                                export interface IImportParentaPayPaymentsToAbacusCommandResultInvoiceAllocation {\r\n                                    paymentId: number,\r\n invoiceId: number,\r\n amount: number,\r\n adultId: UUID\r\n                                }\r\n                           \r\n                                export interface IImportParentaPayPaymentsToAbacusCommandPaymentImport {\r\n                                    adultId: UUID,\r\n allocations: IImportParentaPayPaymentsToAbacusCommandAllocationImport[]\r\n                                }\r\n                           \r\n                                export interface IImportParentaPayPaymentsToAbacusCommandAllocationImport {\r\n                                    allocationAmount: number,\r\n childId: UUID,\r\n invoiceId: number | null\r\n                                }\r\n                           \r\n                                export interface ICancelQueuedCollectionRequest {\r\n                                    queuedCollectionId: UUID\r\n                                }\r\n                            \r\n                                export interface ICancelQueuedCollectionResult {\r\n                                    successful: boolean,\r\n errors: CancelQueuedCollectionError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusParentaPayCommands {\r\n                    \r\n                            public onCompleteParentaPayOnboarding: Subject<AbacusParentaPay.ICompleteParentaPayOnboardingResult> = new Subject();\r\n                        \r\n                            public onBeginParentaPayOnboarding: Subject<AbacusParentaPay.IBeginParentaPayOnboardingResult> = new Subject();\r\n                        \r\n                            public onGetParentaPayDashboardLink: Subject<AbacusParentaPay.IGetParentaPayDashboardLinkResult> = new Subject();\r\n                        \r\n                            public onGetParentaPayStatusCommand: Subject<AbacusParentaPay.IGetParentaPayStatusCommandResult> = new Subject();\r\n                        \r\n                            public onChargeCarers: Subject<RequestInfo<AbacusParentaPay.IChargeCarersRequest, AbacusParentaPay.IChargeCarersResult>> = new Subject();\r\n                        \r\n                            public onGetChildrenAndBillPayers: Subject<AbacusParentaPay.IGetChildrenAndBillPayersResult> = new Subject();\r\n                        \r\n                            public onGetPaymentsCommand: Subject<AbacusParentaPay.IGetPaymentsCommandResult> = new Subject();\r\n                        \r\n                            public onGetPendingCollectionProcessRequests: Subject<AbacusParentaPay.IGetPendingCollectionProcessRequestsResult> = new Subject();\r\n                        \r\n                            public onExecuteQueuedCollection: Subject<AbacusParentaPay.IExecuteQueuedCollectionResult> = new Subject();\r\n                        \r\n                            public onGetQueuedCollections: Subject<AbacusParentaPay.IGetQueuedCollectionsResult> = new Subject();\r\n                        \r\n                            public onGetPaymentsAndAllocations: Subject<AbacusParentaPay.IGetPaymentsAndAllocationsResult> = new Subject();\r\n                        \r\n                            public onImportParentaPayPaymentsToAbacus: Subject<RequestInfo<AbacusParentaPay.IImportParentaPayPaymentsToAbacusRequest, AbacusParentaPay.IImportParentaPayPaymentsToAbacusResult>> = new Subject();\r\n                        \r\n                            public onCancelQueuedCollection: Subject<RequestInfo<AbacusParentaPay.ICancelQueuedCollectionRequest, AbacusParentaPay.ICancelQueuedCollectionResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async completeParentaPayOnboarding(overridenToken?: string): Promise<AbacusParentaPay.ICompleteParentaPayOnboardingResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaPay.ICompleteParentaPayOnboardingResult>({}, 'AbacusParentaPay', 'CompleteParentaPayOnboarding', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCompleteParentaPayOnboarding.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async beginParentaPayOnboarding(overridenToken?: string): Promise<AbacusParentaPay.IBeginParentaPayOnboardingResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaPay.IBeginParentaPayOnboardingResult>({}, 'AbacusParentaPay', 'BeginParentaPayOnboarding', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onBeginParentaPayOnboarding.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getParentaPayDashboardLink(overridenToken?: string): Promise<AbacusParentaPay.IGetParentaPayDashboardLinkResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaPay.IGetParentaPayDashboardLinkResult>({}, 'AbacusParentaPay', 'GetParentaPayDashboardLink', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetParentaPayDashboardLink.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getParentaPayStatusCommand(overridenToken?: string): Promise<AbacusParentaPay.IGetParentaPayStatusCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaPay.IGetParentaPayStatusCommandResult>({}, 'AbacusParentaPay', 'GetParentaPayStatusCommand', overridenToken);\r\n                                        \r\n                                            this.onGetParentaPayStatusCommand.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async chargeCarers(request : AbacusParentaPay.IChargeCarersRequest, overridenToken?: string): Promise<AbacusParentaPay.IChargeCarersResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusParentaPay.IChargeCarersRequest, AbacusParentaPay.IChargeCarersResult>(request, 'AbacusParentaPay', 'ChargeCarers', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onChargeCarers.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getChildrenAndBillPayers(overridenToken?: string): Promise<AbacusParentaPay.IGetChildrenAndBillPayersResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaPay.IGetChildrenAndBillPayersResult>({}, 'AbacusParentaPay', 'GetChildrenAndBillPayers', overridenToken);\r\n                                        \r\n                                            this.onGetChildrenAndBillPayers.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getPaymentsCommand(overridenToken?: string): Promise<AbacusParentaPay.IGetPaymentsCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaPay.IGetPaymentsCommandResult>({}, 'AbacusParentaPay', 'GetPaymentsCommand', overridenToken);\r\n                                        \r\n                                            this.onGetPaymentsCommand.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getPendingCollectionProcessRequests(overridenToken?: string): Promise<AbacusParentaPay.IGetPendingCollectionProcessRequestsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaPay.IGetPendingCollectionProcessRequestsResult>({}, 'AbacusParentaPay', 'GetPendingCollectionProcessRequests', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetPendingCollectionProcessRequests.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async executeQueuedCollection(overridenToken?: string): Promise<AbacusParentaPay.IExecuteQueuedCollectionResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaPay.IExecuteQueuedCollectionResult>({}, 'AbacusParentaPay', 'ExecuteQueuedCollection', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onExecuteQueuedCollection.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getQueuedCollections(overridenToken?: string): Promise<AbacusParentaPay.IGetQueuedCollectionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaPay.IGetQueuedCollectionsResult>({}, 'AbacusParentaPay', 'GetQueuedCollections', overridenToken);\r\n                                        \r\n                                            this.onGetQueuedCollections.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getPaymentsAndAllocations(overridenToken?: string): Promise<AbacusParentaPay.IGetPaymentsAndAllocationsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaPay.IGetPaymentsAndAllocationsResult>({}, 'AbacusParentaPay', 'GetPaymentsAndAllocations', overridenToken);\r\n                                        \r\n                                            this.onGetPaymentsAndAllocations.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async importParentaPayPaymentsToAbacus(request : AbacusParentaPay.IImportParentaPayPaymentsToAbacusRequest, overridenToken?: string): Promise<AbacusParentaPay.IImportParentaPayPaymentsToAbacusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusParentaPay.IImportParentaPayPaymentsToAbacusRequest, AbacusParentaPay.IImportParentaPayPaymentsToAbacusResult>(request, 'AbacusParentaPay', 'ImportParentaPayPaymentsToAbacus', overridenToken);\r\n                                        \r\n                                            this.onImportParentaPayPaymentsToAbacus.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async cancelQueuedCollection(request : AbacusParentaPay.ICancelQueuedCollectionRequest, overridenToken?: string): Promise<AbacusParentaPay.ICancelQueuedCollectionResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusParentaPay.ICancelQueuedCollectionRequest, AbacusParentaPay.ICancelQueuedCollectionResult>(request, 'AbacusParentaPay', 'CancelQueuedCollection', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCancelQueuedCollection.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusPermissions {\r\n                    \r\n                            export enum CreatePermissionsError {\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                permissionsItemNameAlreadyExists = 'permissionsItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                            export enum DeletePermissionsError {\r\n                                permissionsNotFound = 'permissionsNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdatePermissionsError {\r\n                                permissionsNotFound = 'permissionsNotFound',\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                permissionsItemNameAlreadyExists = 'permissionsItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface IGetCurrentUserPermissionsResult {\r\n                                    permissions: UserPermission[]\r\n                                }\r\n                            \r\n                                export interface ICreatePermissionsRequest {\r\n                                    itemName: string\r\n                                }\r\n                            \r\n                                export interface ICreatePermissionsResult {\r\n                                    successful: boolean,\r\n pId: number,\r\n errors: CreatePermissionsError[]\r\n                                }\r\n                            \r\n                                export interface IDeletePermissionsRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IDeletePermissionsResult {\r\n                                    successful: boolean,\r\n errors: DeletePermissionsError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllPermissionsResult {\r\n                                    permissions: IGetAllPermissionsCommandResultPermissionsModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllPermissionsCommandResultPermissionsModel {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                           \r\n                                export interface IUpdatePermissionsRequest {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                            \r\n                                export interface IUpdatePermissionsResult {\r\n                                    successful: boolean,\r\n errors: UpdatePermissionsError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusPermissionsCommands {\r\n                    \r\n                            public onGetCurrentUserPermissions: Subject<AbacusPermissions.IGetCurrentUserPermissionsResult> = new Subject();\r\n                        \r\n                            public onCreatePermissions: Subject<RequestInfo<AbacusPermissions.ICreatePermissionsRequest, AbacusPermissions.ICreatePermissionsResult>> = new Subject();\r\n                        \r\n                            public onDeletePermissions: Subject<RequestInfo<AbacusPermissions.IDeletePermissionsRequest, AbacusPermissions.IDeletePermissionsResult>> = new Subject();\r\n                        \r\n                            public onGetAllPermissions: Subject<AbacusPermissions.IGetAllPermissionsResult> = new Subject();\r\n                        \r\n                            public onUpdatePermissions: Subject<RequestInfo<AbacusPermissions.IUpdatePermissionsRequest, AbacusPermissions.IUpdatePermissionsResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getCurrentUserPermissions(overridenToken?: string): Promise<AbacusPermissions.IGetCurrentUserPermissionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusPermissions.IGetCurrentUserPermissionsResult>({}, 'AbacusPermissions', 'GetCurrentUserPermissions', overridenToken);\r\n                                        \r\n                                            this.onGetCurrentUserPermissions.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createPermissions(request : AbacusPermissions.ICreatePermissionsRequest, overridenToken?: string): Promise<AbacusPermissions.ICreatePermissionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusPermissions.ICreatePermissionsRequest, AbacusPermissions.ICreatePermissionsResult>(request, 'AbacusPermissions', 'CreatePermissions', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreatePermissions.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deletePermissions(request : AbacusPermissions.IDeletePermissionsRequest, overridenToken?: string): Promise<AbacusPermissions.IDeletePermissionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusPermissions.IDeletePermissionsRequest, AbacusPermissions.IDeletePermissionsResult>(request, 'AbacusPermissions', 'DeletePermissions', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeletePermissions.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllPermissions(overridenToken?: string): Promise<AbacusPermissions.IGetAllPermissionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusPermissions.IGetAllPermissionsResult>({}, 'AbacusPermissions', 'GetAllPermissions', overridenToken);\r\n                                        \r\n                                            this.onGetAllPermissions.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updatePermissions(request : AbacusPermissions.IUpdatePermissionsRequest, overridenToken?: string): Promise<AbacusPermissions.IUpdatePermissionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusPermissions.IUpdatePermissionsRequest, AbacusPermissions.IUpdatePermissionsResult>(request, 'AbacusPermissions', 'UpdatePermissions', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdatePermissions.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusFeeplanner {\r\n                    \r\n                                export interface IGetAllFeePlannerNurseryDetailsResult {\r\n                                    feePlannerNurseryDetails: IGetAllFeePlannerNurseryDetailsCommandResultFeePlannerNurseryDetailsModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllFeePlannerNurseryDetailsCommandResultFeePlannerNurseryDetailsModel {\r\n                                    id: UUID,\r\n bacsReference: string,\r\n accountSortCode: string,\r\n accountName: string,\r\n accountNumber: string,\r\n email: string,\r\n title: string,\r\n forename: string,\r\n surname: string,\r\n addressLine1: string,\r\n addressLine2: string,\r\n addressLine3: string,\r\n city: string,\r\n county: string,\r\n postCode: string,\r\n country: string,\r\n phoneNumber: string,\r\n alternateKey: string,\r\n status: number\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusFeeplannerCommands {\r\n                    \r\n                            public onGetAllFeePlannerNurseryDetails: Subject<AbacusFeeplanner.IGetAllFeePlannerNurseryDetailsResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getAllFeePlannerNurseryDetails(overridenToken?: string): Promise<AbacusFeeplanner.IGetAllFeePlannerNurseryDetailsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusFeeplanner.IGetAllFeePlannerNurseryDetailsResult>({}, 'AbacusFeeplanner', 'GetAllFeePlannerNurseryDetails', overridenToken);\r\n                                        \r\n                                            this.onGetAllFeePlannerNurseryDetails.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusFamily {\r\n                    \r\n                            export enum CreateFamilyError {\r\n                                errorCreatingAdult = 'errorCreatingAdult',\r\n                                errorCreatingChild = 'errorCreatingChild',\r\n                                noChildRequestReceived = 'noChildRequestReceived',\r\n                                noAdultRequestReceived = 'noAdultRequestReceived',\r\n                                linkAndCreateAdultRequestsHaveBeenPassed = 'linkAndCreateAdultRequestsHaveBeenPassed'\r\n                            }\r\n                        \r\n                            export enum CreateChildrenError {\r\n                                firstNameIsEmpty = 'firstNameIsEmpty',\r\n                                lastNameIsEmpty = 'lastNameIsEmpty',\r\n                                knownNameIsEmpty = 'knownNameIsEmpty',\r\n                                adultDoesNotExist = 'adultDoesNotExist',\r\n                                mustBeSend = 'mustBeSend',\r\n                                startDateMustBeAfterDateOfBirth = 'startDateMustBeAfterDateOfBirth',\r\n                                leaveDateMustBeAfterStartDate = 'leaveDateMustBeAfterStartDate',\r\n                                leaveDateMustBeAfterDateOfBirth = 'leaveDateMustBeAfterDateOfBirth'\r\n                            }\r\n                        \r\n                            export enum CreateAdults2Error {\r\n                                titleIsEmpty = 'titleIsEmpty',\r\n                                lastNameIsEmpty = 'lastNameIsEmpty',\r\n                                firstNameIsEmpty = 'firstNameIsEmpty'\r\n                            }\r\n                        \r\n                                export interface ICreateFamilyRequest {\r\n                                    adult: ICreateFamilyCommandCreateFamilyAdult,\r\n child: ICreateFamilyCommandCreateFamilyChild,\r\n linkAdult: ICreateFamilyCommandCreateLinkAdult\r\n                                }\r\n                            \r\n                                export interface ICreateFamilyResult {\r\n                                    successful: boolean,\r\n errors: CreateFamilyError[],\r\n childErrors: CreateChildrenError[],\r\n adultErrors: CreateAdults2Error[]\r\n                                }\r\n                            \r\n                                export interface ICreateFamilyCommandCreateLinkAdult {\r\n                                    parentId: number,\r\n parent1Relationship: string\r\n                                }\r\n                           \r\n                                export interface ICreateFamilyCommandCreateFamilyChild {\r\n                                    firstName: string,\r\n middleName: string,\r\n lastName: string,\r\n knownName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n parent1Id: number,\r\n keyWorkerId: number | null,\r\n isMale: boolean,\r\n roomId: number | null,\r\n startDate: string | moment.Moment | Date,\r\n estimatedLeaveDate: string | moment.Moment | Date,\r\n photo: string,\r\n status: NewChildren2StatusKey,\r\n cohorts: CreateChildren2CohortsEnum[]\r\n                                }\r\n                           \r\n                                export interface ICreateFamilyCommandCreateFamilyAdult {\r\n                                    title: string,\r\n firstName: string,\r\n lastName: string,\r\n company: string,\r\n workTel: string,\r\n mobileTel: string,\r\n homeTel: string,\r\n email: string,\r\n addr1: string,\r\n addr2: string,\r\n addr3: string,\r\n town: string,\r\n photo: string,\r\n county: string,\r\n postcode: string,\r\n houseNumber: string,\r\n parent1Relationship: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusFamilyCommands {\r\n                    \r\n                            public onCreateFamily: Subject<RequestInfo<AbacusFamily.ICreateFamilyRequest, AbacusFamily.ICreateFamilyResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createFamily(request : AbacusFamily.ICreateFamilyRequest, overridenToken?: string): Promise<AbacusFamily.ICreateFamilyResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusFamily.ICreateFamilyRequest, AbacusFamily.ICreateFamilyResult>(request, 'AbacusFamily', 'CreateFamily', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateFamily.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusEcho {\r\n                    \r\n                                export interface IAbacusEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface IAbacusEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusEchoCommands {\r\n                    \r\n                            public onAbacusEcho: Subject<RequestInfo<AbacusEcho.IAbacusEchoRequest, AbacusEcho.IAbacusEchoResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async abacusEcho(request : AbacusEcho.IAbacusEchoRequest, overridenToken?: string): Promise<AbacusEcho.IAbacusEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusEcho.IAbacusEchoRequest, AbacusEcho.IAbacusEchoResult>(request, 'AbacusEcho', 'AbacusEcho', overridenToken);\r\n                                        \r\n                                            this.onAbacusEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusGroupReporting {\r\n                    \r\n                            export enum GroupReportingRemoteLoginError {\r\n                                userNotFound = 'userNotFound',\r\n                                nurseryNotPartOfChain = 'nurseryNotPartOfChain',\r\n                                nurseryNotFound = 'nurseryNotFound'\r\n                            }\r\n                        \r\n                                export interface IGroupReportingRemoteLoginRequest {\r\n                                    groupReportingUserPId: number,\r\n targetNurseryId: number\r\n                                }\r\n                            \r\n                                export interface IGroupReportingRemoteLoginResult {\r\n                                    errors: GroupReportingRemoteLoginError[],\r\n successful: boolean,\r\n token: UUID\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusGroupReportingCommands {\r\n                    \r\n                            public onGroupReportingRemoteLogin: Subject<RequestInfo<AbacusGroupReporting.IGroupReportingRemoteLoginRequest, AbacusGroupReporting.IGroupReportingRemoteLoginResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async groupReportingRemoteLogin(request : AbacusGroupReporting.IGroupReportingRemoteLoginRequest, overridenToken?: string): Promise<AbacusGroupReporting.IGroupReportingRemoteLoginResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusGroupReporting.IGroupReportingRemoteLoginRequest, AbacusGroupReporting.IGroupReportingRemoteLoginResult>(request, 'AbacusGroupReporting', 'GroupReportingRemoteLogin', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGroupReportingRemoteLogin.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusRooms {\r\n                    \r\n                            export enum CreateRoomsError {\r\n                                roomNameIsEmpty = 'roomNameIsEmpty',\r\n                                roomsRoomNameAlreadyExists = 'roomsRoomNameAlreadyExists',\r\n                                maxAgeIsLowerThanMinAge = 'maxAgeIsLowerThanMinAge'\r\n                            }\r\n                        \r\n                            export enum DeleteRoomsError {\r\n                                roomsNotFound = 'roomsNotFound',\r\n                                childrenAreStillUsingRoom = 'childrenAreStillUsingRoom'\r\n                            }\r\n                        \r\n                            export enum UpdateRoomsError {\r\n                                roomsNotFound = 'roomsNotFound',\r\n                                roomNameIsEmpty = 'roomNameIsEmpty',\r\n                                roomsRoomNameAlreadyExists = 'roomsRoomNameAlreadyExists',\r\n                                maxAgeIsLowerThanMinAge = 'maxAgeIsLowerThanMinAge'\r\n                            }\r\n                        \r\n                                export interface IGetAllRoomsResult {\r\n                                    rooms: IGetAllRoomsCommandResultRoomsModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllRoomsCommandResultRoomsModel {\r\n                                    pId: number,\r\n roomId: number,\r\n roomName: string,\r\n lowerAge: number,\r\n upperAge: number,\r\n capacity: number,\r\n nonOccupancy: boolean,\r\n roomsGuid: UUID | null\r\n                                }\r\n                           \r\n                                export interface ICreateRoomsRequest {\r\n                                    roomName: string,\r\n lowerAge: number,\r\n upperAge: number,\r\n capacity: number,\r\n nonOccupancy: boolean\r\n                                }\r\n                            \r\n                                export interface ICreateRoomsResult {\r\n                                    successful: boolean,\r\n pId: number,\r\n errors: CreateRoomsError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteRoomsRequest {\r\n                                    pId: number,\r\n roomId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteRoomsResult {\r\n                                    successful: boolean,\r\n errors: DeleteRoomsError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateRoomsRequest {\r\n                                    pId: number,\r\n roomName: string,\r\n lowerAge: number,\r\n upperAge: number,\r\n capacity: number,\r\n nonOccupancy: boolean\r\n                                }\r\n                            \r\n                                export interface IUpdateRoomsResult {\r\n                                    successful: boolean,\r\n errors: UpdateRoomsError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusRoomsCommands {\r\n                    \r\n                            public onGetAllRooms: Subject<AbacusRooms.IGetAllRoomsResult> = new Subject();\r\n                        \r\n                            public onCreateRooms: Subject<RequestInfo<AbacusRooms.ICreateRoomsRequest, AbacusRooms.ICreateRoomsResult>> = new Subject();\r\n                        \r\n                            public onDeleteRooms: Subject<RequestInfo<AbacusRooms.IDeleteRoomsRequest, AbacusRooms.IDeleteRoomsResult>> = new Subject();\r\n                        \r\n                            public onUpdateRooms: Subject<RequestInfo<AbacusRooms.IUpdateRoomsRequest, AbacusRooms.IUpdateRoomsResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getAllRooms(overridenToken?: string): Promise<AbacusRooms.IGetAllRoomsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusRooms.IGetAllRoomsResult>({}, 'AbacusRooms', 'GetAllRooms', overridenToken);\r\n                                        \r\n                                            this.onGetAllRooms.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createRooms(request : AbacusRooms.ICreateRoomsRequest, overridenToken?: string): Promise<AbacusRooms.ICreateRoomsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusRooms.ICreateRoomsRequest, AbacusRooms.ICreateRoomsResult>(request, 'AbacusRooms', 'CreateRooms', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateRooms.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteRooms(request : AbacusRooms.IDeleteRoomsRequest, overridenToken?: string): Promise<AbacusRooms.IDeleteRoomsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusRooms.IDeleteRoomsRequest, AbacusRooms.IDeleteRoomsResult>(request, 'AbacusRooms', 'DeleteRooms', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteRooms.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateRooms(request : AbacusRooms.IUpdateRoomsRequest, overridenToken?: string): Promise<AbacusRooms.IUpdateRoomsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusRooms.IUpdateRoomsRequest, AbacusRooms.IUpdateRoomsResult>(request, 'AbacusRooms', 'UpdateRooms', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateRooms.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusEnquirySource {\r\n                    \r\n                                export interface IGetAllEnquirySourcesResult {\r\n                                    enquirySources: IGetAllEnquirySourcesCommandResultEnquirySourceModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllEnquirySourcesCommandResultEnquirySourceModel {\r\n                                    pId: number,\r\n itemID: number,\r\n itemName: string,\r\n nurseryID: number,\r\n isArchived: boolean\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusEnquirySourceCommands {\r\n                    \r\n                            public onGetAllEnquirySources: Subject<AbacusEnquirySource.IGetAllEnquirySourcesResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getAllEnquirySources(overridenToken?: string): Promise<AbacusEnquirySource.IGetAllEnquirySourcesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusEnquirySource.IGetAllEnquirySourcesResult>({}, 'AbacusEnquirySource', 'GetAllEnquirySources', overridenToken);\r\n                                        \r\n                                            this.onGetAllEnquirySources.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusAllergies {\r\n                    \r\n                            export enum CreateAllergyError {\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                allergyItemNameAlreadyExists = 'allergyItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                            export enum DeleteAllergyError {\r\n                                allergyNotFound = 'allergyNotFound',\r\n                                allergyInUse = 'allergyInUse'\r\n                            }\r\n                        \r\n                            export enum UpdateAllergyError {\r\n                                allergyNotFound = 'allergyNotFound',\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                allergyItemNameAlreadyExists = 'allergyItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface ICreateAllergyRequest {\r\n                                    itemName: string\r\n                                }\r\n                            \r\n                                export interface ICreateAllergyResult {\r\n                                    successful: boolean,\r\n errors: CreateAllergyError[],\r\n pId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteAllergyRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteAllergyResult {\r\n                                    successful: boolean,\r\n errors: DeleteAllergyError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllAllergiesResult {\r\n                                    allergies: IGetAllAllergiesCommandResultAllergyModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllAllergiesCommandResultAllergyModel {\r\n                                    pId: number,\r\n itemId: number,\r\n nurseryId: number,\r\n allergiesGuid: UUID,\r\n itemName: string,\r\n isArchived: boolean\r\n                                }\r\n                           \r\n                                export interface IUpdateAllergyRequest {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                            \r\n                                export interface IUpdateAllergyResult {\r\n                                    successful: boolean,\r\n errors: UpdateAllergyError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusAllergiesCommands {\r\n                    \r\n                            public onCreateAllergy: Subject<RequestInfo<AbacusAllergies.ICreateAllergyRequest, AbacusAllergies.ICreateAllergyResult>> = new Subject();\r\n                        \r\n                            public onDeleteAllergy: Subject<RequestInfo<AbacusAllergies.IDeleteAllergyRequest, AbacusAllergies.IDeleteAllergyResult>> = new Subject();\r\n                        \r\n                            public onGetAllAllergies: Subject<AbacusAllergies.IGetAllAllergiesResult> = new Subject();\r\n                        \r\n                            public onUpdateAllergy: Subject<RequestInfo<AbacusAllergies.IUpdateAllergyRequest, AbacusAllergies.IUpdateAllergyResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createAllergy(request : AbacusAllergies.ICreateAllergyRequest, overridenToken?: string): Promise<AbacusAllergies.ICreateAllergyResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusAllergies.ICreateAllergyRequest, AbacusAllergies.ICreateAllergyResult>(request, 'AbacusAllergies', 'CreateAllergy', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateAllergy.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteAllergy(request : AbacusAllergies.IDeleteAllergyRequest, overridenToken?: string): Promise<AbacusAllergies.IDeleteAllergyResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusAllergies.IDeleteAllergyRequest, AbacusAllergies.IDeleteAllergyResult>(request, 'AbacusAllergies', 'DeleteAllergy', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteAllergy.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllAllergies(overridenToken?: string): Promise<AbacusAllergies.IGetAllAllergiesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusAllergies.IGetAllAllergiesResult>({}, 'AbacusAllergies', 'GetAllAllergies', overridenToken);\r\n                                        \r\n                                            this.onGetAllAllergies.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateAllergy(request : AbacusAllergies.IUpdateAllergyRequest, overridenToken?: string): Promise<AbacusAllergies.IUpdateAllergyResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusAllergies.IUpdateAllergyRequest, AbacusAllergies.IUpdateAllergyResult>(request, 'AbacusAllergies', 'UpdateAllergy', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateAllergy.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusDietaries {\r\n                    \r\n                            export enum CreateDietaryError {\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                dietaryItemNameAlreadyExists = 'dietaryItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                            export enum DeleteDietaryError {\r\n                                dietaryNotFound = 'dietaryNotFound'\r\n                            }\r\n                        \r\n                            export enum GetDietaryByPIdError {\r\n                                dietaryNotFound = 'dietaryNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateDietaryError {\r\n                                dietaryNotFound = 'dietaryNotFound',\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                dietaryItemNameAlreadyExists = 'dietaryItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface ICreateDietaryRequest {\r\n                                    itemName: string\r\n                                }\r\n                            \r\n                                export interface ICreateDietaryResult {\r\n                                    successful: boolean,\r\n pId: number,\r\n errors: CreateDietaryError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteDietaryRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteDietaryResult {\r\n                                    successful: boolean,\r\n errors: DeleteDietaryError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllDietariesResult {\r\n                                    dietaries: IGetAllDietariesCommandResultDietaryModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllDietariesCommandResultDietaryModel {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                           \r\n                                export interface IGetDietaryByPIdRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IGetDietaryByPIdResult {\r\n                                    dietary: IGetDietaryByPIdCommandResultDietaryModel,\r\n successful: boolean,\r\n errors: GetDietaryByPIdError[]\r\n                                }\r\n                            \r\n                                export interface IGetDietaryByPIdCommandResultDietaryModel {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                           \r\n                                export interface IUpdateDietaryRequest {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                            \r\n                                export interface IUpdateDietaryResult {\r\n                                    successful: boolean,\r\n errors: UpdateDietaryError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusDietariesCommands {\r\n                    \r\n                            public onCreateDietary: Subject<RequestInfo<AbacusDietaries.ICreateDietaryRequest, AbacusDietaries.ICreateDietaryResult>> = new Subject();\r\n                        \r\n                            public onDeleteDietary: Subject<RequestInfo<AbacusDietaries.IDeleteDietaryRequest, AbacusDietaries.IDeleteDietaryResult>> = new Subject();\r\n                        \r\n                            public onGetAllDietaries: Subject<AbacusDietaries.IGetAllDietariesResult> = new Subject();\r\n                        \r\n                            public onGetDietaryByPId: Subject<RequestInfo<AbacusDietaries.IGetDietaryByPIdRequest, AbacusDietaries.IGetDietaryByPIdResult>> = new Subject();\r\n                        \r\n                            public onUpdateDietary: Subject<RequestInfo<AbacusDietaries.IUpdateDietaryRequest, AbacusDietaries.IUpdateDietaryResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createDietary(request : AbacusDietaries.ICreateDietaryRequest, overridenToken?: string): Promise<AbacusDietaries.ICreateDietaryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusDietaries.ICreateDietaryRequest, AbacusDietaries.ICreateDietaryResult>(request, 'AbacusDietaries', 'CreateDietary', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateDietary.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteDietary(request : AbacusDietaries.IDeleteDietaryRequest, overridenToken?: string): Promise<AbacusDietaries.IDeleteDietaryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusDietaries.IDeleteDietaryRequest, AbacusDietaries.IDeleteDietaryResult>(request, 'AbacusDietaries', 'DeleteDietary', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteDietary.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllDietaries(overridenToken?: string): Promise<AbacusDietaries.IGetAllDietariesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusDietaries.IGetAllDietariesResult>({}, 'AbacusDietaries', 'GetAllDietaries', overridenToken);\r\n                                        \r\n                                            this.onGetAllDietaries.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getDietaryByPId(request : AbacusDietaries.IGetDietaryByPIdRequest, overridenToken?: string): Promise<AbacusDietaries.IGetDietaryByPIdResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusDietaries.IGetDietaryByPIdRequest, AbacusDietaries.IGetDietaryByPIdResult>(request, 'AbacusDietaries', 'GetDietaryByPId', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetDietaryByPId.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateDietary(request : AbacusDietaries.IUpdateDietaryRequest, overridenToken?: string): Promise<AbacusDietaries.IUpdateDietaryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusDietaries.IUpdateDietaryRequest, AbacusDietaries.IUpdateDietaryResult>(request, 'AbacusDietaries', 'UpdateDietary', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateDietary.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusEthnicities {\r\n                    \r\n                            export enum CreateEthnicityError {\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                ethnicityItemNameAlreadyExists = 'ethnicityItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                            export enum DeleteEthnicityError {\r\n                                ethnicityNotFound = 'ethnicityNotFound'\r\n                            }\r\n                        \r\n                            export enum GetEthnicityByPIdError {\r\n                                ethnicityNotFound = 'ethnicityNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateEthnicityError {\r\n                                ethnicityNotFound = 'ethnicityNotFound',\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                ethnicityItemNameAlreadyExists = 'ethnicityItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface ICreateEthnicityRequest {\r\n                                    itemName: string\r\n                                }\r\n                            \r\n                                export interface ICreateEthnicityResult {\r\n                                    successful: boolean,\r\n pId: number,\r\n errors: CreateEthnicityError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteEthnicityRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteEthnicityResult {\r\n                                    successful: boolean,\r\n errors: DeleteEthnicityError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllEthnicitiesResult {\r\n                                    ethnicities: IGetAllEthnicitiesCommandResultEthnicityModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllEthnicitiesCommandResultEthnicityModel {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                           \r\n                                export interface IGetEthnicityByPIdRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IGetEthnicityByPIdResult {\r\n                                    ethnicity: IGetEthnicityByPIdCommandResultEthnicityModel,\r\n successful: boolean,\r\n errors: GetEthnicityByPIdError[]\r\n                                }\r\n                            \r\n                                export interface IGetEthnicityByPIdCommandResultEthnicityModel {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                           \r\n                                export interface IUpdateEthnicityRequest {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                            \r\n                                export interface IUpdateEthnicityResult {\r\n                                    successful: boolean,\r\n errors: UpdateEthnicityError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusEthnicitiesCommands {\r\n                    \r\n                            public onCreateEthnicity: Subject<RequestInfo<AbacusEthnicities.ICreateEthnicityRequest, AbacusEthnicities.ICreateEthnicityResult>> = new Subject();\r\n                        \r\n                            public onDeleteEthnicity: Subject<RequestInfo<AbacusEthnicities.IDeleteEthnicityRequest, AbacusEthnicities.IDeleteEthnicityResult>> = new Subject();\r\n                        \r\n                            public onGetAllEthnicities: Subject<AbacusEthnicities.IGetAllEthnicitiesResult> = new Subject();\r\n                        \r\n                            public onGetEthnicityByPId: Subject<RequestInfo<AbacusEthnicities.IGetEthnicityByPIdRequest, AbacusEthnicities.IGetEthnicityByPIdResult>> = new Subject();\r\n                        \r\n                            public onUpdateEthnicity: Subject<RequestInfo<AbacusEthnicities.IUpdateEthnicityRequest, AbacusEthnicities.IUpdateEthnicityResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createEthnicity(request : AbacusEthnicities.ICreateEthnicityRequest, overridenToken?: string): Promise<AbacusEthnicities.ICreateEthnicityResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusEthnicities.ICreateEthnicityRequest, AbacusEthnicities.ICreateEthnicityResult>(request, 'AbacusEthnicities', 'CreateEthnicity', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateEthnicity.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteEthnicity(request : AbacusEthnicities.IDeleteEthnicityRequest, overridenToken?: string): Promise<AbacusEthnicities.IDeleteEthnicityResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusEthnicities.IDeleteEthnicityRequest, AbacusEthnicities.IDeleteEthnicityResult>(request, 'AbacusEthnicities', 'DeleteEthnicity', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteEthnicity.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllEthnicities(overridenToken?: string): Promise<AbacusEthnicities.IGetAllEthnicitiesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusEthnicities.IGetAllEthnicitiesResult>({}, 'AbacusEthnicities', 'GetAllEthnicities', overridenToken);\r\n                                        \r\n                                            this.onGetAllEthnicities.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getEthnicityByPId(request : AbacusEthnicities.IGetEthnicityByPIdRequest, overridenToken?: string): Promise<AbacusEthnicities.IGetEthnicityByPIdResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusEthnicities.IGetEthnicityByPIdRequest, AbacusEthnicities.IGetEthnicityByPIdResult>(request, 'AbacusEthnicities', 'GetEthnicityByPId', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetEthnicityByPId.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateEthnicity(request : AbacusEthnicities.IUpdateEthnicityRequest, overridenToken?: string): Promise<AbacusEthnicities.IUpdateEthnicityResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusEthnicities.IUpdateEthnicityRequest, AbacusEthnicities.IUpdateEthnicityResult>(request, 'AbacusEthnicities', 'UpdateEthnicity', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateEthnicity.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusIllnesses {\r\n                    \r\n                            export enum CreateIllnessError {\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                illnessItemNameAlreadyExists = 'illnessItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                            export enum DeleteIllnessError {\r\n                                illnessNotFound = 'illnessNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateIllnessError {\r\n                                illnessNotFound = 'illnessNotFound',\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                illnessItemNameAlreadyExists = 'illnessItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface ICreateIllnessRequest {\r\n                                    itemName: string\r\n                                }\r\n                            \r\n                                export interface ICreateIllnessResult {\r\n                                    successful: boolean,\r\n pId: number,\r\n errors: CreateIllnessError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteIllnessRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteIllnessResult {\r\n                                    successful: boolean,\r\n errors: DeleteIllnessError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllIllnessesResult {\r\n                                    illnesses: IGetAllIllnessesCommandResultIllnessModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllIllnessesCommandResultIllnessModel {\r\n                                    pId: number,\r\n itemName: string,\r\n isArchived: boolean\r\n                                }\r\n                           \r\n                                export interface IUpdateIllnessRequest {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                            \r\n                                export interface IUpdateIllnessResult {\r\n                                    successful: boolean,\r\n errors: UpdateIllnessError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusIllnessesCommands {\r\n                    \r\n                            public onCreateIllness: Subject<RequestInfo<AbacusIllnesses.ICreateIllnessRequest, AbacusIllnesses.ICreateIllnessResult>> = new Subject();\r\n                        \r\n                            public onDeleteIllness: Subject<RequestInfo<AbacusIllnesses.IDeleteIllnessRequest, AbacusIllnesses.IDeleteIllnessResult>> = new Subject();\r\n                        \r\n                            public onGetAllIllnesses: Subject<AbacusIllnesses.IGetAllIllnessesResult> = new Subject();\r\n                        \r\n                            public onUpdateIllness: Subject<RequestInfo<AbacusIllnesses.IUpdateIllnessRequest, AbacusIllnesses.IUpdateIllnessResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createIllness(request : AbacusIllnesses.ICreateIllnessRequest, overridenToken?: string): Promise<AbacusIllnesses.ICreateIllnessResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusIllnesses.ICreateIllnessRequest, AbacusIllnesses.ICreateIllnessResult>(request, 'AbacusIllnesses', 'CreateIllness', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateIllness.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteIllness(request : AbacusIllnesses.IDeleteIllnessRequest, overridenToken?: string): Promise<AbacusIllnesses.IDeleteIllnessResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusIllnesses.IDeleteIllnessRequest, AbacusIllnesses.IDeleteIllnessResult>(request, 'AbacusIllnesses', 'DeleteIllness', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteIllness.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllIllnesses(overridenToken?: string): Promise<AbacusIllnesses.IGetAllIllnessesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusIllnesses.IGetAllIllnessesResult>({}, 'AbacusIllnesses', 'GetAllIllnesses', overridenToken);\r\n                                        \r\n                                            this.onGetAllIllnesses.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateIllness(request : AbacusIllnesses.IUpdateIllnessRequest, overridenToken?: string): Promise<AbacusIllnesses.IUpdateIllnessResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusIllnesses.IUpdateIllnessRequest, AbacusIllnesses.IUpdateIllnessResult>(request, 'AbacusIllnesses', 'UpdateIllness', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateIllness.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusLanguage {\r\n                    \r\n                            export enum CreateLanguageError {\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                languageItemNameAlreadyExists = 'languageItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                            export enum DeleteLanguageError {\r\n                                languageNotFound = 'languageNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateLanguageError {\r\n                                languageNotFound = 'languageNotFound',\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                languageItemNameAlreadyExists = 'languageItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface ICreateLanguageRequest {\r\n                                    itemName: string\r\n                                }\r\n                            \r\n                                export interface ICreateLanguageResult {\r\n                                    successful: boolean,\r\n pId: number,\r\n errors: CreateLanguageError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteLanguageRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteLanguageResult {\r\n                                    successful: boolean,\r\n errors: DeleteLanguageError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllLanguagesResult {\r\n                                    languages: IGetAllLanguagesCommandResultLanguageModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllLanguagesCommandResultLanguageModel {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                           \r\n                                export interface IUpdateLanguageRequest {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                            \r\n                                export interface IUpdateLanguageResult {\r\n                                    successful: boolean,\r\n errors: UpdateLanguageError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusLanguageCommands {\r\n                    \r\n                            public onCreateLanguage: Subject<RequestInfo<AbacusLanguage.ICreateLanguageRequest, AbacusLanguage.ICreateLanguageResult>> = new Subject();\r\n                        \r\n                            public onDeleteLanguage: Subject<RequestInfo<AbacusLanguage.IDeleteLanguageRequest, AbacusLanguage.IDeleteLanguageResult>> = new Subject();\r\n                        \r\n                            public onGetAllLanguages: Subject<AbacusLanguage.IGetAllLanguagesResult> = new Subject();\r\n                        \r\n                            public onUpdateLanguage: Subject<RequestInfo<AbacusLanguage.IUpdateLanguageRequest, AbacusLanguage.IUpdateLanguageResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createLanguage(request : AbacusLanguage.ICreateLanguageRequest, overridenToken?: string): Promise<AbacusLanguage.ICreateLanguageResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusLanguage.ICreateLanguageRequest, AbacusLanguage.ICreateLanguageResult>(request, 'AbacusLanguage', 'CreateLanguage', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateLanguage.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteLanguage(request : AbacusLanguage.IDeleteLanguageRequest, overridenToken?: string): Promise<AbacusLanguage.IDeleteLanguageResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusLanguage.IDeleteLanguageRequest, AbacusLanguage.IDeleteLanguageResult>(request, 'AbacusLanguage', 'DeleteLanguage', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteLanguage.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllLanguages(overridenToken?: string): Promise<AbacusLanguage.IGetAllLanguagesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusLanguage.IGetAllLanguagesResult>({}, 'AbacusLanguage', 'GetAllLanguages', overridenToken);\r\n                                        \r\n                                            this.onGetAllLanguages.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateLanguage(request : AbacusLanguage.IUpdateLanguageRequest, overridenToken?: string): Promise<AbacusLanguage.IUpdateLanguageResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusLanguage.IUpdateLanguageRequest, AbacusLanguage.IUpdateLanguageResult>(request, 'AbacusLanguage', 'UpdateLanguage', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateLanguage.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusMedical {\r\n                    \r\n                            export enum CreateMedicalError {\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                medicalItemNameAlreadyExists = 'medicalItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                            export enum DeleteMedicalError {\r\n                                medicalNotFound = 'medicalNotFound',\r\n                                medicalConditionInUse = 'medicalConditionInUse'\r\n                            }\r\n                        \r\n                            export enum UpdateMedicalError {\r\n                                medicalNotFound = 'medicalNotFound',\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                medicalItemNameAlreadyExists = 'medicalItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface ICreateMedicalRequest {\r\n                                    itemName: string\r\n                                }\r\n                            \r\n                                export interface ICreateMedicalResult {\r\n                                    successful: boolean,\r\n pId: number,\r\n errors: CreateMedicalError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteMedicalRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteMedicalResult {\r\n                                    successful: boolean,\r\n errors: DeleteMedicalError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllMedicalResult {\r\n                                    medical: IGetAllMedicalCommandResultMedicalModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllMedicalCommandResultMedicalModel {\r\n                                    pId: number,\r\n itemId: number,\r\n itemName: string,\r\n medicalGuid: UUID,\r\n isArchived: boolean\r\n                                }\r\n                           \r\n                                export interface IUpdateMedicalRequest {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                            \r\n                                export interface IUpdateMedicalResult {\r\n                                    successful: boolean,\r\n errors: UpdateMedicalError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusMedicalCommands {\r\n                    \r\n                            public onCreateMedical: Subject<RequestInfo<AbacusMedical.ICreateMedicalRequest, AbacusMedical.ICreateMedicalResult>> = new Subject();\r\n                        \r\n                            public onDeleteMedical: Subject<RequestInfo<AbacusMedical.IDeleteMedicalRequest, AbacusMedical.IDeleteMedicalResult>> = new Subject();\r\n                        \r\n                            public onGetAllMedical: Subject<AbacusMedical.IGetAllMedicalResult> = new Subject();\r\n                        \r\n                            public onUpdateMedical: Subject<RequestInfo<AbacusMedical.IUpdateMedicalRequest, AbacusMedical.IUpdateMedicalResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createMedical(request : AbacusMedical.ICreateMedicalRequest, overridenToken?: string): Promise<AbacusMedical.ICreateMedicalResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusMedical.ICreateMedicalRequest, AbacusMedical.ICreateMedicalResult>(request, 'AbacusMedical', 'CreateMedical', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateMedical.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteMedical(request : AbacusMedical.IDeleteMedicalRequest, overridenToken?: string): Promise<AbacusMedical.IDeleteMedicalResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusMedical.IDeleteMedicalRequest, AbacusMedical.IDeleteMedicalResult>(request, 'AbacusMedical', 'DeleteMedical', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteMedical.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllMedical(overridenToken?: string): Promise<AbacusMedical.IGetAllMedicalResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusMedical.IGetAllMedicalResult>({}, 'AbacusMedical', 'GetAllMedical', overridenToken);\r\n                                        \r\n                                            this.onGetAllMedical.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateMedical(request : AbacusMedical.IUpdateMedicalRequest, overridenToken?: string): Promise<AbacusMedical.IUpdateMedicalResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusMedical.IUpdateMedicalRequest, AbacusMedical.IUpdateMedicalResult>(request, 'AbacusMedical', 'UpdateMedical', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateMedical.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusNationality {\r\n                    \r\n                            export enum CreateNationalityError {\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                nationalityItemNameAlreadyExists = 'nationalityItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                            export enum DeleteNationalityError {\r\n                                nationalityNotFound = 'nationalityNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateNationalityError {\r\n                                nationalityNotFound = 'nationalityNotFound',\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                nationalityItemNameAlreadyExists = 'nationalityItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface ICreateNationalityRequest {\r\n                                    itemName: string\r\n                                }\r\n                            \r\n                                export interface ICreateNationalityResult {\r\n                                    successful: boolean,\r\n pId: number,\r\n errors: CreateNationalityError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteNationalityRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteNationalityResult {\r\n                                    successful: boolean,\r\n errors: DeleteNationalityError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllNationalitiesResult {\r\n                                    nationalities: IGetAllNationalitiesCommandResultNationalityModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllNationalitiesCommandResultNationalityModel {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                           \r\n                                export interface IUpdateNationalityRequest {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                            \r\n                                export interface IUpdateNationalityResult {\r\n                                    successful: boolean,\r\n errors: UpdateNationalityError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusNationalityCommands {\r\n                    \r\n                            public onCreateNationality: Subject<RequestInfo<AbacusNationality.ICreateNationalityRequest, AbacusNationality.ICreateNationalityResult>> = new Subject();\r\n                        \r\n                            public onDeleteNationality: Subject<RequestInfo<AbacusNationality.IDeleteNationalityRequest, AbacusNationality.IDeleteNationalityResult>> = new Subject();\r\n                        \r\n                            public onGetAllNationalities: Subject<AbacusNationality.IGetAllNationalitiesResult> = new Subject();\r\n                        \r\n                            public onUpdateNationality: Subject<RequestInfo<AbacusNationality.IUpdateNationalityRequest, AbacusNationality.IUpdateNationalityResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createNationality(request : AbacusNationality.ICreateNationalityRequest, overridenToken?: string): Promise<AbacusNationality.ICreateNationalityResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusNationality.ICreateNationalityRequest, AbacusNationality.ICreateNationalityResult>(request, 'AbacusNationality', 'CreateNationality', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateNationality.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteNationality(request : AbacusNationality.IDeleteNationalityRequest, overridenToken?: string): Promise<AbacusNationality.IDeleteNationalityResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusNationality.IDeleteNationalityRequest, AbacusNationality.IDeleteNationalityResult>(request, 'AbacusNationality', 'DeleteNationality', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteNationality.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllNationalities(overridenToken?: string): Promise<AbacusNationality.IGetAllNationalitiesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusNationality.IGetAllNationalitiesResult>({}, 'AbacusNationality', 'GetAllNationalities', overridenToken);\r\n                                        \r\n                                            this.onGetAllNationalities.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateNationality(request : AbacusNationality.IUpdateNationalityRequest, overridenToken?: string): Promise<AbacusNationality.IUpdateNationalityResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusNationality.IUpdateNationalityRequest, AbacusNationality.IUpdateNationalityResult>(request, 'AbacusNationality', 'UpdateNationality', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateNationality.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusReligion {\r\n                    \r\n                            export enum CreateReligionError {\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                religionItemNameAlreadyExists = 'religionItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                            export enum DeleteReligionError {\r\n                                religionNotFound = 'religionNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateReligionError {\r\n                                religionNotFound = 'religionNotFound',\r\n                                itemNameIsEmpty = 'itemNameIsEmpty',\r\n                                religionItemNameAlreadyExists = 'religionItemNameAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface ICreateReligionRequest {\r\n                                    itemName: string\r\n                                }\r\n                            \r\n                                export interface ICreateReligionResult {\r\n                                    successful: boolean,\r\n pId: number,\r\n errors: CreateReligionError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteReligionRequest {\r\n                                    pId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteReligionResult {\r\n                                    successful: boolean,\r\n errors: DeleteReligionError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllReligionsResult {\r\n                                    religions: IGetAllReligionsCommandResultReligionModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllReligionsCommandResultReligionModel {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                           \r\n                                export interface IUpdateReligionRequest {\r\n                                    pId: number,\r\n itemName: string\r\n                                }\r\n                            \r\n                                export interface IUpdateReligionResult {\r\n                                    successful: boolean,\r\n errors: UpdateReligionError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusReligionCommands {\r\n                    \r\n                            public onCreateReligion: Subject<RequestInfo<AbacusReligion.ICreateReligionRequest, AbacusReligion.ICreateReligionResult>> = new Subject();\r\n                        \r\n                            public onDeleteReligion: Subject<RequestInfo<AbacusReligion.IDeleteReligionRequest, AbacusReligion.IDeleteReligionResult>> = new Subject();\r\n                        \r\n                            public onGetAllReligions: Subject<AbacusReligion.IGetAllReligionsResult> = new Subject();\r\n                        \r\n                            public onUpdateReligion: Subject<RequestInfo<AbacusReligion.IUpdateReligionRequest, AbacusReligion.IUpdateReligionResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createReligion(request : AbacusReligion.ICreateReligionRequest, overridenToken?: string): Promise<AbacusReligion.ICreateReligionResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusReligion.ICreateReligionRequest, AbacusReligion.ICreateReligionResult>(request, 'AbacusReligion', 'CreateReligion', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateReligion.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteReligion(request : AbacusReligion.IDeleteReligionRequest, overridenToken?: string): Promise<AbacusReligion.IDeleteReligionResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusReligion.IDeleteReligionRequest, AbacusReligion.IDeleteReligionResult>(request, 'AbacusReligion', 'DeleteReligion', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteReligion.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllReligions(overridenToken?: string): Promise<AbacusReligion.IGetAllReligionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusReligion.IGetAllReligionsResult>({}, 'AbacusReligion', 'GetAllReligions', overridenToken);\r\n                                        \r\n                                            this.onGetAllReligions.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateReligion(request : AbacusReligion.IUpdateReligionRequest, overridenToken?: string): Promise<AbacusReligion.IUpdateReligionResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusReligion.IUpdateReligionRequest, AbacusReligion.IUpdateReligionResult>(request, 'AbacusReligion', 'UpdateReligion', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateReligion.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusCommands {\r\n                    \r\n                            export enum InitialiseClientDatabaseError {\r\n                                nurseryCodeNotAvailable = 'nurseryCodeNotAvailable',\r\n                                nurseryWithEmailExists = 'nurseryWithEmailExists',\r\n                                invalidFirstName = 'invalidFirstName',\r\n                                invalidLastName = 'invalidLastName',\r\n                                invalidNurseryName = 'invalidNurseryName',\r\n                                invalidEmailAddress = 'invalidEmailAddress',\r\n                                invalidPassword = 'invalidPassword',\r\n                                passwordNotStrongEnough = 'passwordNotStrongEnough',\r\n                                nurseryHasAlreadyBeenInitialised = 'nurseryHasAlreadyBeenInitialised',\r\n                                userWithEmailExists = 'userWithEmailExists'\r\n                            }\r\n                        \r\n                            export enum AuthenticateUsernameAndPasswordError {\r\n                                userOrPasswordIncorrect = 'userOrPasswordIncorrect',\r\n                                businessNotMigrated = 'businessNotMigrated',\r\n                                businessIsNotActive = 'businessIsNotActive',\r\n                                twoFactorCodeIncorrect = 'twoFactorCodeIncorrect',\r\n                                twofactorCodeIsRequired = 'twofactorCodeIsRequired',\r\n                                ipOrAccountLocked = 'ipOrAccountLocked',\r\n                                accountIsLocked = 'accountIsLocked',\r\n                                accountIsDisabled = 'accountIsDisabled'\r\n                            }\r\n                        \r\n                            export enum AuthenticateUsernameAndPasswordPasswordResetReason {\r\n                                compromisedPassword = 'compromisedPassword'\r\n                            }\r\n                        \r\n                                export interface IInitialiseClientDatabaseRequest {\r\n                                    nurseryId: number\r\n                                }\r\n                            \r\n                                export interface IInitialiseClientDatabaseResult {\r\n                                    successful: boolean,\r\n businessId: UUID,\r\n errors: InitialiseClientDatabaseError[]\r\n                                }\r\n                            \r\n                                export interface IAuthenticateUsernameAndPasswordRequest {\r\n                                    username: string,\r\n password: string,\r\n twoFactorCode: string\r\n                                }\r\n                            \r\n                                export interface IAuthenticateUsernameAndPasswordResult {\r\n                                    successful: boolean,\r\n errors: AuthenticateUsernameAndPasswordError[],\r\n authToken: string,\r\n legacyId: number,\r\n uniqueId: string,\r\n expireDate: string | moment.Moment | Date,\r\n userId: UUID,\r\n emailAddress: string,\r\n name: string,\r\n nurseryName: string,\r\n businessId: UUID,\r\n businessLegacyId: number,\r\n nurseryHasDayShare: boolean,\r\n nurseryHasFootsteps2: boolean,\r\n hasAccessToFootsteps2: boolean,\r\n hasAccessToAbacus: boolean,\r\n hasAccessToDayshare: boolean,\r\n isFootsteps2Standalone: boolean,\r\n mustChangePasswordOnNextLogin: boolean,\r\n resetReason: AuthenticateUsernameAndPasswordPasswordResetReason | null\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusCommandsCommands {\r\n                    \r\n                            public onInitialiseClientDatabase: Subject<RequestInfo<AbacusCommands.IInitialiseClientDatabaseRequest, AbacusCommands.IInitialiseClientDatabaseResult>> = new Subject();\r\n                        \r\n                            public onAuthenticateUsernameAndPassword: Subject<RequestInfo<AbacusCommands.IAuthenticateUsernameAndPasswordRequest, AbacusCommands.IAuthenticateUsernameAndPasswordResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async initialiseClientDatabase(request : AbacusCommands.IInitialiseClientDatabaseRequest, overridenToken?: string): Promise<AbacusCommands.IInitialiseClientDatabaseResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusCommands.IInitialiseClientDatabaseRequest, AbacusCommands.IInitialiseClientDatabaseResult>(request, 'AbacusCommands', 'InitialiseClientDatabase', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onInitialiseClientDatabase.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async authenticateUsernameAndPassword(request : AbacusCommands.IAuthenticateUsernameAndPasswordRequest, overridenToken?: string): Promise<AbacusCommands.IAuthenticateUsernameAndPasswordResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusCommands.IAuthenticateUsernameAndPasswordRequest, AbacusCommands.IAuthenticateUsernameAndPasswordResult>(request, 'AbacusCommands', 'AuthenticateUsernameAndPassword', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onAuthenticateUsernameAndPassword.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusSecurity {\r\n                    \r\n                            export enum DisableTwoFactorForCurrentUserError {\r\n                                userLoginDoesNotExist = 'userLoginDoesNotExist'\r\n                            }\r\n                        \r\n                            export enum InitializeTwoFactorForCurrentUserError {\r\n                                userLoginDoesNotExists = 'userLoginDoesNotExists'\r\n                            }\r\n                        \r\n                            export enum ConfirmPendingTwoFactorForCurrentUserError {\r\n                                invalidOTP = 'invalidOTP',\r\n                                userMissingLogin = 'userMissingLogin',\r\n                                noPendingSecret = 'noPendingSecret'\r\n                            }\r\n                        \r\n                            export enum GetCurrentUserTwoFactorStatusError {\r\n                                noUserLogin = 'noUserLogin'\r\n                            }\r\n                        \r\n                                export interface IDisableTwoFactorForCurrentUserResult {\r\n                                    successful: boolean,\r\n errors: DisableTwoFactorForCurrentUserError[]\r\n                                }\r\n                            \r\n                                export interface IInitializeTwoFactorForCurrentUserResult {\r\n                                    successful: boolean,\r\n qrCodeImageUrl: string,\r\n errors: InitializeTwoFactorForCurrentUserError[]\r\n                                }\r\n                            \r\n                                export interface IConfirmPendingTwoFactorForCurrentUserRequest {\r\n                                    oneTimeCode: string\r\n                                }\r\n                            \r\n                                export interface IConfirmPendingTwoFactorForCurrentUserResult {\r\n                                    successful: boolean,\r\n errors: ConfirmPendingTwoFactorForCurrentUserError[]\r\n                                }\r\n                            \r\n                                export interface IGetCurrentUserTwoFactorStatusResult {\r\n                                    hasTwoFactor: boolean | null,\r\n errors: GetCurrentUserTwoFactorStatusError[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusSecurityCommands {\r\n                    \r\n                            public onDisableTwoFactorForCurrentUser: Subject<AbacusSecurity.IDisableTwoFactorForCurrentUserResult> = new Subject();\r\n                        \r\n                            public onInitializeTwoFactorForCurrentUser: Subject<AbacusSecurity.IInitializeTwoFactorForCurrentUserResult> = new Subject();\r\n                        \r\n                            public onConfirmPendingTwoFactorForCurrentUser: Subject<RequestInfo<AbacusSecurity.IConfirmPendingTwoFactorForCurrentUserRequest, AbacusSecurity.IConfirmPendingTwoFactorForCurrentUserResult>> = new Subject();\r\n                        \r\n                            public onGetCurrentUserTwoFactorStatus: Subject<AbacusSecurity.IGetCurrentUserTwoFactorStatusResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async disableTwoFactorForCurrentUser(overridenToken?: string): Promise<AbacusSecurity.IDisableTwoFactorForCurrentUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusSecurity.IDisableTwoFactorForCurrentUserResult>({}, 'AbacusSecurity', 'DisableTwoFactorForCurrentUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDisableTwoFactorForCurrentUser.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async initializeTwoFactorForCurrentUser(overridenToken?: string): Promise<AbacusSecurity.IInitializeTwoFactorForCurrentUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusSecurity.IInitializeTwoFactorForCurrentUserResult>({}, 'AbacusSecurity', 'InitializeTwoFactorForCurrentUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onInitializeTwoFactorForCurrentUser.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async confirmPendingTwoFactorForCurrentUser(request : AbacusSecurity.IConfirmPendingTwoFactorForCurrentUserRequest, overridenToken?: string): Promise<AbacusSecurity.IConfirmPendingTwoFactorForCurrentUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusSecurity.IConfirmPendingTwoFactorForCurrentUserRequest, AbacusSecurity.IConfirmPendingTwoFactorForCurrentUserResult>(request, 'AbacusSecurity', 'ConfirmPendingTwoFactorForCurrentUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onConfirmPendingTwoFactorForCurrentUser.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getCurrentUserTwoFactorStatus(overridenToken?: string): Promise<AbacusSecurity.IGetCurrentUserTwoFactorStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusSecurity.IGetCurrentUserTwoFactorStatusResult>({}, 'AbacusSecurity', 'GetCurrentUserTwoFactorStatus', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetCurrentUserTwoFactorStatus.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusChildren2 {\r\n                    \r\n                            export enum AddCohortToChildError {\r\n                                childDoesNotExist = 'childDoesNotExist',\r\n                                cohortKeyDoesNotExist = 'cohortKeyDoesNotExist'\r\n                            }\r\n                        \r\n                            export enum RemoveCohortFromChildError {\r\n                                childDoesNotExist = 'childDoesNotExist',\r\n                                cohortKeyDoesNotExist = 'cohortKeyDoesNotExist'\r\n                            }\r\n                        \r\n                            export enum UpdateChildren2AbacusChildStatusKey {\r\n                                registered = 'registered',\r\n                                left = 'left'\r\n                            }\r\n                        \r\n                            export enum UpdateChildren2Error {\r\n                                children2NotFound = 'children2NotFound',\r\n                                keyWorkerNotFound = 'keyWorkerNotFound'\r\n                            }\r\n                        \r\n                            export enum UpdateChildrenStatusToLeftError {\r\n                                noChildIds = 'noChildIds'\r\n                            }\r\n                        \r\n                                export interface IAddCohortToChildRequest {\r\n                                    cohort: Children2Cohort,\r\n childId: number\r\n                                }\r\n                            \r\n                                export interface IAddCohortToChildResult {\r\n                                    successful: boolean,\r\n errors: AddCohortToChildError[]\r\n                                }\r\n                            \r\n                                export interface IRemoveCohortFromChildRequest {\r\n                                    cohort: Children2Cohort,\r\n childId: number\r\n                                }\r\n                            \r\n                                export interface IRemoveCohortFromChildResult {\r\n                                    successful: boolean,\r\n errors: RemoveCohortFromChildError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateChildren2Request {\r\n                                    childId: number,\r\n firstName: string,\r\n lastName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n isMale: boolean,\r\n startDate: string | moment.Moment | Date,\r\n estimatedLeaveDate: string | moment.Moment | Date,\r\n roomId: number | null,\r\n keyWorkerId: number | null,\r\n status: UpdateChildren2AbacusChildStatusKey\r\n                                }\r\n                            \r\n                                export interface IUpdateChildren2Result {\r\n                                    successful: boolean,\r\n errors: UpdateChildren2Error[]\r\n                                }\r\n                            \r\n                                export interface IGetRegisteredChildrenPastActualLeaveDateResult {\r\n                                    registeredLeftChildren: IGetRegisteredChildrenPastActualLeaveDateCommandResultChildData[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetRegisteredChildrenPastActualLeaveDateCommandResultChildData {\r\n                                    childId: number,\r\n firstName: string,\r\n lastName: string,\r\n photo: string,\r\n leaveDate: string | moment.Moment | Date | null,\r\n dateOfBirth: string | moment.Moment | Date,\r\n keyWorkerId: number | null,\r\n keyWorker: string\r\n                                }\r\n                           \r\n                                export interface IUpdateChildrenStatusToLeftRequest {\r\n                                    childIds: number[]\r\n                                }\r\n                            \r\n                                export interface IUpdateChildrenStatusToLeftResult {\r\n                                    successful: boolean,\r\n errors: UpdateChildrenStatusToLeftError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusChildren2Commands {\r\n                    \r\n                            public onAddCohortToChild: Subject<RequestInfo<AbacusChildren2.IAddCohortToChildRequest, AbacusChildren2.IAddCohortToChildResult>> = new Subject();\r\n                        \r\n                            public onRemoveCohortFromChild: Subject<RequestInfo<AbacusChildren2.IRemoveCohortFromChildRequest, AbacusChildren2.IRemoveCohortFromChildResult>> = new Subject();\r\n                        \r\n                            public onUpdateChildren2: Subject<RequestInfo<AbacusChildren2.IUpdateChildren2Request, AbacusChildren2.IUpdateChildren2Result>> = new Subject();\r\n                        \r\n                            public onGetRegisteredChildrenPastActualLeaveDate: Subject<AbacusChildren2.IGetRegisteredChildrenPastActualLeaveDateResult> = new Subject();\r\n                        \r\n                            public onUpdateChildrenStatusToLeft: Subject<RequestInfo<AbacusChildren2.IUpdateChildrenStatusToLeftRequest, AbacusChildren2.IUpdateChildrenStatusToLeftResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async addCohortToChild(request : AbacusChildren2.IAddCohortToChildRequest, overridenToken?: string): Promise<AbacusChildren2.IAddCohortToChildResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusChildren2.IAddCohortToChildRequest, AbacusChildren2.IAddCohortToChildResult>(request, 'AbacusChildren2', 'AddCohortToChild', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onAddCohortToChild.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async removeCohortFromChild(request : AbacusChildren2.IRemoveCohortFromChildRequest, overridenToken?: string): Promise<AbacusChildren2.IRemoveCohortFromChildResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusChildren2.IRemoveCohortFromChildRequest, AbacusChildren2.IRemoveCohortFromChildResult>(request, 'AbacusChildren2', 'RemoveCohortFromChild', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onRemoveCohortFromChild.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateChildren2(request : AbacusChildren2.IUpdateChildren2Request, overridenToken?: string): Promise<AbacusChildren2.IUpdateChildren2Result> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusChildren2.IUpdateChildren2Request, AbacusChildren2.IUpdateChildren2Result>(request, 'AbacusChildren2', 'UpdateChildren2', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateChildren2.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getRegisteredChildrenPastActualLeaveDate(overridenToken?: string): Promise<AbacusChildren2.IGetRegisteredChildrenPastActualLeaveDateResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusChildren2.IGetRegisteredChildrenPastActualLeaveDateResult>({}, 'AbacusChildren2', 'GetRegisteredChildrenPastActualLeaveDate', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetRegisteredChildrenPastActualLeaveDate.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateChildrenStatusToLeft(request : AbacusChildren2.IUpdateChildrenStatusToLeftRequest, overridenToken?: string): Promise<AbacusChildren2.IUpdateChildrenStatusToLeftResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusChildren2.IUpdateChildrenStatusToLeftRequest, AbacusChildren2.IUpdateChildrenStatusToLeftResult>(request, 'AbacusChildren2', 'UpdateChildrenStatusToLeft', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateChildrenStatusToLeft.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusChild2Allergy {\r\n                    \r\n                            export enum CreateChild2AllergyError {\r\n                                children2NotFound = 'children2NotFound',\r\n                                allergyNotFound = 'allergyNotFound',\r\n                                mappingAlreadyExists = 'mappingAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface ICreateChild2AllergyRequest {\r\n                                    childId: number,\r\n allergyId: number\r\n                                }\r\n                            \r\n                                export interface ICreateChild2AllergyResult {\r\n                                    successful: boolean,\r\n errors: CreateChild2AllergyError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteChild2AllergyRequest {\r\n                                    childId: number,\r\n allergyId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteChild2AllergyResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusChild2AllergyCommands {\r\n                    \r\n                            public onCreateChild2Allergy: Subject<RequestInfo<AbacusChild2Allergy.ICreateChild2AllergyRequest, AbacusChild2Allergy.ICreateChild2AllergyResult>> = new Subject();\r\n                        \r\n                            public onDeleteChild2Allergy: Subject<RequestInfo<AbacusChild2Allergy.IDeleteChild2AllergyRequest, AbacusChild2Allergy.IDeleteChild2AllergyResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createChild2Allergy(request : AbacusChild2Allergy.ICreateChild2AllergyRequest, overridenToken?: string): Promise<AbacusChild2Allergy.ICreateChild2AllergyResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusChild2Allergy.ICreateChild2AllergyRequest, AbacusChild2Allergy.ICreateChild2AllergyResult>(request, 'AbacusChild2Allergy', 'CreateChild2Allergy', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateChild2Allergy.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteChild2Allergy(request : AbacusChild2Allergy.IDeleteChild2AllergyRequest, overridenToken?: string): Promise<AbacusChild2Allergy.IDeleteChild2AllergyResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusChild2Allergy.IDeleteChild2AllergyRequest, AbacusChild2Allergy.IDeleteChild2AllergyResult>(request, 'AbacusChild2Allergy', 'DeleteChild2Allergy', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteChild2Allergy.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusChild2Medical {\r\n                    \r\n                            export enum CreateChild2MedicalError {\r\n                                childNotFound = 'childNotFound',\r\n                                medicalConditionNotFound = 'medicalConditionNotFound',\r\n                                mappingAlreadyExists = 'mappingAlreadyExists'\r\n                            }\r\n                        \r\n                                export interface ICreateChild2MedicalRequest {\r\n                                    childId: number,\r\n medicalId: number\r\n                                }\r\n                            \r\n                                export interface ICreateChild2MedicalResult {\r\n                                    successful: boolean,\r\n errors: CreateChild2MedicalError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteChild2MedicalRequest {\r\n                                    childId: number,\r\n medicalId: number\r\n                                }\r\n                            \r\n                                export interface IDeleteChild2MedicalResult {\r\n                                    successful: boolean\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusChild2MedicalCommands {\r\n                    \r\n                            public onCreateChild2Medical: Subject<RequestInfo<AbacusChild2Medical.ICreateChild2MedicalRequest, AbacusChild2Medical.ICreateChild2MedicalResult>> = new Subject();\r\n                        \r\n                            public onDeleteChild2Medical: Subject<RequestInfo<AbacusChild2Medical.IDeleteChild2MedicalRequest, AbacusChild2Medical.IDeleteChild2MedicalResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createChild2Medical(request : AbacusChild2Medical.ICreateChild2MedicalRequest, overridenToken?: string): Promise<AbacusChild2Medical.ICreateChild2MedicalResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusChild2Medical.ICreateChild2MedicalRequest, AbacusChild2Medical.ICreateChild2MedicalResult>(request, 'AbacusChild2Medical', 'CreateChild2Medical', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateChild2Medical.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteChild2Medical(request : AbacusChild2Medical.IDeleteChild2MedicalRequest, overridenToken?: string): Promise<AbacusChild2Medical.IDeleteChild2MedicalResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusChild2Medical.IDeleteChild2MedicalRequest, AbacusChild2Medical.IDeleteChild2MedicalResult>(request, 'AbacusChild2Medical', 'DeleteChild2Medical', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteChild2Medical.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusAdults2 {\r\n                    \r\n                            export enum UpdateCarerError {\r\n                                carerNotFound = 'carerNotFound',\r\n                                linkNotFound = 'linkNotFound',\r\n                                invalidInput = 'invalidInput',\r\n                                childNotFound = 'childNotFound'\r\n                            }\r\n                        \r\n                            export enum CanCarerBeDeletedReasonCannotDelete {\r\n                                paymentPending = 'paymentPending',\r\n                                collectionPending = 'collectionPending'\r\n                            }\r\n                        \r\n                            export enum CanCarerBeDeletedError {\r\n                                carerDoesNotExist = 'carerDoesNotExist'\r\n                            }\r\n                        \r\n                            export enum SetAsPrimaryCarerError {\r\n                                childNotFound = 'childNotFound',\r\n                                oldPrimaryCarerNotFound = 'oldPrimaryCarerNotFound',\r\n                                newPrimaryCarerNotFound = 'newPrimaryCarerNotFound',\r\n                                relationshipNotFound = 'relationshipNotFound',\r\n                                carerIdProvidedIsNotPrimaryCarer = 'carerIdProvidedIsNotPrimaryCarer'\r\n                            }\r\n                        \r\n                                export interface IUpdateCarerRequest {\r\n                                    carerId: UUID,\r\n childId: number,\r\n relationship: string,\r\n isParentalResponsibility: boolean,\r\n isEmergencyContact: boolean,\r\n carerName: IUpdateCarerCommandCarerNameInfo,\r\n carerEmail: string,\r\n carerPhoneNumberSet: IUpdateCarerCommandPhoneNumberSet,\r\n carerAddress: IUpdateCarerCommandCarerAddressInfo,\r\n isMale: boolean\r\n                                }\r\n                            \r\n                                export interface IUpdateCarerResult {\r\n                                    successful: boolean,\r\n errors: UpdateCarerError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateCarerCommandCarerNameInfo {\r\n                                    title: string,\r\n firstName: string,\r\n lastName: string\r\n                                }\r\n                           \r\n                                export interface IUpdateCarerCommandPhoneNumberSet {\r\n                                    homePhone: string,\r\n workPhone: string,\r\n mobilePhone: string\r\n                                }\r\n                           \r\n                                export interface IUpdateCarerCommandCarerAddressInfo {\r\n                                    addressIdentifier: string,\r\n addressLine1: string,\r\n addressLine2: string,\r\n addressLine3: string,\r\n town: string,\r\n county: string,\r\n postCode: string\r\n                                }\r\n                           \r\n                                export interface IGetCarersParentPortalStatusResult {\r\n                                    carersParentPortalStatuses: IGetCarersParentPortalStatusResultCarersParentPortalStatus[],\r\n successful: boolean\r\n                                }\r\n                            \r\n                                export interface IGetCarersParentPortalStatusResultCarersParentPortalStatus {\r\n                                    childId: UUID,\r\n childFullName: string,\r\n adult2Id: UUID | null,\r\n carerFullName: string,\r\n relationship: string,\r\n parentPortalStatus: boolean,\r\n lastSyncDate: string | moment.Moment | Date | null,\r\n email: string,\r\n hasParentalResponsibility: boolean\r\n                                }\r\n                           \r\n                                export interface ICanCarerBeDeletedRequest {\r\n                                    adults2Guid: UUID\r\n                                }\r\n                            \r\n                                export interface ICanCarerBeDeletedResult {\r\n                                    successful: boolean,\r\n canBeDeleted: boolean,\r\n reasonsCannotDelete: CanCarerBeDeletedReasonCannotDelete[],\r\n errors: CanCarerBeDeletedError[]\r\n                                }\r\n                            \r\n                                export interface ISetAsPrimaryCarerRequest {\r\n                                    newPrimaryCarerId: number,\r\n oldPrimaryCarerId: number\r\n                                }\r\n                            \r\n                                export interface ISetAsPrimaryCarerResult {\r\n                                    successful: boolean,\r\n errors: SetAsPrimaryCarerError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusAdults2Commands {\r\n                    \r\n                            public onUpdateCarer: Subject<RequestInfo<AbacusAdults2.IUpdateCarerRequest, AbacusAdults2.IUpdateCarerResult>> = new Subject();\r\n                        \r\n                            public onGetCarersParentPortalStatus: Subject<AbacusAdults2.IGetCarersParentPortalStatusResult> = new Subject();\r\n                        \r\n                            public onCanCarerBeDeleted: Subject<RequestInfo<AbacusAdults2.ICanCarerBeDeletedRequest, AbacusAdults2.ICanCarerBeDeletedResult>> = new Subject();\r\n                        \r\n                            public onSetAsPrimaryCarer: Subject<RequestInfo<AbacusAdults2.ISetAsPrimaryCarerRequest, AbacusAdults2.ISetAsPrimaryCarerResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async updateCarer(request : AbacusAdults2.IUpdateCarerRequest, overridenToken?: string): Promise<AbacusAdults2.IUpdateCarerResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusAdults2.IUpdateCarerRequest, AbacusAdults2.IUpdateCarerResult>(request, 'AbacusAdults2', 'UpdateCarer', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateCarer.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getCarersParentPortalStatus(overridenToken?: string): Promise<AbacusAdults2.IGetCarersParentPortalStatusResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusAdults2.IGetCarersParentPortalStatusResult>({}, 'AbacusAdults2', 'GetCarersParentPortalStatus', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetCarersParentPortalStatus.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async canCarerBeDeleted(request : AbacusAdults2.ICanCarerBeDeletedRequest, overridenToken?: string): Promise<AbacusAdults2.ICanCarerBeDeletedResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusAdults2.ICanCarerBeDeletedRequest, AbacusAdults2.ICanCarerBeDeletedResult>(request, 'AbacusAdults2', 'CanCarerBeDeleted', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCanCarerBeDeleted.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async setAsPrimaryCarer(request : AbacusAdults2.ISetAsPrimaryCarerRequest, overridenToken?: string): Promise<AbacusAdults2.ISetAsPrimaryCarerResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusAdults2.ISetAsPrimaryCarerRequest, AbacusAdults2.ISetAsPrimaryCarerResult>(request, 'AbacusAdults2', 'SetAsPrimaryCarer', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSetAsPrimaryCarer.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusStaff {\r\n                    \r\n                            export enum GetAllStaffError {\r\n                                \r\n                            }\r\n                        \r\n                            export enum CreateStaffError {\r\n                                validationError = 'validationError'\r\n                            }\r\n                        \r\n                            export enum UpdateStaffError {\r\n                                staffDoesNotExist = 'staffDoesNotExist',\r\n                                validationError = 'validationError'\r\n                            }\r\n                        \r\n                            export enum DeleteStaffError {\r\n                                staffDoesNotExist = 'staffDoesNotExist',\r\n                                staffInUse = 'staffInUse'\r\n                            }\r\n                        \r\n                            export enum GetAllStaffAndLoginDetailsError {\r\n                                \r\n                            }\r\n                        \r\n                            export enum CreateStaffAndLoginError {\r\n                                errorCreatingUser = 'errorCreatingUser',\r\n                                emailInUse = 'emailInUse',\r\n                                invalidPassword = 'invalidPassword',\r\n                                usernameInvalid = 'usernameInvalid'\r\n                            }\r\n                        \r\n                            export enum UpdateStaffAndLoginDetailsError {\r\n                                invalidUser = 'invalidUser',\r\n                                updateStaffValidationError = 'updateStaffValidationError',\r\n                                invalidFirstName = 'invalidFirstName',\r\n                                invalidLastName = 'invalidLastName',\r\n                                updateStaffStaffDoesNotExist = 'updateStaffStaffDoesNotExist',\r\n                                updateNUserAbacusUserNotFound = 'updateNUserAbacusUserNotFound',\r\n                                updateNUserInvalidDateOfBirth = 'updateNUserInvalidDateOfBirth',\r\n                                updateNUserInvalidEmail = 'updateNUserInvalidEmail',\r\n                                updateNUserInvalidFirstName = 'updateNUserInvalidFirstName',\r\n                                updateNUserInvalidLastName = 'updateNUserInvalidLastName',\r\n                                updateNUserParentaServicesUserNotFound = 'updateNUserParentaServicesUserNotFound',\r\n                                updateNUserEmailInUse = 'updateNUserEmailInUse',\r\n                                updateNUserInvalidMirkwoodUser = 'updateNUserInvalidMirkwoodUser',\r\n                                updateNUserParentaServicesUniqueIdConflict = 'updateNUserParentaServicesUniqueIdConflict',\r\n                                updateNUserTooManyParentaServicesUsers = 'updateNUserTooManyParentaServicesUsers',\r\n                                updateNUserNurseryNotFound = 'updateNUserNurseryNotFound',\r\n                                updateNUserMirkwoodSharedGuidMismatch = 'updateNUserMirkwoodSharedGuidMismatch',\r\n                                updateNUserParentaServicesUserSharedGuidMismatch = 'updateNUserParentaServicesUserSharedGuidMismatch',\r\n                                updateNUserUsernameInvalid = 'updateNUserUsernameInvalid',\r\n                                updateNUserUsernameInUse = 'updateNUserUsernameInUse',\r\n                                updatePasswordUserLoginNotFound = 'updatePasswordUserLoginNotFound',\r\n                                updatePasswordPasswordIsEmpty = 'updatePasswordPasswordIsEmpty',\r\n                                updatePasswordPasswordNotStrongEnough = 'updatePasswordPasswordNotStrongEnough',\r\n                                updateNUserUpdatingOnlyAdministratorToUser = 'updateNUserUpdatingOnlyAdministratorToUser',\r\n                                usernameInvalid = 'usernameInvalid'\r\n                            }\r\n                        \r\n                                export interface IGetAllStaffResult {\r\n                                    successful: boolean,\r\n staffs: IGetAllStaffCommandResultStaff[],\r\n errors: GetAllStaffError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllStaffCommandResultStaff {\r\n                                    staffGuid: UUID,\r\n staffId: number,\r\n firstName: string,\r\n lastName: string,\r\n keyWorker: boolean,\r\n dateOfBirth: string | moment.Moment | Date,\r\n isMale: boolean,\r\n middleName: string,\r\n title: string,\r\n email: string,\r\n jobTitleName: string,\r\n statusId: StaffStatusType\r\n                                }\r\n                           \r\n                                export interface ICreateStaffRequest {\r\n                                    title: string,\r\n firstName: string,\r\n middleName: string,\r\n lastName: string,\r\n isMale: boolean,\r\n dateOfBirth: string | moment.Moment | Date,\r\n isKeyWorker: boolean,\r\n sharedGuid: UUID,\r\n nUserId: number | null\r\n                                }\r\n                            \r\n                                export interface ICreateStaffResult {\r\n                                    successful: boolean,\r\n errors: CreateStaffError[],\r\n staffId: UUID,\r\n staffLegacyId: number\r\n                                }\r\n                            \r\n                                export interface IUpdateStaffRequest {\r\n                                    staffId: number,\r\n title: string,\r\n firstName: string,\r\n middleName: string,\r\n lastName: string,\r\n isMale: boolean,\r\n dateOfBirth: string | moment.Moment | Date,\r\n keyWorker: boolean,\r\n staffGuid: UUID,\r\n email: string,\r\n nUserId: number | null\r\n                                }\r\n                            \r\n                                export interface IUpdateStaffResult {\r\n                                    successful: boolean,\r\n errors: UpdateStaffError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteStaffRequest {\r\n                                    staffGuid: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteStaffResult {\r\n                                    successful: boolean,\r\n errors: DeleteStaffError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllStaffAndLoginDetailsResult {\r\n                                    successful: boolean,\r\n staffs: IGetAllStaffAndLoginDetailsResultStaff[],\r\n errors: GetAllStaffAndLoginDetailsError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllStaffAndLoginDetailsResultStaff {\r\n                                    staffGuid: UUID,\r\n staffId: number,\r\n firstName: string,\r\n lastName: string,\r\n keyWorker: boolean,\r\n dateOfBirth: string | moment.Moment | Date,\r\n isMale: boolean,\r\n middleName: string,\r\n title: string,\r\n email: string,\r\n username: string,\r\n disabled: boolean,\r\n parentaServicesNUserGuid: UUID,\r\n userCode: ParentaServicesUserCode\r\n                                }\r\n                           \r\n                                export interface ICreateStaffAndLoginRequest {\r\n                                    title: string,\r\n firstName: string,\r\n isMale: boolean,\r\n lastName: string,\r\n middleName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n isKeyWorker: boolean,\r\n email: string,\r\n username: string,\r\n homeTel: string,\r\n workTel: string,\r\n password: string,\r\n userCode: ParentaServicesUserCode\r\n                                }\r\n                            \r\n                                export interface ICreateStaffAndLoginResult {\r\n                                    successful: boolean,\r\n errors: CreateStaffAndLoginError[],\r\n staffId: UUID,\r\n staffLegacyId: number\r\n                                }\r\n                            \r\n                                export interface IUpdateStaffAndLoginDetailsRequest {\r\n                                    staffGuid: UUID,\r\n firstName: string,\r\n lastName: string,\r\n title: string,\r\n isMale: boolean,\r\n keyWorker: boolean,\r\n middleName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n parentaServicesNUserGuid: UUID,\r\n userCode: ParentaServicesUserCode,\r\n password: string,\r\n emailAddress: string,\r\n username: string,\r\n disabled: boolean\r\n                                }\r\n                            \r\n                                export interface IUpdateStaffAndLoginDetailsResult {\r\n                                    successful: boolean,\r\n errors: UpdateStaffAndLoginDetailsError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusStaffCommands {\r\n                    \r\n                            public onGetAllStaff: Subject<AbacusStaff.IGetAllStaffResult> = new Subject();\r\n                        \r\n                            public onCreateStaff: Subject<RequestInfo<AbacusStaff.ICreateStaffRequest, AbacusStaff.ICreateStaffResult>> = new Subject();\r\n                        \r\n                            public onUpdateStaff: Subject<RequestInfo<AbacusStaff.IUpdateStaffRequest, AbacusStaff.IUpdateStaffResult>> = new Subject();\r\n                        \r\n                            public onDeleteStaff: Subject<RequestInfo<AbacusStaff.IDeleteStaffRequest, AbacusStaff.IDeleteStaffResult>> = new Subject();\r\n                        \r\n                            public onGetAllStaffAndLoginDetails: Subject<AbacusStaff.IGetAllStaffAndLoginDetailsResult> = new Subject();\r\n                        \r\n                            public onCreateStaffAndLogin: Subject<RequestInfo<AbacusStaff.ICreateStaffAndLoginRequest, AbacusStaff.ICreateStaffAndLoginResult>> = new Subject();\r\n                        \r\n                            public onUpdateStaffAndLoginDetails: Subject<RequestInfo<AbacusStaff.IUpdateStaffAndLoginDetailsRequest, AbacusStaff.IUpdateStaffAndLoginDetailsResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getAllStaff(overridenToken?: string): Promise<AbacusStaff.IGetAllStaffResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusStaff.IGetAllStaffResult>({}, 'AbacusStaff', 'GetAllStaff', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAllStaff.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createStaff(request : AbacusStaff.ICreateStaffRequest, overridenToken?: string): Promise<AbacusStaff.ICreateStaffResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaff.ICreateStaffRequest, AbacusStaff.ICreateStaffResult>(request, 'AbacusStaff', 'CreateStaff', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateStaff.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateStaff(request : AbacusStaff.IUpdateStaffRequest, overridenToken?: string): Promise<AbacusStaff.IUpdateStaffResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaff.IUpdateStaffRequest, AbacusStaff.IUpdateStaffResult>(request, 'AbacusStaff', 'UpdateStaff', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateStaff.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteStaff(request : AbacusStaff.IDeleteStaffRequest, overridenToken?: string): Promise<AbacusStaff.IDeleteStaffResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaff.IDeleteStaffRequest, AbacusStaff.IDeleteStaffResult>(request, 'AbacusStaff', 'DeleteStaff', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteStaff.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllStaffAndLoginDetails(overridenToken?: string): Promise<AbacusStaff.IGetAllStaffAndLoginDetailsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusStaff.IGetAllStaffAndLoginDetailsResult>({}, 'AbacusStaff', 'GetAllStaffAndLoginDetails', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAllStaffAndLoginDetails.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async createStaffAndLogin(request : AbacusStaff.ICreateStaffAndLoginRequest, overridenToken?: string): Promise<AbacusStaff.ICreateStaffAndLoginResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaff.ICreateStaffAndLoginRequest, AbacusStaff.ICreateStaffAndLoginResult>(request, 'AbacusStaff', 'CreateStaffAndLogin', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateStaffAndLogin.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateStaffAndLoginDetails(request : AbacusStaff.IUpdateStaffAndLoginDetailsRequest, overridenToken?: string): Promise<AbacusStaff.IUpdateStaffAndLoginDetailsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaff.IUpdateStaffAndLoginDetailsRequest, AbacusStaff.IUpdateStaffAndLoginDetailsResult>(request, 'AbacusStaff', 'UpdateStaffAndLoginDetails', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateStaffAndLoginDetails.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusStaffManagement {\r\n                    \r\n                            export enum GetStaffDetailsError {\r\n                                staffNotFound = 'staffNotFound'\r\n                            }\r\n                        \r\n                            export enum GetFileUploadUrlError {\r\n                                originalFileNameInvalid = 'originalFileNameInvalid',\r\n                                ownerTypeInvalid = 'ownerTypeInvalid'\r\n                            }\r\n                        \r\n                            export enum AttachStaffFileError {\r\n                                staffNotFound = 'staffNotFound',\r\n                                fileNotInStorage = 'fileNotInStorage',\r\n                                originalFileNameInvalid = 'originalFileNameInvalid',\r\n                                notesTooLong = 'notesTooLong'\r\n                            }\r\n                        \r\n                            export enum UpdateStaffFileError {\r\n                                rowNotFound = 'rowNotFound',\r\n                                notesTooLong = 'notesTooLong'\r\n                            }\r\n                        \r\n                            export enum DeleteStaffFileError {\r\n                                rowNotFound = 'rowNotFound'\r\n                            }\r\n                        \r\n                            export enum GetStaffFilesError {\r\n                                \r\n                            }\r\n                        \r\n                            export enum GetStaffFileDownloadUrlError {\r\n                                rowNotFound = 'rowNotFound'\r\n                            }\r\n                        \r\n                            export enum GetStaffTrainingError {\r\n                                \r\n                            }\r\n                        \r\n                            export enum AddStaffTrainingError {\r\n                                staffNotFound = 'staffNotFound',\r\n                                lookupItemNotFound = 'lookupItemNotFound',\r\n                                notesTooLong = 'notesTooLong'\r\n                            }\r\n                        \r\n                            export enum UpdateStaffTrainingError {\r\n                                rowNotFound = 'rowNotFound',\r\n                                notesTooLong = 'notesTooLong'\r\n                            }\r\n                        \r\n                            export enum DeleteStaffTrainingError {\r\n                                rowNotFound = 'rowNotFound'\r\n                            }\r\n                        \r\n                            export enum GetStaffQualificationsError {\r\n                                \r\n                            }\r\n                        \r\n                            export enum AddStaffQualificationError {\r\n                                staffNotFound = 'staffNotFound',\r\n                                lookupItemNotFound = 'lookupItemNotFound',\r\n                                notesTooLong = 'notesTooLong'\r\n                            }\r\n                        \r\n                            export enum UpdateStaffQualificationError {\r\n                                rowNotFound = 'rowNotFound',\r\n                                notesTooLong = 'notesTooLong'\r\n                            }\r\n                        \r\n                            export enum DeleteStaffQualificationError {\r\n                                rowNotFound = 'rowNotFound'\r\n                            }\r\n                        \r\n                            export enum GetTrainingCoursesForNurseryError {\r\n                                \r\n                            }\r\n                        \r\n                            export enum GetQualificationsForNurseryError {\r\n                                \r\n                            }\r\n                        \r\n                            export enum GetNUsersForCurrentNurseryError {\r\n                                \r\n                            }\r\n                        \r\n                                export interface IGetStaffDetailsRequest {\r\n                                    staffId: number\r\n                                }\r\n                            \r\n                                export interface IGetStaffDetailsResult {\r\n                                    successful: boolean,\r\n errors: GetStaffDetailsError[],\r\n staff: IGetStaffDetailsCommandResultStaffDetail\r\n                                }\r\n                            \r\n                                export interface IGetStaffDetailsCommandResultStaffDetail {\r\n                                    staffId: number,\r\n staffGuid: UUID,\r\n nurseryId: number,\r\n title: string,\r\n firstName: string,\r\n lastName: string,\r\n position: string,\r\n email: string,\r\n mobileTel: string,\r\n startDate: string | moment.Moment | Date | null,\r\n leaveDate: string | moment.Moment | Date | null,\r\n keyWorker: boolean,\r\n statusId: number | null,\r\n photo: string,\r\n documentCount: number,\r\n trainingCount: number,\r\n qualificationCount: number,\r\n nUserId: number | null,\r\n nUserFirstName: string,\r\n nUserLastName: string\r\n                                }\r\n                           \r\n                                export interface IGetFileUploadUrlRequest {\r\n                                    originalFileName: string,\r\n ownerType: string\r\n                                }\r\n                            \r\n                                export interface IGetFileUploadUrlResult {\r\n                                    successful: boolean,\r\n errors: GetFileUploadUrlError[],\r\n s3Key: UUID,\r\n presignedPutUrl: string,\r\n expiresAt: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IAttachStaffFileRequest {\r\n                                    staffId: number,\r\n s3Key: UUID,\r\n originalFileName: string,\r\n extension: string,\r\n displayName: string,\r\n notes: string\r\n                                }\r\n                            \r\n                                export interface IAttachStaffFileResult {\r\n                                    successful: boolean,\r\n errors: AttachStaffFileError[],\r\n fileId: number\r\n                                }\r\n                            \r\n                                export interface IUpdateStaffFileRequest {\r\n                                    pid: number,\r\n displayName: string,\r\n notes: string\r\n                                }\r\n                            \r\n                                export interface IUpdateStaffFileResult {\r\n                                    successful: boolean,\r\n errors: UpdateStaffFileError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteStaffFileRequest {\r\n                                    pid: number\r\n                                }\r\n                            \r\n                                export interface IDeleteStaffFileResult {\r\n                                    successful: boolean,\r\n errors: DeleteStaffFileError[]\r\n                                }\r\n                            \r\n                                export interface IGetStaffFilesRequest {\r\n                                    staffId: number\r\n                                }\r\n                            \r\n                                export interface IGetStaffFilesResult {\r\n                                    successful: boolean,\r\n errors: GetStaffFilesError[],\r\n files: IGetStaffFilesCommandResultStaffFileResult[]\r\n                                }\r\n                            \r\n                                export interface IGetStaffFilesCommandResultStaffFileResult {\r\n                                    pId: number,\r\n staffID: number,\r\n nurseryID: number,\r\n s3Key: UUID,\r\n originalFileName: string,\r\n extension: string,\r\n displayName: string,\r\n notes: string,\r\n whenCreated: string | moment.Moment | Date,\r\n whenDeleted: string | moment.Moment | Date | null\r\n                                }\r\n                           \r\n                                export interface IGetStaffFileDownloadUrlRequest {\r\n                                    pid: number\r\n                                }\r\n                            \r\n                                export interface IGetStaffFileDownloadUrlResult {\r\n                                    successful: boolean,\r\n errors: GetStaffFileDownloadUrlError[],\r\n presignedGetUrl: string,\r\n expiresAt: string | moment.Moment | Date\r\n                                }\r\n                            \r\n                                export interface IGetStaffTrainingRequest {\r\n                                    staffId: number\r\n                                }\r\n                            \r\n                                export interface IGetStaffTrainingResult {\r\n                                    successful: boolean,\r\n errors: GetStaffTrainingError[],\r\n training: IGetStaffTrainingCommandResultStaffTrainingResult[]\r\n                                }\r\n                            \r\n                                export interface IGetStaffTrainingCommandResultStaffTrainingResult {\r\n                                    pId: number,\r\n staffId: number,\r\n trainingId: number,\r\n courseName: string,\r\n required: boolean | null,\r\n attended: string | moment.Moment | Date | null,\r\n achieved: string | moment.Moment | Date | null,\r\n expires: string | moment.Moment | Date | null,\r\n notes: string\r\n                                }\r\n                           \r\n                                export interface IAddStaffTrainingRequest {\r\n                                    staffId: number,\r\n trainingId: number,\r\n required: boolean,\r\n attended: string | moment.Moment | Date | null,\r\n achieved: string | moment.Moment | Date | null,\r\n expires: string | moment.Moment | Date | null,\r\n notes: string\r\n                                }\r\n                            \r\n                                export interface IAddStaffTrainingResult {\r\n                                    successful: boolean,\r\n errors: AddStaffTrainingError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateStaffTrainingRequest {\r\n                                    pid: number,\r\n required: boolean,\r\n attended: string | moment.Moment | Date | null,\r\n achieved: string | moment.Moment | Date | null,\r\n expires: string | moment.Moment | Date | null,\r\n notes: string\r\n                                }\r\n                            \r\n                                export interface IUpdateStaffTrainingResult {\r\n                                    successful: boolean,\r\n errors: UpdateStaffTrainingError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteStaffTrainingRequest {\r\n                                    pid: number\r\n                                }\r\n                            \r\n                                export interface IDeleteStaffTrainingResult {\r\n                                    successful: boolean,\r\n errors: DeleteStaffTrainingError[]\r\n                                }\r\n                            \r\n                                export interface IGetStaffQualificationsRequest {\r\n                                    staffId: number\r\n                                }\r\n                            \r\n                                export interface IGetStaffQualificationsResult {\r\n                                    successful: boolean,\r\n errors: GetStaffQualificationsError[],\r\n qualifications: IGetStaffQualificationsCommandResultStaffQualificationResult[]\r\n                                }\r\n                            \r\n                                export interface IGetStaffQualificationsCommandResultStaffQualificationResult {\r\n                                    pId: number,\r\n staffId: number,\r\n qualificationId: number,\r\n qualificationName: string,\r\n status: number | null,\r\n achievedDate: string | moment.Moment | Date | null,\r\n expiryDate: string | moment.Moment | Date | null,\r\n notes: string\r\n                                }\r\n                           \r\n                                export interface IAddStaffQualificationRequest {\r\n                                    staffId: number,\r\n qualificationId: number,\r\n status: number | null,\r\n achievedDate: string | moment.Moment | Date | null,\r\n expiryDate: string | moment.Moment | Date | null,\r\n notes: string\r\n                                }\r\n                            \r\n                                export interface IAddStaffQualificationResult {\r\n                                    successful: boolean,\r\n errors: AddStaffQualificationError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateStaffQualificationRequest {\r\n                                    pid: number,\r\n status: number | null,\r\n achievedDate: string | moment.Moment | Date | null,\r\n expiryDate: string | moment.Moment | Date | null,\r\n notes: string\r\n                                }\r\n                            \r\n                                export interface IUpdateStaffQualificationResult {\r\n                                    successful: boolean,\r\n errors: UpdateStaffQualificationError[]\r\n                                }\r\n                            \r\n                                export interface IDeleteStaffQualificationRequest {\r\n                                    pid: number\r\n                                }\r\n                            \r\n                                export interface IDeleteStaffQualificationResult {\r\n                                    successful: boolean,\r\n errors: DeleteStaffQualificationError[]\r\n                                }\r\n                            \r\n                                export interface IGetTrainingCoursesForNurseryRequest {\r\n                                    nurseryId: number\r\n                                }\r\n                            \r\n                                export interface IGetTrainingCoursesForNurseryResult {\r\n                                    successful: boolean,\r\n errors: GetTrainingCoursesForNurseryError[],\r\n courses: IGetTrainingCoursesForNurseryCommandResultTrainingCourseLookupItem[]\r\n                                }\r\n                            \r\n                                export interface IGetTrainingCoursesForNurseryCommandResultTrainingCourseLookupItem {\r\n                                    id: number,\r\n name: string\r\n                                }\r\n                           \r\n                                export interface IGetQualificationsForNurseryRequest {\r\n                                    nurseryId: number\r\n                                }\r\n                            \r\n                                export interface IGetQualificationsForNurseryResult {\r\n                                    successful: boolean,\r\n errors: GetQualificationsForNurseryError[],\r\n qualifications: IGetQualificationsForNurseryCommandResultQualificationLookupItem[]\r\n                                }\r\n                            \r\n                                export interface IGetQualificationsForNurseryCommandResultQualificationLookupItem {\r\n                                    id: number,\r\n name: string\r\n                                }\r\n                           \r\n                                export interface IGetNUsersForCurrentNurseryRequest {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IGetNUsersForCurrentNurseryResult {\r\n                                    successful: boolean,\r\n errors: GetNUsersForCurrentNurseryError[],\r\n nUsers: IGetNUsersForCurrentNurseryCommandResultNUserLookupItem[]\r\n                                }\r\n                            \r\n                                export interface IGetNUsersForCurrentNurseryCommandResultNUserLookupItem {\r\n                                    id: number,\r\n firstName: string,\r\n lastName: string,\r\n email: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusStaffManagementCommands {\r\n                    \r\n                            public onGetStaffDetails: Subject<RequestInfo<AbacusStaffManagement.IGetStaffDetailsRequest, AbacusStaffManagement.IGetStaffDetailsResult>> = new Subject();\r\n                        \r\n                            public onGetFileUploadUrl: Subject<RequestInfo<AbacusStaffManagement.IGetFileUploadUrlRequest, AbacusStaffManagement.IGetFileUploadUrlResult>> = new Subject();\r\n                        \r\n                            public onAttachStaffFile: Subject<RequestInfo<AbacusStaffManagement.IAttachStaffFileRequest, AbacusStaffManagement.IAttachStaffFileResult>> = new Subject();\r\n                        \r\n                            public onUpdateStaffFile: Subject<RequestInfo<AbacusStaffManagement.IUpdateStaffFileRequest, AbacusStaffManagement.IUpdateStaffFileResult>> = new Subject();\r\n                        \r\n                            public onDeleteStaffFile: Subject<RequestInfo<AbacusStaffManagement.IDeleteStaffFileRequest, AbacusStaffManagement.IDeleteStaffFileResult>> = new Subject();\r\n                        \r\n                            public onGetStaffFiles: Subject<RequestInfo<AbacusStaffManagement.IGetStaffFilesRequest, AbacusStaffManagement.IGetStaffFilesResult>> = new Subject();\r\n                        \r\n                            public onGetStaffFileDownloadUrl: Subject<RequestInfo<AbacusStaffManagement.IGetStaffFileDownloadUrlRequest, AbacusStaffManagement.IGetStaffFileDownloadUrlResult>> = new Subject();\r\n                        \r\n                            public onGetStaffTraining: Subject<RequestInfo<AbacusStaffManagement.IGetStaffTrainingRequest, AbacusStaffManagement.IGetStaffTrainingResult>> = new Subject();\r\n                        \r\n                            public onAddStaffTraining: Subject<RequestInfo<AbacusStaffManagement.IAddStaffTrainingRequest, AbacusStaffManagement.IAddStaffTrainingResult>> = new Subject();\r\n                        \r\n                            public onUpdateStaffTraining: Subject<RequestInfo<AbacusStaffManagement.IUpdateStaffTrainingRequest, AbacusStaffManagement.IUpdateStaffTrainingResult>> = new Subject();\r\n                        \r\n                            public onDeleteStaffTraining: Subject<RequestInfo<AbacusStaffManagement.IDeleteStaffTrainingRequest, AbacusStaffManagement.IDeleteStaffTrainingResult>> = new Subject();\r\n                        \r\n                            public onGetStaffQualifications: Subject<RequestInfo<AbacusStaffManagement.IGetStaffQualificationsRequest, AbacusStaffManagement.IGetStaffQualificationsResult>> = new Subject();\r\n                        \r\n                            public onAddStaffQualification: Subject<RequestInfo<AbacusStaffManagement.IAddStaffQualificationRequest, AbacusStaffManagement.IAddStaffQualificationResult>> = new Subject();\r\n                        \r\n                            public onUpdateStaffQualification: Subject<RequestInfo<AbacusStaffManagement.IUpdateStaffQualificationRequest, AbacusStaffManagement.IUpdateStaffQualificationResult>> = new Subject();\r\n                        \r\n                            public onDeleteStaffQualification: Subject<RequestInfo<AbacusStaffManagement.IDeleteStaffQualificationRequest, AbacusStaffManagement.IDeleteStaffQualificationResult>> = new Subject();\r\n                        \r\n                            public onGetTrainingCoursesForNursery: Subject<RequestInfo<AbacusStaffManagement.IGetTrainingCoursesForNurseryRequest, AbacusStaffManagement.IGetTrainingCoursesForNurseryResult>> = new Subject();\r\n                        \r\n                            public onGetQualificationsForNursery: Subject<RequestInfo<AbacusStaffManagement.IGetQualificationsForNurseryRequest, AbacusStaffManagement.IGetQualificationsForNurseryResult>> = new Subject();\r\n                        \r\n                            public onGetNUsersForCurrentNursery: Subject<RequestInfo<AbacusStaffManagement.IGetNUsersForCurrentNurseryRequest, AbacusStaffManagement.IGetNUsersForCurrentNurseryResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getStaffDetails(request : AbacusStaffManagement.IGetStaffDetailsRequest, overridenToken?: string): Promise<AbacusStaffManagement.IGetStaffDetailsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IGetStaffDetailsRequest, AbacusStaffManagement.IGetStaffDetailsResult>(request, 'AbacusStaffManagement', 'GetStaffDetails', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetStaffDetails.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getFileUploadUrl(request : AbacusStaffManagement.IGetFileUploadUrlRequest, overridenToken?: string): Promise<AbacusStaffManagement.IGetFileUploadUrlResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IGetFileUploadUrlRequest, AbacusStaffManagement.IGetFileUploadUrlResult>(request, 'AbacusStaffManagement', 'GetFileUploadUrl', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetFileUploadUrl.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async attachStaffFile(request : AbacusStaffManagement.IAttachStaffFileRequest, overridenToken?: string): Promise<AbacusStaffManagement.IAttachStaffFileResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IAttachStaffFileRequest, AbacusStaffManagement.IAttachStaffFileResult>(request, 'AbacusStaffManagement', 'AttachStaffFile', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onAttachStaffFile.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateStaffFile(request : AbacusStaffManagement.IUpdateStaffFileRequest, overridenToken?: string): Promise<AbacusStaffManagement.IUpdateStaffFileResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IUpdateStaffFileRequest, AbacusStaffManagement.IUpdateStaffFileResult>(request, 'AbacusStaffManagement', 'UpdateStaffFile', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateStaffFile.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteStaffFile(request : AbacusStaffManagement.IDeleteStaffFileRequest, overridenToken?: string): Promise<AbacusStaffManagement.IDeleteStaffFileResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IDeleteStaffFileRequest, AbacusStaffManagement.IDeleteStaffFileResult>(request, 'AbacusStaffManagement', 'DeleteStaffFile', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteStaffFile.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getStaffFiles(request : AbacusStaffManagement.IGetStaffFilesRequest, overridenToken?: string): Promise<AbacusStaffManagement.IGetStaffFilesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IGetStaffFilesRequest, AbacusStaffManagement.IGetStaffFilesResult>(request, 'AbacusStaffManagement', 'GetStaffFiles', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetStaffFiles.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getStaffFileDownloadUrl(request : AbacusStaffManagement.IGetStaffFileDownloadUrlRequest, overridenToken?: string): Promise<AbacusStaffManagement.IGetStaffFileDownloadUrlResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IGetStaffFileDownloadUrlRequest, AbacusStaffManagement.IGetStaffFileDownloadUrlResult>(request, 'AbacusStaffManagement', 'GetStaffFileDownloadUrl', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetStaffFileDownloadUrl.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getStaffTraining(request : AbacusStaffManagement.IGetStaffTrainingRequest, overridenToken?: string): Promise<AbacusStaffManagement.IGetStaffTrainingResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IGetStaffTrainingRequest, AbacusStaffManagement.IGetStaffTrainingResult>(request, 'AbacusStaffManagement', 'GetStaffTraining', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetStaffTraining.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async addStaffTraining(request : AbacusStaffManagement.IAddStaffTrainingRequest, overridenToken?: string): Promise<AbacusStaffManagement.IAddStaffTrainingResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IAddStaffTrainingRequest, AbacusStaffManagement.IAddStaffTrainingResult>(request, 'AbacusStaffManagement', 'AddStaffTraining', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onAddStaffTraining.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateStaffTraining(request : AbacusStaffManagement.IUpdateStaffTrainingRequest, overridenToken?: string): Promise<AbacusStaffManagement.IUpdateStaffTrainingResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IUpdateStaffTrainingRequest, AbacusStaffManagement.IUpdateStaffTrainingResult>(request, 'AbacusStaffManagement', 'UpdateStaffTraining', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateStaffTraining.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteStaffTraining(request : AbacusStaffManagement.IDeleteStaffTrainingRequest, overridenToken?: string): Promise<AbacusStaffManagement.IDeleteStaffTrainingResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IDeleteStaffTrainingRequest, AbacusStaffManagement.IDeleteStaffTrainingResult>(request, 'AbacusStaffManagement', 'DeleteStaffTraining', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteStaffTraining.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getStaffQualifications(request : AbacusStaffManagement.IGetStaffQualificationsRequest, overridenToken?: string): Promise<AbacusStaffManagement.IGetStaffQualificationsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IGetStaffQualificationsRequest, AbacusStaffManagement.IGetStaffQualificationsResult>(request, 'AbacusStaffManagement', 'GetStaffQualifications', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetStaffQualifications.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async addStaffQualification(request : AbacusStaffManagement.IAddStaffQualificationRequest, overridenToken?: string): Promise<AbacusStaffManagement.IAddStaffQualificationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IAddStaffQualificationRequest, AbacusStaffManagement.IAddStaffQualificationResult>(request, 'AbacusStaffManagement', 'AddStaffQualification', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onAddStaffQualification.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateStaffQualification(request : AbacusStaffManagement.IUpdateStaffQualificationRequest, overridenToken?: string): Promise<AbacusStaffManagement.IUpdateStaffQualificationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IUpdateStaffQualificationRequest, AbacusStaffManagement.IUpdateStaffQualificationResult>(request, 'AbacusStaffManagement', 'UpdateStaffQualification', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateStaffQualification.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteStaffQualification(request : AbacusStaffManagement.IDeleteStaffQualificationRequest, overridenToken?: string): Promise<AbacusStaffManagement.IDeleteStaffQualificationResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IDeleteStaffQualificationRequest, AbacusStaffManagement.IDeleteStaffQualificationResult>(request, 'AbacusStaffManagement', 'DeleteStaffQualification', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteStaffQualification.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getTrainingCoursesForNursery(request : AbacusStaffManagement.IGetTrainingCoursesForNurseryRequest, overridenToken?: string): Promise<AbacusStaffManagement.IGetTrainingCoursesForNurseryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IGetTrainingCoursesForNurseryRequest, AbacusStaffManagement.IGetTrainingCoursesForNurseryResult>(request, 'AbacusStaffManagement', 'GetTrainingCoursesForNursery', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetTrainingCoursesForNursery.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getQualificationsForNursery(request : AbacusStaffManagement.IGetQualificationsForNurseryRequest, overridenToken?: string): Promise<AbacusStaffManagement.IGetQualificationsForNurseryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IGetQualificationsForNurseryRequest, AbacusStaffManagement.IGetQualificationsForNurseryResult>(request, 'AbacusStaffManagement', 'GetQualificationsForNursery', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetQualificationsForNursery.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getNUsersForCurrentNursery(request : AbacusStaffManagement.IGetNUsersForCurrentNurseryRequest, overridenToken?: string): Promise<AbacusStaffManagement.IGetNUsersForCurrentNurseryResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusStaffManagement.IGetNUsersForCurrentNurseryRequest, AbacusStaffManagement.IGetNUsersForCurrentNurseryResult>(request, 'AbacusStaffManagement', 'GetNUsersForCurrentNursery', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetNUsersForCurrentNursery.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusCommunication {\r\n                    \r\n                            export enum SendEmailToSelfError {\r\n                                emptySubject = 'emptySubject',\r\n                                emptyBody = 'emptyBody',\r\n                                userLoginNotFound = 'userLoginNotFound',\r\n                                invalidAttachmentType = 'invalidAttachmentType',\r\n                                attachmentsTooLarge = 'attachmentsTooLarge'\r\n                            }\r\n                        \r\n                            export enum SendStaffEmailError {\r\n                                staffNotFound = 'staffNotFound',\r\n                                subjectIsEmpty = 'subjectIsEmpty',\r\n                                staffEmailMissing = 'staffEmailMissing',\r\n                                attachmentsTooLarge = 'attachmentsTooLarge',\r\n                                invalidAttachmentType = 'invalidAttachmentType'\r\n                            }\r\n                        \r\n                                export interface ISendEmailToSelfRequest {\r\n                                    subject: string,\r\n body: string,\r\n attachments: ISendEmailToSelfCommandSelfEmailAttachment[]\r\n                                }\r\n                            \r\n                                export interface ISendEmailToSelfResult {\r\n                                    successful: boolean,\r\n errors: SendEmailToSelfError[]\r\n                                }\r\n                            \r\n                                export interface ISendEmailToSelfCommandSelfEmailAttachment {\r\n                                    fileName: string,\r\n base64FileContent: string\r\n                                }\r\n                           \r\n                                export interface ISendStaffEmailRequest {\r\n                                    staffIds: UUID[],\r\n emailSubject: string,\r\n emailBody: string,\r\n attachments: ISendStaffEmailCommandStaffEmailAttachmentModel[]\r\n                                }\r\n                            \r\n                                export interface ISendStaffEmailResult {\r\n                                    successful: boolean,\r\n errors: SendStaffEmailError[]\r\n                                }\r\n                            \r\n                                export interface ISendStaffEmailCommandStaffEmailAttachmentModel {\r\n                                    fileName: string,\r\n base64FileContent: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusCommunicationCommands {\r\n                    \r\n                            public onSendEmailToSelf: Subject<RequestInfo<AbacusCommunication.ISendEmailToSelfRequest, AbacusCommunication.ISendEmailToSelfResult>> = new Subject();\r\n                        \r\n                            public onSendStaffEmail: Subject<RequestInfo<AbacusCommunication.ISendStaffEmailRequest, AbacusCommunication.ISendStaffEmailResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async sendEmailToSelf(request : AbacusCommunication.ISendEmailToSelfRequest, overridenToken?: string): Promise<AbacusCommunication.ISendEmailToSelfResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusCommunication.ISendEmailToSelfRequest, AbacusCommunication.ISendEmailToSelfResult>(request, 'AbacusCommunication', 'SendEmailToSelf', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendEmailToSelf.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async sendStaffEmail(request : AbacusCommunication.ISendStaffEmailRequest, overridenToken?: string): Promise<AbacusCommunication.ISendStaffEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusCommunication.ISendStaffEmailRequest, AbacusCommunication.ISendStaffEmailResult>(request, 'AbacusCommunication', 'SendStaffEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSendStaffEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusSettings {\r\n                    \r\n                                export interface IIsNurseryFootstepsStandaloneResult {\r\n                                    hasAccess: boolean\r\n                                }\r\n                            \r\n                                export interface IChangeCheckInCodeRequest {\r\n                                    disableCheckin: boolean\r\n                                }\r\n                            \r\n                                export interface IChangeCheckInCodeResult {\r\n                                    checkInGuid: UUID | null\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusSettingsCommands {\r\n                    \r\n                            public onIsNurseryFootstepsStandalone: Subject<AbacusSettings.IIsNurseryFootstepsStandaloneResult> = new Subject();\r\n                        \r\n                            public onChangeCheckInCode: Subject<RequestInfo<AbacusSettings.IChangeCheckInCodeRequest, AbacusSettings.IChangeCheckInCodeResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async isNurseryFootstepsStandalone(overridenToken?: string): Promise<AbacusSettings.IIsNurseryFootstepsStandaloneResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusSettings.IIsNurseryFootstepsStandaloneResult>({}, 'AbacusSettings', 'IsNurseryFootstepsStandalone', overridenToken);\r\n                                        \r\n                                            this.onIsNurseryFootstepsStandalone.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async changeCheckInCode(request : AbacusSettings.IChangeCheckInCodeRequest, overridenToken?: string): Promise<AbacusSettings.IChangeCheckInCodeResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusSettings.IChangeCheckInCodeRequest, AbacusSettings.IChangeCheckInCodeResult>(request, 'AbacusSettings', 'ChangeCheckInCode', overridenToken);\r\n                                        \r\n                                            this.onChangeCheckInCode.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusParentaServicesCarerLogin {\r\n                    \r\n                            export enum UpdateCarerLoginEmailError {\r\n                                nurseryNotFound = 'nurseryNotFound',\r\n                                adults2GuidIsRequired = 'adults2GuidIsRequired',\r\n                                emailAddressIsRequired = 'emailAddressIsRequired',\r\n                                carerLoginNotFound = 'carerLoginNotFound',\r\n                                invalidEmailAddress = 'invalidEmailAddress',\r\n                                duplicateEmailAddress = 'duplicateEmailAddress'\r\n                            }\r\n                        \r\n                                export interface IUpdateCarerLoginEmailRequest {\r\n                                    adults2Guid: UUID,\r\n emailAddress: string\r\n                                }\r\n                            \r\n                                export interface IUpdateCarerLoginEmailResult {\r\n                                    successful: boolean,\r\n errors: UpdateCarerLoginEmailError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusParentaServicesCarerLoginCommands {\r\n                    \r\n                            public onUpdateCarerLoginEmail: Subject<RequestInfo<AbacusParentaServicesCarerLogin.IUpdateCarerLoginEmailRequest, AbacusParentaServicesCarerLogin.IUpdateCarerLoginEmailResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async updateCarerLoginEmail(request : AbacusParentaServicesCarerLogin.IUpdateCarerLoginEmailRequest, overridenToken?: string): Promise<AbacusParentaServicesCarerLogin.IUpdateCarerLoginEmailResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusParentaServicesCarerLogin.IUpdateCarerLoginEmailRequest, AbacusParentaServicesCarerLogin.IUpdateCarerLoginEmailResult>(request, 'AbacusParentaServicesCarerLogin', 'UpdateCarerLoginEmail', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateCarerLoginEmail.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusParentaServicesUsers {\r\n                    \r\n                            export enum UnlockParentaServicesUserError {\r\n                                userDoesNotExist = 'userDoesNotExist',\r\n                                userIsNotLocked = 'userIsNotLocked'\r\n                            }\r\n                        \r\n                                export interface IGetAllAbacusUsersResult {\r\n                                    users: IGetAllAbacusUsersCommandResultParentaServicesUserModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllAbacusUsersCommandResultParentaServicesUserModel {\r\n                                    id: number,\r\n firstName: string,\r\n lastName: string,\r\n email: string,\r\n username: string,\r\n userType: ParentaServicesUserType,\r\n dateOfBirth: string | moment.Moment | Date,\r\n userCode: ParentaServicesUserCode,\r\n nUserGuid: UUID | null,\r\n homeTel: string,\r\n workTel: string,\r\n usesLegacyLogin: boolean,\r\n twofactorActivated: boolean,\r\n mirkwoodUserId: UUID,\r\n isLocked: boolean,\r\n disabled: boolean\r\n                                }\r\n                           \r\n                                export interface IUnlockParentaServicesUserRequest {\r\n                                    nUserGuid: UUID\r\n                                }\r\n                            \r\n                                export interface IUnlockParentaServicesUserResult {\r\n                                    successful: boolean,\r\n errors: UnlockParentaServicesUserError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusParentaServicesUsersCommands {\r\n                    \r\n                            public onGetAllAbacusUsers: Subject<AbacusParentaServicesUsers.IGetAllAbacusUsersResult> = new Subject();\r\n                        \r\n                            public onUnlockParentaServicesUser: Subject<RequestInfo<AbacusParentaServicesUsers.IUnlockParentaServicesUserRequest, AbacusParentaServicesUsers.IUnlockParentaServicesUserResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getAllAbacusUsers(overridenToken?: string): Promise<AbacusParentaServicesUsers.IGetAllAbacusUsersResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusParentaServicesUsers.IGetAllAbacusUsersResult>({}, 'AbacusParentaServicesUsers', 'GetAllAbacusUsers', overridenToken);\r\n                                        \r\n                                            this.onGetAllAbacusUsers.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async unlockParentaServicesUser(request : AbacusParentaServicesUsers.IUnlockParentaServicesUserRequest, overridenToken?: string): Promise<AbacusParentaServicesUsers.IUnlockParentaServicesUserResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusParentaServicesUsers.IUnlockParentaServicesUserRequest, AbacusParentaServicesUsers.IUnlockParentaServicesUserResult>(request, 'AbacusParentaServicesUsers', 'UnlockParentaServicesUser', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUnlockParentaServicesUser.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusConsumableRule {\r\n                    \r\n                            export enum CreateConsumableRuleError {\r\n                                nameCannotBeEmpty = 'nameCannotBeEmpty',\r\n                                typeCannotBeEmpty = 'typeCannotBeEmpty',\r\n                                costMustBeGreaterThanZero = 'costMustBeGreaterThanZero',\r\n                                duplicateName = 'duplicateName',\r\n                                nameTooLong = 'nameTooLong',\r\n                                descriptionTooLong = 'descriptionTooLong'\r\n                            }\r\n                        \r\n                            export enum UpdateConsumableRuleError {\r\n                                nameCannotBeEmpty = 'nameCannotBeEmpty',\r\n                                typeCannotBeEmpty = 'typeCannotBeEmpty',\r\n                                costMustBeGreaterThanZero = 'costMustBeGreaterThanZero',\r\n                                duplicateName = 'duplicateName',\r\n                                consumableRuleNotFound = 'consumableRuleNotFound',\r\n                                nameTooLong = 'nameTooLong',\r\n                                descriptionTooLong = 'descriptionTooLong'\r\n                            }\r\n                        \r\n                            export enum DeleteConsumableRuleError {\r\n                                consumableNotFound = 'consumableNotFound',\r\n                                consumableRuleInUse = 'consumableRuleInUse'\r\n                            }\r\n                        \r\n                            export enum ApplyConsumablesToChildrenSessionsError {\r\n                                atLeastOneChildIdDoesNotExist = 'atLeastOneChildIdDoesNotExist',\r\n                                currentOperationIsLocked = 'currentOperationIsLocked'\r\n                            }\r\n                        \r\n                            export enum GetAllConsumablesForChildError {\r\n                                invalidChildId = 'invalidChildId',\r\n                                consumablesNotFound = 'consumablesNotFound'\r\n                            }\r\n                        \r\n                            export enum SetConsumableRulesForChildError {\r\n                                childNotFound = 'childNotFound',\r\n                                invalidRuleIds = 'invalidRuleIds'\r\n                            }\r\n                        \r\n                            export enum ClearConsumableCacheForDatesError {\r\n                                invalidDate = 'invalidDate'\r\n                            }\r\n                        \r\n                                export interface ICreateConsumableRuleRequest {\r\n                                    consumableType: ConsumableType,\r\n name: string,\r\n description: string,\r\n cost: number\r\n                                }\r\n                            \r\n                                export interface ICreateConsumableRuleResult {\r\n                                    successful: boolean,\r\n errors: CreateConsumableRuleError[]\r\n                                }\r\n                            \r\n                                export interface IUpdateConsumableRuleRequest {\r\n                                    id: UUID,\r\n consumableType: ConsumableType,\r\n name: string,\r\n description: string,\r\n cost: number\r\n                                }\r\n                            \r\n                                export interface IUpdateConsumableRuleResult {\r\n                                    successful: boolean,\r\n childIdsToUpdate: UUID[],\r\n errors: UpdateConsumableRuleError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllConsumableRulesResult {\r\n                                    consumableRules: IGetAllConsumableRulesCommandResultConsumableRuleModel[]\r\n                                }\r\n                            \r\n                                export interface IGetAllConsumableRulesCommandResultConsumableRuleModel {\r\n                                    consumableRuleId: UUID,\r\n name: string,\r\n consumableType: ConsumableType,\r\n description: string,\r\n cost: number,\r\n createdDate: string | moment.Moment | Date\r\n                                }\r\n                           \r\n                                export interface IDeleteConsumableRuleRequest {\r\n                                    id: UUID\r\n                                }\r\n                            \r\n                                export interface IDeleteConsumableRuleResult {\r\n                                    successful: boolean,\r\n errors: DeleteConsumableRuleError[]\r\n                                }\r\n                            \r\n                                export interface IApplyConsumablesToChildrenSessionsRequest {\r\n                                    childIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface IApplyConsumablesToChildrenSessionsResult {\r\n                                    errors: ApplyConsumablesToChildrenSessionsError[],\r\n childConsumables: IApplyConsumablesToChildrenSessionsCommandResultAppliedConsumableCount[],\r\n productsDeletedCount: number,\r\n productsAddedCount: number,\r\n productsUpdatedCount: number\r\n                                }\r\n                            \r\n                                export interface IApplyConsumablesToChildrenSessionsCommandResultAppliedConsumableCount {\r\n                                    childId: number,\r\n addedPurchaseCount: number,\r\n deletedPurchaseCount: number,\r\n updatedPurchaseCount: number\r\n                                }\r\n                           \r\n                                export interface IGetAllConsumablesForChildRequest {\r\n                                    childId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetAllConsumablesForChildResult {\r\n                                    successful: boolean,\r\n errors: GetAllConsumablesForChildError[],\r\n consumableRules: IGetAllConsumablesForChildCommandResultChildConsumables[]\r\n                                }\r\n                            \r\n                                export interface IGetAllConsumablesForChildCommandResultChildConsumables {\r\n                                    consumableRuleId: UUID,\r\n consumableName: string\r\n                                }\r\n                           \r\n                                export interface ISetConsumableRulesForChildRequest {\r\n                                    childId: UUID,\r\n consumableRuleIds: UUID[]\r\n                                }\r\n                            \r\n                                export interface ISetConsumableRulesForChildResult {\r\n                                    successful: boolean,\r\n errors: SetConsumableRulesForChildError[]\r\n                                }\r\n                            \r\n                                export interface IClearConsumableCacheForDatesRequest {\r\n                                    dates: any; // System.String[]\r\n                                }\r\n                            \r\n                                export interface IClearConsumableCacheForDatesResult {\r\n                                    successful: boolean,\r\n errors: ClearConsumableCacheForDatesError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusConsumableRuleCommands {\r\n                    \r\n                            public onCreateConsumableRule: Subject<RequestInfo<AbacusConsumableRule.ICreateConsumableRuleRequest, AbacusConsumableRule.ICreateConsumableRuleResult>> = new Subject();\r\n                        \r\n                            public onUpdateConsumableRule: Subject<RequestInfo<AbacusConsumableRule.IUpdateConsumableRuleRequest, AbacusConsumableRule.IUpdateConsumableRuleResult>> = new Subject();\r\n                        \r\n                            public onGetAllConsumableRules: Subject<AbacusConsumableRule.IGetAllConsumableRulesResult> = new Subject();\r\n                        \r\n                            public onDeleteConsumableRule: Subject<RequestInfo<AbacusConsumableRule.IDeleteConsumableRuleRequest, AbacusConsumableRule.IDeleteConsumableRuleResult>> = new Subject();\r\n                        \r\n                            public onApplyConsumablesToChildrenSessions: Subject<RequestInfo<AbacusConsumableRule.IApplyConsumablesToChildrenSessionsRequest, AbacusConsumableRule.IApplyConsumablesToChildrenSessionsResult>> = new Subject();\r\n                        \r\n                            public onGetAllConsumablesForChild: Subject<RequestInfo<AbacusConsumableRule.IGetAllConsumablesForChildRequest, AbacusConsumableRule.IGetAllConsumablesForChildResult>> = new Subject();\r\n                        \r\n                            public onSetConsumableRulesForChild: Subject<RequestInfo<AbacusConsumableRule.ISetConsumableRulesForChildRequest, AbacusConsumableRule.ISetConsumableRulesForChildResult>> = new Subject();\r\n                        \r\n                            public onClearConsumableCacheForDates: Subject<RequestInfo<AbacusConsumableRule.IClearConsumableCacheForDatesRequest, AbacusConsumableRule.IClearConsumableCacheForDatesResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async createConsumableRule(request : AbacusConsumableRule.ICreateConsumableRuleRequest, overridenToken?: string): Promise<AbacusConsumableRule.ICreateConsumableRuleResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusConsumableRule.ICreateConsumableRuleRequest, AbacusConsumableRule.ICreateConsumableRuleResult>(request, 'AbacusConsumableRule', 'CreateConsumableRule', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onCreateConsumableRule.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async updateConsumableRule(request : AbacusConsumableRule.IUpdateConsumableRuleRequest, overridenToken?: string): Promise<AbacusConsumableRule.IUpdateConsumableRuleResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusConsumableRule.IUpdateConsumableRuleRequest, AbacusConsumableRule.IUpdateConsumableRuleResult>(request, 'AbacusConsumableRule', 'UpdateConsumableRule', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onUpdateConsumableRule.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllConsumableRules(overridenToken?: string): Promise<AbacusConsumableRule.IGetAllConsumableRulesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusConsumableRule.IGetAllConsumableRulesResult>({}, 'AbacusConsumableRule', 'GetAllConsumableRules', overridenToken);\r\n                                        \r\n                                            this.onGetAllConsumableRules.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async deleteConsumableRule(request : AbacusConsumableRule.IDeleteConsumableRuleRequest, overridenToken?: string): Promise<AbacusConsumableRule.IDeleteConsumableRuleResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusConsumableRule.IDeleteConsumableRuleRequest, AbacusConsumableRule.IDeleteConsumableRuleResult>(request, 'AbacusConsumableRule', 'DeleteConsumableRule', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onDeleteConsumableRule.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async applyConsumablesToChildrenSessions(request : AbacusConsumableRule.IApplyConsumablesToChildrenSessionsRequest, overridenToken?: string): Promise<AbacusConsumableRule.IApplyConsumablesToChildrenSessionsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusConsumableRule.IApplyConsumablesToChildrenSessionsRequest, AbacusConsumableRule.IApplyConsumablesToChildrenSessionsResult>(request, 'AbacusConsumableRule', 'ApplyConsumablesToChildrenSessions', overridenToken);\r\n                                        \r\n                                            this.onApplyConsumablesToChildrenSessions.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getAllConsumablesForChild(request : AbacusConsumableRule.IGetAllConsumablesForChildRequest, overridenToken?: string): Promise<AbacusConsumableRule.IGetAllConsumablesForChildResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusConsumableRule.IGetAllConsumablesForChildRequest, AbacusConsumableRule.IGetAllConsumablesForChildResult>(request, 'AbacusConsumableRule', 'GetAllConsumablesForChild', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetAllConsumablesForChild.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async setConsumableRulesForChild(request : AbacusConsumableRule.ISetConsumableRulesForChildRequest, overridenToken?: string): Promise<AbacusConsumableRule.ISetConsumableRulesForChildResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusConsumableRule.ISetConsumableRulesForChildRequest, AbacusConsumableRule.ISetConsumableRulesForChildResult>(request, 'AbacusConsumableRule', 'SetConsumableRulesForChild', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSetConsumableRulesForChild.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async clearConsumableCacheForDates(request : AbacusConsumableRule.IClearConsumableCacheForDatesRequest, overridenToken?: string): Promise<AbacusConsumableRule.IClearConsumableCacheForDatesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusConsumableRule.IClearConsumableCacheForDatesRequest, AbacusConsumableRule.IClearConsumableCacheForDatesResult>(request, 'AbacusConsumableRule', 'ClearConsumableCacheForDates', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onClearConsumableCacheForDates.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusMarketing {\r\n                    \r\n                                export interface IGetMarketingDisplayPagesToShowResult {\r\n                                    pageLinks: IGetMarketingDisplayPagesToShowCommandResultPageLink[]\r\n                                }\r\n                            \r\n                                export interface IGetMarketingDisplayPagesToShowCommandResultPageLink {\r\n                                    id: UUID,\r\n url: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusMarketingCommands {\r\n                    \r\n                            public onGetMarketingDisplayPagesToShow: Subject<AbacusMarketing.IGetMarketingDisplayPagesToShowResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getMarketingDisplayPagesToShow(overridenToken?: string): Promise<AbacusMarketing.IGetMarketingDisplayPagesToShowResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusMarketing.IGetMarketingDisplayPagesToShowResult>({}, 'AbacusMarketing', 'GetMarketingDisplayPagesToShow', overridenToken);\r\n                                        \r\n                                            this.onGetMarketingDisplayPagesToShow.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusReports {\r\n                    \r\n                            export enum HoursBookedError {\r\n                                startDateAfterEndDate = 'startDateAfterEndDate'\r\n                            }\r\n                        \r\n                                export interface IHoursBookedRequest {\r\n                                    startDate: any; // NodaTime.LocalDate,\r\n endDate: any; // NodaTime.LocalDate,\r\n includeLeftChildren: boolean,\r\n includeExtraSessions: boolean,\r\n sortedBy: SortedBy\r\n                                }\r\n                            \r\n                                export interface IHoursBookedResult {\r\n                                    successful: boolean,\r\n hoursBookedForChildren: IHoursBookedResultHoursBookedForChild[],\r\n errors: HoursBookedError[]\r\n                                }\r\n                            \r\n                                export interface IHoursBookedResultHoursBookedForChild {\r\n                                    childId: number,\r\n firstName: string,\r\n lastName: string,\r\n dateOfBirth: string | moment.Moment | Date,\r\n hoursBooked: number,\r\n fundedHoursBooked: number\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusReportsCommands {\r\n                    \r\n                            public onHoursBooked: Subject<RequestInfo<AbacusReports.IHoursBookedRequest, AbacusReports.IHoursBookedResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async hoursBooked(request : AbacusReports.IHoursBookedRequest, overridenToken?: string): Promise<AbacusReports.IHoursBookedResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusReports.IHoursBookedRequest, AbacusReports.IHoursBookedResult>(request, 'AbacusReports', 'HoursBooked', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onHoursBooked.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusFundedSession {\r\n                    \r\n                            export enum GetFundedSessionTermRangeSummaryForChildError {\r\n                                noChildId = 'noChildId',\r\n                                childNotFound = 'childNotFound',\r\n                                wrongNursery = 'wrongNursery'\r\n                            }\r\n                        \r\n                                export interface IGetFundedSessionTermRangeSummaryForChildRequest {\r\n                                    childGuidId: UUID\r\n                                }\r\n                            \r\n                                export interface IGetFundedSessionTermRangeSummaryForChildResult {\r\n                                    fundedSessionTermGroupRangeSummaries: IGetFundedSessionTermRangeSummaryForChildCommandResultFundedSessionTermGroupRangeSummary[],\r\n successful: boolean,\r\n errors: GetFundedSessionTermRangeSummaryForChildError[]\r\n                                }\r\n                            \r\n                                export interface IGetFundedSessionTermRangeSummaryForChildCommandResultFundedSessionTermGroupRangeSummary {\r\n                                    childId: number,\r\n termGroupId: number,\r\n startSessionDate: string | moment.Moment | Date,\r\n endSessionDate: string | moment.Moment | Date,\r\n totalMinutesBooked: number,\r\n termGroupName: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusFundedSessionCommands {\r\n                    \r\n                            public onGetFundedSessionTermRangeSummaryForChild: Subject<RequestInfo<AbacusFundedSession.IGetFundedSessionTermRangeSummaryForChildRequest, AbacusFundedSession.IGetFundedSessionTermRangeSummaryForChildResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getFundedSessionTermRangeSummaryForChild(request : AbacusFundedSession.IGetFundedSessionTermRangeSummaryForChildRequest, overridenToken?: string): Promise<AbacusFundedSession.IGetFundedSessionTermRangeSummaryForChildResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusFundedSession.IGetFundedSessionTermRangeSummaryForChildRequest, AbacusFundedSession.IGetFundedSessionTermRangeSummaryForChildResult>(request, 'AbacusFundedSession', 'GetFundedSessionTermRangeSummaryForChild', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetFundedSessionTermRangeSummaryForChild.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusEnquiries {\r\n                    \r\n                            export enum GetPublicEnquiryFormByFormIdentifierError {\r\n                                formNotFound = 'formNotFound'\r\n                            }\r\n                        \r\n                            export enum SubmitPublicEnquiryFormError {\r\n                                formNotFound = 'formNotFound',\r\n                                missingMandatoryFields = 'missingMandatoryFields'\r\n                            }\r\n                        \r\n                                export interface IGetPublicEnquiryFormsResult {\r\n                                    successful: boolean,\r\n publicEnquiryForms: IGetPublicEnquiryFormsResultPublicEnquiryFormModel[]\r\n                                }\r\n                            \r\n                                export interface IGetPublicEnquiryFormsResultPublicEnquiryFormModel {\r\n                                    id: UUID,\r\n name: string,\r\n description: string,\r\n formLinkIdentifier: UUID,\r\n customCss: string,\r\n customFieldsCsv: string,\r\n mandatoryFieldsCsv: string,\r\n systemFieldsCsv: string,\r\n requireCaptcha: boolean\r\n                                }\r\n                           \r\n                                export interface IGetPublicEnquiryFormByFormIdentifierRequest {\r\n                                    formLinkIdentifier: UUID\r\n                                }\r\n                            \r\n                                export interface IGetPublicEnquiryFormByFormIdentifierResult {\r\n                                    successful: boolean,\r\n id: UUID,\r\n name: string,\r\n description: string,\r\n customCss: string,\r\n requireCaptcha: boolean,\r\n knownEnquiryFields: IGetPublicEnquiryFormByFormIdentifierResultKnownEnquiryFieldModel[],\r\n errors: GetPublicEnquiryFormByFormIdentifierError[],\r\n nurseryName: string\r\n                                }\r\n                            \r\n                                export interface IGetPublicEnquiryFormByFormIdentifierResultKnownEnquiryFieldModel {\r\n                                    fieldLabel: string,\r\n fieldName: string,\r\n category: FieldCategory,\r\n fieldType: EnquiryFieldType,\r\n mandatory: boolean\r\n                                }\r\n                           \r\n                                export interface ISubmitPublicEnquiryFormRequest {\r\n                                    formLinkIdentifier: UUID,\r\n fieldValues: ISubmitPublicEnquiryFormCommandEnquiryFieldValue[]\r\n                                }\r\n                            \r\n                                export interface ISubmitPublicEnquiryFormResult {\r\n                                    successful: boolean,\r\n errors: SubmitPublicEnquiryFormError[]\r\n                                }\r\n                            \r\n                                export interface ISubmitPublicEnquiryFormCommandEnquiryFieldValue {\r\n                                    fieldName: string,\r\n value: string\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusEnquiriesCommands {\r\n                    \r\n                            public onGetPublicEnquiryForms: Subject<AbacusEnquiries.IGetPublicEnquiryFormsResult> = new Subject();\r\n                        \r\n                            public onGetPublicEnquiryFormByFormIdentifier: Subject<RequestInfo<AbacusEnquiries.IGetPublicEnquiryFormByFormIdentifierRequest, AbacusEnquiries.IGetPublicEnquiryFormByFormIdentifierResult>> = new Subject();\r\n                        \r\n                            public onSubmitPublicEnquiryForm: Subject<RequestInfo<AbacusEnquiries.ISubmitPublicEnquiryFormRequest, AbacusEnquiries.ISubmitPublicEnquiryFormResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async getPublicEnquiryForms(overridenToken?: string): Promise<AbacusEnquiries.IGetPublicEnquiryFormsResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusEnquiries.IGetPublicEnquiryFormsResult>({}, 'AbacusEnquiries', 'GetPublicEnquiryForms', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetPublicEnquiryForms.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getPublicEnquiryFormByFormIdentifier(request : AbacusEnquiries.IGetPublicEnquiryFormByFormIdentifierRequest, overridenToken?: string): Promise<AbacusEnquiries.IGetPublicEnquiryFormByFormIdentifierResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusEnquiries.IGetPublicEnquiryFormByFormIdentifierRequest, AbacusEnquiries.IGetPublicEnquiryFormByFormIdentifierResult>(request, 'AbacusEnquiries', 'GetPublicEnquiryFormByFormIdentifier', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onGetPublicEnquiryFormByFormIdentifier.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async submitPublicEnquiryForm(request : AbacusEnquiries.ISubmitPublicEnquiryFormRequest, overridenToken?: string): Promise<AbacusEnquiries.ISubmitPublicEnquiryFormResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusEnquiries.ISubmitPublicEnquiryFormRequest, AbacusEnquiries.ISubmitPublicEnquiryFormResult>(request, 'AbacusEnquiries', 'SubmitPublicEnquiryForm', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onSubmitPublicEnquiryForm.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace AbacusFinance {\r\n                    \r\n                            export enum ClassifyInvoiceSelectionByAccountTypeCommandError {\r\n                                \r\n                            }\r\n                        \r\n                            export enum EmailInvoiceToCarerError {\r\n                                invoiceNotFound = 'invoiceNotFound',\r\n                                carerDoesNotHaveEmail = 'carerDoesNotHaveEmail',\r\n                                emailTemplateNotFound = 'emailTemplateNotFound',\r\n                                childNotFound = 'childNotFound',\r\n                                invoiceNotEligibleForEmail = 'invoiceNotEligibleForEmail'\r\n                            }\r\n                        \r\n                            export enum GetLegacyOutstandingCountCommandError {\r\n                                unexpectedFailure = 'unexpectedFailure'\r\n                            }\r\n                        \r\n                            export enum GetInvoicesProcessedTodayCommandError {\r\n                                unexpectedFailure = 'unexpectedFailure'\r\n                            }\r\n                        \r\n                                export interface IGetInvoicesCommandRequest {\r\n                                    searchStartDate: string | moment.Moment | Date,\r\n searchEndDate: string | moment.Moment | Date,\r\n invoiceIds: number[],\r\n searchType: SearchType,\r\n hideSent: boolean,\r\n searchTerm: string\r\n                                }\r\n                            \r\n                                export interface IGetInvoicesCommandResult {\r\n                                    invoices: IGetInvoicesCommandResultInvoiceItem[]\r\n                                }\r\n                            \r\n                                export interface IGetInvoicesCommandResultInvoiceItem {\r\n                                    invoiceID: number,\r\n nurseryID: number,\r\n invoiceDate: string | moment.Moment | Date | null,\r\n startDate: string | moment.Moment | Date,\r\n endDate: string | moment.Moment | Date,\r\n invoiceNumber: string,\r\n childID: number | null,\r\n childName: string,\r\n description: string,\r\n paidAmount: number,\r\n totalCost: number,\r\n finalCost: number,\r\n adultID: number,\r\n adultName: string,\r\n billDesc: string,\r\n status: number,\r\n invoiceType: number,\r\n masterInvoiceID: string,\r\n prevBal: number,\r\n latePaymentFees: number,\r\n nurseryHolidayDiscount: number,\r\n childHolidayDiscount: number,\r\n actualInvoiceDate: string | moment.Moment | Date | null,\r\n accountType: number | null,\r\n lEAReclaimValue: number,\r\n numRegSessions: number,\r\n numExtSessions: number,\r\n numBreakfasts: number,\r\n numLunches: number,\r\n numDinners: number,\r\n numSuppers: number,\r\n regSessionCost: number,\r\n extSessionCost: number,\r\n breakfastCost: number,\r\n lunchCost: number,\r\n dinnerCost: number,\r\n supperCost: number,\r\n nEGRefund: number,\r\n numNEGSessions: number,\r\n productCost: number,\r\n sibDiscType: number,\r\n sibDiscAmount: number,\r\n genDiscType: number,\r\n genDiscAmount: number,\r\n noOFRegFEHours: number | null,\r\n noOFExtFEHours: number | null,\r\n totalFEHours: number | null,\r\n applyFlatRate: number | null,\r\n rollUpInvoices: boolean,\r\n includeExtras: boolean,\r\n includeBroughtForwardBalance: boolean,\r\n includeRemittanceAdvice: boolean,\r\n lateFeeCalculated: boolean,\r\n emailSent: boolean,\r\n eligibleForEmail: boolean\r\n                                }\r\n                           \r\n                                export interface IClassifyInvoiceSelectionByAccountTypeCommandRequest {\r\n                                    nurseryId: number,\r\n masterInvoiceIdsCsv: string\r\n                                }\r\n                            \r\n                                export interface IClassifyInvoiceSelectionByAccountTypeCommandResult {\r\n                                    calendarMonthlyCount: number,\r\n averageMonthlyCount: number,\r\n legacyCount: number,\r\n legacyMasterInvoiceIdsCsv: string,\r\n errors: ClassifyInvoiceSelectionByAccountTypeCommandError[]\r\n                                }\r\n                            \r\n                                export interface IGetAllInvoiceEmailTemplatesResult {\r\n                                    templates: IGetAllInvoiceEmailTemplatesResultLetterTemplate[]\r\n                                }\r\n                            \r\n                                export interface IGetAllInvoiceEmailTemplatesResultLetterTemplate {\r\n                                    letterId: number,\r\n letterName: string\r\n                                }\r\n                           \r\n                                export interface IEmailInvoiceToCarerRequest {\r\n                                    invoiceId: number,\r\n emailTemplateId: number,\r\n fullBreakdown: boolean\r\n                                }\r\n                            \r\n                                export interface IEmailInvoiceToCarerResult {\r\n                                    successful: boolean,\r\n errors: EmailInvoiceToCarerError[],\r\n emailMessageId: string\r\n                                }\r\n                            \r\n                                export interface IGetLegacyOutstandingCountCommandRequest {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IGetLegacyOutstandingCountCommandResult {\r\n                                    count: number,\r\n errors: GetLegacyOutstandingCountCommandError[]\r\n                                }\r\n                            \r\n                                export interface IGetInvoicesProcessedTodayCommandRequest {\r\n                                    \r\n                                }\r\n                            \r\n                                export interface IGetInvoicesProcessedTodayCommandResult {\r\n                                    count: number,\r\n invoiceIds: number[],\r\n errors: GetInvoicesProcessedTodayCommandError[]\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class AbacusFinanceCommands {\r\n                    \r\n                            public onGetInvoicesCommand: Subject<RequestInfo<AbacusFinance.IGetInvoicesCommandRequest, AbacusFinance.IGetInvoicesCommandResult>> = new Subject();\r\n                        \r\n                            public onClassifyInvoiceSelectionByAccountTypeCommand: Subject<RequestInfo<AbacusFinance.IClassifyInvoiceSelectionByAccountTypeCommandRequest, AbacusFinance.IClassifyInvoiceSelectionByAccountTypeCommandResult>> = new Subject();\r\n                        \r\n                            public onGetAllInvoiceEmailTemplates: Subject<AbacusFinance.IGetAllInvoiceEmailTemplatesResult> = new Subject();\r\n                        \r\n                            public onEmailInvoiceToCarer: Subject<RequestInfo<AbacusFinance.IEmailInvoiceToCarerRequest, AbacusFinance.IEmailInvoiceToCarerResult>> = new Subject();\r\n                        \r\n                            public onGetLegacyOutstandingCountCommand: Subject<RequestInfo<AbacusFinance.IGetLegacyOutstandingCountCommandRequest, AbacusFinance.IGetLegacyOutstandingCountCommandResult>> = new Subject();\r\n                        \r\n                            public onGetInvoicesProcessedTodayCommand: Subject<RequestInfo<AbacusFinance.IGetInvoicesProcessedTodayCommandRequest, AbacusFinance.IGetInvoicesProcessedTodayCommandResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async getInvoicesCommand(request : AbacusFinance.IGetInvoicesCommandRequest, overridenToken?: string): Promise<AbacusFinance.IGetInvoicesCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusFinance.IGetInvoicesCommandRequest, AbacusFinance.IGetInvoicesCommandResult>(request, 'AbacusFinance', 'GetInvoicesCommand', overridenToken);\r\n                                        \r\n                                            this.onGetInvoicesCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async classifyInvoiceSelectionByAccountTypeCommand(request : AbacusFinance.IClassifyInvoiceSelectionByAccountTypeCommandRequest, overridenToken?: string): Promise<AbacusFinance.IClassifyInvoiceSelectionByAccountTypeCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusFinance.IClassifyInvoiceSelectionByAccountTypeCommandRequest, AbacusFinance.IClassifyInvoiceSelectionByAccountTypeCommandResult>(request, 'AbacusFinance', 'ClassifyInvoiceSelectionByAccountTypeCommand', overridenToken);\r\n                                        \r\n                                            this.onClassifyInvoiceSelectionByAccountTypeCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                    public async getAllInvoiceEmailTemplates(overridenToken?: string): Promise<AbacusFinance.IGetAllInvoiceEmailTemplatesResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},AbacusFinance.IGetAllInvoiceEmailTemplatesResult>({}, 'AbacusFinance', 'GetAllInvoiceEmailTemplates', overridenToken);\r\n                                        \r\n                                            this.onGetAllInvoiceEmailTemplates.next(response);\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async emailInvoiceToCarer(request : AbacusFinance.IEmailInvoiceToCarerRequest, overridenToken?: string): Promise<AbacusFinance.IEmailInvoiceToCarerResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusFinance.IEmailInvoiceToCarerRequest, AbacusFinance.IEmailInvoiceToCarerResult>(request, 'AbacusFinance', 'EmailInvoiceToCarer', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onEmailInvoiceToCarer.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getLegacyOutstandingCountCommand(request : AbacusFinance.IGetLegacyOutstandingCountCommandRequest, overridenToken?: string): Promise<AbacusFinance.IGetLegacyOutstandingCountCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusFinance.IGetLegacyOutstandingCountCommandRequest, AbacusFinance.IGetLegacyOutstandingCountCommandResult>(request, 'AbacusFinance', 'GetLegacyOutstandingCountCommand', overridenToken);\r\n                                        \r\n                                            this.onGetLegacyOutstandingCountCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            \r\n                                 public async getInvoicesProcessedTodayCommand(request : AbacusFinance.IGetInvoicesProcessedTodayCommandRequest, overridenToken?: string): Promise<AbacusFinance.IGetInvoicesProcessedTodayCommandResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<AbacusFinance.IGetInvoicesProcessedTodayCommandRequest, AbacusFinance.IGetInvoicesProcessedTodayCommandResult>(request, 'AbacusFinance', 'GetInvoicesProcessedTodayCommand', overridenToken);\r\n                                        \r\n                                            this.onGetInvoicesProcessedTodayCommand.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace SiteEcho {\r\n                    \r\n                                export interface ISiteEchoRequest {\r\n                                    input: string\r\n                                }\r\n                            \r\n                                export interface ISiteEchoResult {\r\n                                    output: string\r\n                                }\r\n                            \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class SiteEchoCommands {\r\n                    \r\n                            public onSiteEcho: Subject<RequestInfo<SiteEcho.ISiteEchoRequest, SiteEcho.ISiteEchoResult>> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                 public async siteEcho(request : SiteEcho.ISiteEchoRequest, overridenToken?: string): Promise<SiteEcho.ISiteEchoResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<SiteEcho.ISiteEchoRequest, SiteEcho.ISiteEchoResult>(request, 'SiteEcho', 'SiteEcho', overridenToken);\r\n                                        \r\n                                            this.onSiteEcho.next({request, response});\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    \r\n                        export namespace SiteIntegration {\r\n                    \r\n                            export enum IntegrationCheckIntegrationCheckError {\r\n                                emailSenderFailed = 'emailSenderFailed',\r\n                                headlessBrowserFailed = 'headlessBrowserFailed',\r\n                                businessRepositoryFailed = 'businessRepositoryFailed',\r\n                                abacusChildRepositoryFailed = 'abacusChildRepositoryFailed',\r\n                                objectStorageClientFailed = 'objectStorageClientFailed',\r\n                                blackArrowClientFailed = 'blackArrowClientFailed',\r\n                                rackspaceToAmazonImageMigratorFailed = 'rackspaceToAmazonImageMigratorFailed',\r\n                                lookupServiceFailed = 'lookupServiceFailed',\r\n                                exceptionLoggerFailed = 'exceptionLoggerFailed',\r\n                                faceRecognitionServiceFailed = 'faceRecognitionServiceFailed'\r\n                            }\r\n                        \r\n                                export interface IIntegrationCheckResult {\r\n                                    errors: IIntegrationCheckCommandResultErrorTrace[],\r\n successful: boolean,\r\n printedPdf: string,\r\n businessId: UUID | null,\r\n childId: UUID | null,\r\n storageObjectString: string,\r\n parentaAddress: IIntegrationCheckCommandResultAddressLookUpResult,\r\n boundingBoxes: IIntegrationCheckCommandResultBoundingBox[]\r\n                                }\r\n                            \r\n                                export interface IIntegrationCheckCommandResultAddressLookUpResult {\r\n                                    addressLine1: string,\r\n addressLine2: string,\r\n city: string,\r\n county: string\r\n                                }\r\n                           \r\n                                export interface IIntegrationCheckCommandResultBoundingBox {\r\n                                    width: number,\r\n height: number,\r\n left: number,\r\n top: number\r\n                                }\r\n                           \r\n                                export interface IIntegrationCheckCommandResultErrorTrace {\r\n                                    stackTrace: string,\r\n error: IntegrationCheckIntegrationCheckError\r\n                                }\r\n                           \r\n                        } // End namespace\r\n                            @Injectable()\r\n                            export class SiteIntegrationCommands {\r\n                    \r\n                            public onIntegrationCheck: Subject<SiteIntegration.IIntegrationCheckResult> = new Subject();\r\n                        \r\n                        constructor(private sauronService:SauronService){}\r\n                    \r\n                                    public async integrationCheck(overridenToken?: string): Promise<SiteIntegration.IIntegrationCheckResult> {\r\n\t\t\t\t\t\t                let response = await this.sauronService.executeVersionedCommand<{},SiteIntegration.IIntegrationCheckResult>({}, 'SiteIntegration', 'IntegrationCheck', overridenToken);\r\n                                        if(response.successful)\r\n                                            this.onIntegrationCheck.next(response);\r\n                                        return response;\r\n                                    }\r\n                            } // End class\r\n                    // OUTPUTTING SHARED ENUMS\r\n\r\n                            export enum ColourType {\r\n                                default = 'default',\r\n                                primary = 'primary',\r\n                                success = 'success',\r\n                                info = 'info',\r\n                                warning = 'warning',\r\n                                danger = 'danger'\r\n                            }\r\n                        \r\n\r\n                            export enum ParentaServicesUserType {\r\n                                siteAdministrator = 'siteAdministrator',\r\n                                chainAdministrator = 'chainAdministrator',\r\n                                nurseryAdministrator = 'nurseryAdministrator',\r\n                                chainUser = 'chainUser',\r\n                                nurseryUser = 'nurseryUser',\r\n                                siteUser = 'siteUser'\r\n                            }\r\n                        \r\n\r\n                            export enum ParentaServicesUserCode {\r\n                                userCode1 = 'userCode1',\r\n                                userCode2 = 'userCode2'\r\n                            }\r\n                        \r\n\r\n                            export enum SystemPreference {\r\n                                childrenColour = 'childrenColour',\r\n                                observationViewing = 'observationViewing',\r\n                                businessName = 'businessName',\r\n                                passwordResetAfterDays = 'passwordResetAfterDays',\r\n                                passwordExpiryWarningBeforeDays = 'passwordExpiryWarningBeforeDays',\r\n                                passwordHistoryToKeep = 'passwordHistoryToKeep',\r\n                                showEyfsEarlyLearningGoal = 'showEyfsEarlyLearningGoal',\r\n                                showEyfsTextBoxes = 'showEyfsTextBoxes',\r\n                                showEyfsSpecificAreas = 'showEyfsSpecificAreas',\r\n                                setAgebandByHighestSecure = 'setAgebandByHighestSecure',\r\n                                setAgebandByHighestVisited = 'setAgebandByHighestVisited',\r\n                                setAgebandManually = 'setAgebandManually',\r\n                                showChildNameType = 'showChildNameType',\r\n                                childrenOrderBy = 'childrenOrderBy',\r\n                                emergingColor = 'emergingColor',\r\n                                developingColor = 'developingColor',\r\n                                secureColor = 'secureColor',\r\n                                showBrandingOnExportedReportsAndAssessments = 'showBrandingOnExportedReportsAndAssessments',\r\n                                showObservationCoel = 'showObservationCoel',\r\n                                showObservationLeuvenScales = 'showObservationLeuvenScales',\r\n                                suggestNextSteps = 'suggestNextSteps',\r\n                                enableSessionReminder = 'enableSessionReminder',\r\n                                sessionReminderDuration = 'sessionReminderDuration',\r\n                                checkStaffRotasInAbacusWhenPlanningActivities = 'checkStaffRotasInAbacusWhenPlanningActivities',\r\n                                showEyfsLearningJourneyReport = 'showEyfsLearningJourneyReport',\r\n                                showNextStepsLearningJourneyReport = 'showNextStepsLearningJourneyReport',\r\n                                learningJourneyReportOrderBy = 'learningJourneyReportOrderBy',\r\n                                showAssessmentEyfsCoel = 'showAssessmentEyfsCoel',\r\n                                showAssessment2YearCoel = 'showAssessment2YearCoel',\r\n                                enableArticleApproval = 'enableArticleApproval',\r\n                                updateNewsfeedAutomatically = 'updateNewsfeedAutomatically',\r\n                                updateNewsfeedEveryday = 'updateNewsfeedEveryday',\r\n                                updateNewsfeedManually = 'updateNewsfeedManually',\r\n                                neverUpdateNewsfeed = 'neverUpdateNewsfeed',\r\n                                newsfeedAllowCommenting = 'newsfeedAllowCommenting',\r\n                                newsfeedReceiveNotification = 'newsfeedReceiveNotification',\r\n                                trackTwoYearFunded = 'trackTwoYearFunded',\r\n                                trackThreeToFourYearFunded = 'trackThreeToFourYearFunded',\r\n                                trackSummerBorn = 'trackSummerBorn',\r\n                                summerBornStartDay = 'summerBornStartDay',\r\n                                summerBornStartMonth = 'summerBornStartMonth',\r\n                                summerBornEndDay = 'summerBornEndDay',\r\n                                summerBornEndMonth = 'summerBornEndMonth',\r\n                                trackAutumnBorn = 'trackAutumnBorn',\r\n                                autumnBornStartDay = 'autumnBornStartDay',\r\n                                autumnBornStartMonth = 'autumnBornStartMonth',\r\n                                autumnBornEndDay = 'autumnBornEndDay',\r\n                                autumnBornEndMonth = 'autumnBornEndMonth',\r\n                                trackSpringBorn = 'trackSpringBorn',\r\n                                springBornStartDay = 'springBornStartDay',\r\n                                springBornStartMonth = 'springBornStartMonth',\r\n                                springBornEndDay = 'springBornEndDay',\r\n                                springBornEndMonth = 'springBornEndMonth',\r\n                                trackReceivesEypp = 'trackReceivesEypp',\r\n                                trackLookedAfterChild = 'trackLookedAfterChild',\r\n                                trackCarerInArmedForces = 'trackCarerInArmedForces',\r\n                                trackGypsyOrRomany = 'trackGypsyOrRomany',\r\n                                trackMinority = 'trackMinority',\r\n                                trackSpecialEducationNeeded = 'trackSpecialEducationNeeded',\r\n                                englishAsAdditionalLanguage = 'englishAsAdditionalLanguage',\r\n                                trackGiftedAndTalented = 'trackGiftedAndTalented',\r\n                                trackReceivesFreeMeals = 'trackReceivesFreeMeals',\r\n                                disableAllPushNotifications = 'disableAllPushNotifications'\r\n                            }\r\n                        \r\n\r\n                            export enum EyfsTextBoxes {\r\n                                showEyfsAreaOnly = 'showEyfsAreaOnly',\r\n                                showEyfsAspectsOnly = 'showEyfsAspectsOnly',\r\n                                showBothEyfsAreasAndAspects = 'showBothEyfsAreasAndAspects'\r\n                            }\r\n                        \r\n\r\n                            export enum LearningJourneyReportOrder {\r\n                                newestToOldest = 'newestToOldest',\r\n                                oldestToNewest = 'oldestToNewest'\r\n                            }\r\n                        \r\n\r\n                            export enum ChildNameType {\r\n                                knownNameInsteadOfFirstName = 'knownNameInsteadOfFirstName',\r\n                                firstNameInsteadOfKnownName = 'firstNameInsteadOfKnownName'\r\n                            }\r\n                        \r\n\r\n                            export enum ChildrenOrder {\r\n                                orderByKnownName = 'orderByKnownName',\r\n                                orderByLastName = 'orderByLastName',\r\n                                orderByFirstName = 'orderByFirstName'\r\n                            }\r\n                        \r\n\r\n                            export enum BusinessIntegrationType {\r\n                                resellerClub = 'resellerClub',\r\n                                zendesk = 'zendesk',\r\n                                crechePager = 'crechePager'\r\n                            }\r\n                        \r\n\r\n                            export enum ParentaSystem {\r\n                                none = 'none',\r\n                                abacus = 'abacus',\r\n                                dayshare = 'dayshare',\r\n                                footsteps = 'footsteps',\r\n                                portal = 'portal',\r\n                                groupReporting = 'groupReporting',\r\n                                parentPortal = 'parentPortal',\r\n                                feePlanner = 'feePlanner',\r\n                                creche = 'creche',\r\n                                footsteps2 = 'footsteps2'\r\n                            }\r\n                        \r\n\r\n                            export enum OfficeType {\r\n                                nursery = 'nursery',\r\n                                head = 'head',\r\n                                creche = 'creche'\r\n                            }\r\n                        \r\n\r\n                            export enum AuthRole {\r\n                                apiUser = 'apiUser',\r\n                                customerUser = 'customerUser',\r\n                                admin = 'admin',\r\n                                authenticatedMachine = 'authenticatedMachine',\r\n                                carer = 'carer',\r\n                                internalApi = 'internalApi',\r\n                                headlessPrintingService = 'headlessPrintingService'\r\n                            }\r\n                        \r\n\r\n                            export enum SendAccidentNotificationType {\r\n                                none = 'none',\r\n                                recordCreated = 'recordCreated',\r\n                                recordChanged = 'recordChanged',\r\n                                newAcknowledgementRequired = 'newAcknowledgementRequired',\r\n                                attachmentAdded = 'attachmentAdded'\r\n                            }\r\n                        \r\n\r\n                            export enum NewsfeedEventType {\r\n                                observation = 'observation',\r\n                                activity = 'activity',\r\n                                accident = 'accident',\r\n                                meal = 'meal',\r\n                                sleep = 'sleep',\r\n                                nappy = 'nappy',\r\n                                pickupDropoff = 'pickupDropoff',\r\n                                comment = 'comment',\r\n                                achievement = 'achievement'\r\n                            }\r\n                        \r\n\r\n                            export enum TransactionType {\r\n                                invoice = 'invoice',\r\n                                payment = 'payment',\r\n                                paymentToAdult = 'paymentToAdult',\r\n                                paymentFromAdult = 'paymentFromAdult',\r\n                                openingBalance = 'openingBalance'\r\n                            }\r\n                        \r\n\r\n                            export enum UserPreferenceType {\r\n                                dashboardLayout = 'dashboardLayout',\r\n                                diarySettings = 'diarySettings',\r\n                                assessmentChildAgebandSelection = 'assessmentChildAgebandSelection',\r\n                                assessmentIncludeNextStep = 'assessmentIncludeNextStep',\r\n                                assessmentChildIsExempt = 'assessmentChildIsExempt',\r\n                                assessmentRememberOptions = 'assessmentRememberOptions',\r\n                                assessmentExemptionReason = 'assessmentExemptionReason',\r\n                                assessmentCustomExemption = 'assessmentCustomExemption',\r\n                                hideEyfsSortingBanner = 'hideEyfsSortingBanner'\r\n                            }\r\n                        \r\n\r\n                            export enum GenderKey {\r\n                                all = 'all',\r\n                                male = 'male',\r\n                                female = 'female'\r\n                            }\r\n                        \r\n\r\n                            export enum AttendanceStatusKey {\r\n                                all = 'all',\r\n                                inToday = 'inToday',\r\n                                notInToday = 'notInToday'\r\n                            }\r\n                        \r\n\r\n                            export enum RegistrationStatusKey {\r\n                                all = 'all',\r\n                                registered = 'registered',\r\n                                left = 'left'\r\n                            }\r\n                        \r\n\r\n                            export enum EyfsCohortKey {\r\n                                twoYearFunded = 'twoYearFunded',\r\n                                threeToFourYearFunded = 'threeToFourYearFunded',\r\n                                springBorn = 'springBorn',\r\n                                summerBorn = 'summerBorn',\r\n                                autumnBorn = 'autumnBorn',\r\n                                specialEducationalNeedsAndDisabilities = 'specialEducationalNeedsAndDisabilities',\r\n                                englishAsAnAdditionalLanguage = 'englishAsAnAdditionalLanguage',\r\n                                giftedAndTalented = 'giftedAndTalented',\r\n                                lookedAfterChild = 'lookedAfterChild',\r\n                                carersInArmedForces = 'carersInArmedForces',\r\n                                gypsyRomanyTravellerFamily = 'gypsyRomanyTravellerFamily',\r\n                                minorityEthnicGroup = 'minorityEthnicGroup',\r\n                                receivesEarlyYearsPupilPremium = 'receivesEarlyYearsPupilPremium',\r\n                                receivesFreeSchoolMeals = 'receivesFreeSchoolMeals',\r\n                                requiresOneToOneCare = 'requiresOneToOneCare'\r\n                            }\r\n                        \r\n\r\n                            export enum PermissionType {\r\n                                dashboardRead = 'dashboardRead',\r\n                                userProfileRead = 'userProfileRead',\r\n                                userProfileUpdate = 'userProfileUpdate',\r\n                                dashboardMessagesRead = 'dashboardMessagesRead',\r\n                                dashboardMessagesDelete = 'dashboardMessagesDelete',\r\n                                staffManagementUpdate = 'staffManagementUpdate',\r\n                                signupChildrenCreate = 'signupChildrenCreate',\r\n                                bookinChildrenCreate = 'bookinChildrenCreate',\r\n                                childDetailsBasicCreate = 'childDetailsBasicCreate',\r\n                                childDetailsBasicRead = 'childDetailsBasicRead',\r\n                                childDetailsBasicUpdate = 'childDetailsBasicUpdate',\r\n                                childDetailsAdvancedCreate = 'childDetailsAdvancedCreate',\r\n                                childDetailsAdvancedRead = 'childDetailsAdvancedRead',\r\n                                childDetailsAdvancedUpdate = 'childDetailsAdvancedUpdate',\r\n                                childDetailsAdvancedDelete = 'childDetailsAdvancedDelete',\r\n                                advanceBookingCreate = 'advanceBookingCreate',\r\n                                advanceBookingRead = 'advanceBookingRead',\r\n                                advanceBookingUpdate = 'advanceBookingUpdate',\r\n                                advanceBookingDelete = 'advanceBookingDelete',\r\n                                forcedLogoutUpdate = 'forcedLogoutUpdate',\r\n                                managementDashboardRead = 'managementDashboardRead',\r\n                                systemGhostRead = 'systemGhostRead',\r\n                                diaryRead = 'diaryRead',\r\n                                diaryAdvanceBookingCreate = 'diaryAdvanceBookingCreate',\r\n                                diaryAdvanceBookingRead = 'diaryAdvanceBookingRead',\r\n                                diaryAdvanceBookingUpdate = 'diaryAdvanceBookingUpdate',\r\n                                diaryAdvanceBookingDelete = 'diaryAdvanceBookingDelete',\r\n                                reportsRead = 'reportsRead',\r\n                                scheduleReportsCreate = 'scheduleReportsCreate',\r\n                                scheduleReportsRead = 'scheduleReportsRead',\r\n                                scheduleReportsUpdate = 'scheduleReportsUpdate',\r\n                                scheduleReportsDelete = 'scheduleReportsDelete',\r\n                                messagesCreate = 'messagesCreate',\r\n                                messagesRead = 'messagesRead',\r\n                                userManagementRead = 'userManagementRead',\r\n                                userAccountCreate = 'userAccountCreate',\r\n                                userAccountRead = 'userAccountRead',\r\n                                userAccountUpdate = 'userAccountUpdate',\r\n                                userAccountDelete = 'userAccountDelete',\r\n                                roleGroupCreate = 'roleGroupCreate',\r\n                                roleGroupRead = 'roleGroupRead',\r\n                                roleGroupUpdate = 'roleGroupUpdate',\r\n                                roleGroupDelete = 'roleGroupDelete',\r\n                                settingsRead = 'settingsRead',\r\n                                customisationBrandingRead = 'customisationBrandingRead',\r\n                                customisationBrandingUpdate = 'customisationBrandingUpdate',\r\n                                crecheRatioCreate = 'crecheRatioCreate',\r\n                                crecheRatioRead = 'crecheRatioRead',\r\n                                crecheRatioUpdate = 'crecheRatioUpdate',\r\n                                crecheRatioDelete = 'crecheRatioDelete',\r\n                                crecheSettingRead = 'crecheSettingRead',\r\n                                crecheSettingUpdate = 'crecheSettingUpdate',\r\n                                crecheOpenCloseTimeRead = 'crecheOpenCloseTimeRead',\r\n                                crecheOpenCloseTimeUpdate = 'crecheOpenCloseTimeUpdate',\r\n                                crecheHolidayCreate = 'crecheHolidayCreate',\r\n                                crecheHolidayRead = 'crecheHolidayRead',\r\n                                crecheHolidayUpdate = 'crecheHolidayUpdate',\r\n                                crecheHolidayDelete = 'crecheHolidayDelete',\r\n                                crecheClosureCreate = 'crecheClosureCreate',\r\n                                crecheClosureRead = 'crecheClosureRead',\r\n                                crecheClosureUpdate = 'crecheClosureUpdate',\r\n                                crecheClosureDelete = 'crecheClosureDelete',\r\n                                pagerSettingRead = 'pagerSettingRead',\r\n                                pagerSettingUpdate = 'pagerSettingUpdate',\r\n                                receiptSettingRead = 'receiptSettingRead',\r\n                                receiptSettingUpdate = 'receiptSettingUpdate',\r\n                                systemSecurityRead = 'systemSecurityRead',\r\n                                systemSecurityUpdate = 'systemSecurityUpdate',\r\n                                supportDeskCreate = 'supportDeskCreate',\r\n                                supportDeskRead = 'supportDeskRead',\r\n                                supportDeskUpdate = 'supportDeskUpdate',\r\n                                supportDeskDelete = 'supportDeskDelete',\r\n                                canApprove = 'canApprove',\r\n                                canPublish = 'canPublish',\r\n                                requiresApproval = 'requiresApproval'\r\n                            }\r\n                        \r\n\r\n                            export enum CurriculumKey {\r\n                                eyfs = 'eyfs',\r\n                                coel = 'coel',\r\n                                leuven = 'leuven',\r\n                                eyfs2021 = 'eyfs2021',\r\n                                coel2021 = 'coel2021'\r\n                            }\r\n                        \r\n\r\n                            export enum ObservationMatterKey {\r\n                                turnsTowardAFamiliarSound = 'turnsTowardAFamiliarSound',\r\n                                respondsToIntonationsAndSounds = 'respondsToIntonationsAndSounds',\r\n                                interactionWithOthersBySmilingLookingAndMoving = 'interactionWithOthersBySmilingLookingAndMoving',\r\n                                quietensOrAlertsToTheSoundOfSpeech = 'quietensOrAlertsToTheSoundOfSpeech',\r\n                                looksAtSpeakerButStopsRespondingIfSpeakerTurnsAway = 'looksAtSpeakerButStopsRespondingIfSpeakerTurnsAway',\r\n                                listensToFamiliarSoundsWordsOrFingerPlays = 'listensToFamiliarSoundsWordsOrFingerPlays',\r\n                                fleetingAttentionWhereNewStimuliTakesWholeAttention = 'fleetingAttentionWhereNewStimuliTakesWholeAttention',\r\n                                stopsAndLooksWhenHearsOwnName = 'stopsAndLooksWhenHearsOwnName',\r\n                                startsToUnderstandContextualClues = 'startsToUnderstandContextualClues',\r\n                                communicatesNeedsByCryingBabblingAndSquealing = 'communicatesNeedsByCryingBabblingAndSquealing',\r\n                                makesOwnSoundsInResponseToFamiliarAdults = 'makesOwnSoundsInResponseToFamiliarAdults',\r\n                                liftsArmsInAnticipationOfBeingPickedUp = 'liftsArmsInAnticipationOfBeingPickedUp',\r\n                                practisesAndGraduallyDevelopsBabbling = 'practisesAndGraduallyDevelopsBabbling',\r\n                                turnsHeadInResponseToSoundsAndSights = 'turnsHeadInResponseToSoundsAndSights',\r\n                                graduallyHoldsUpOwnHead = 'graduallyHoldsUpOwnHead',\r\n                                makesMovementsWithArmsAndLegsBecomingMoreControlled = 'makesMovementsWithArmsAndLegsBecomingMoreControlled',\r\n                                rollsOverFromFrontToBackFromBackToFront = 'rollsOverFromFrontToBackFromBackToFront',\r\n                                whenLyingOnTummyBecomesAbleToLiftHeadAndThenChest = 'whenLyingOnTummyBecomesAbleToLiftHeadAndThenChest',\r\n                                watchesAndExploresHandsAndFeet = 'watchesAndExploresHandsAndFeet',\r\n                                reachesOutForTouchesAndHoldsObjects = 'reachesOutForTouchesAndHoldsObjects',\r\n                                exploresObjectsWithMouth = 'exploresObjectsWithMouth',\r\n                                respondsToWarmSensitivePhysicalContactAndCare = 'respondsToWarmSensitivePhysicalContactAndCare',\r\n                                expressesDiscomfortHungerOrThirst = 'expressesDiscomfortHungerOrThirst',\r\n                                anticipatesFoodRoutinesWithInterest = 'anticipatesFoodRoutinesWithInterest',\r\n                                enjoysTheCompanyOfOthers = 'enjoysTheCompanyOfOthers',\r\n                                gazesAtFacesAndCopiesFacialMovements = 'gazesAtFacesAndCopiesFacialMovements',\r\n                                respondsWhenTalkedTo = 'respondsWhenTalkedTo',\r\n                                recognisesAndIsMostResponsiveToMainCarersVoice = 'recognisesAndIsMostResponsiveToMainCarersVoice',\r\n                                respondsToWhatCarerIsPayingAttentionTo = 'respondsToWhatCarerIsPayingAttentionTo',\r\n                                likesCuddlesAndBeingHeld = 'likesCuddlesAndBeingHeld',\r\n                                laughsAndGurgles = 'laughsAndGurgles',\r\n                                usesVoiceGestureEyeContactAndFacialExpression = 'usesVoiceGestureEyeContactAndFacialExpression',\r\n                                isComfortedByTouchAndPeoplesFacesAndVoices = 'isComfortedByTouchAndPeoplesFacesAndVoices',\r\n                                seeksPhysicalAndEmotionalComfortBySnuggling = 'seeksPhysicalAndEmotionalComfortBySnuggling',\r\n                                calmsFromBeingUpsetWhenHeldRockedSpokenOrSungTo = 'calmsFromBeingUpsetWhenHeldRockedSpokenOrSungTo',\r\n                                showsARangeOfEmotions = 'showsARangeOfEmotions',\r\n                                reactsEmotionallyToOtherPeoplesEmotions = 'reactsEmotionallyToOtherPeoplesEmotions',\r\n                                enjoysLookingAtBooksAndOtherPrintedMaterialWithFamiliarPeople = 'enjoysLookingAtBooksAndOtherPrintedMaterialWithFamiliarPeople',\r\n                                noticesChangesInNumberOfObjectsImagesOrSoundsInGroupOfUpToThree = 'noticesChangesInNumberOfObjectsImagesOrSoundsInGroupOfUpToThree',\r\n                                movesEyesThenHeadToFollowMovingObjects = 'movesEyesThenHeadToFollowMovingObjects',\r\n                                reactsWithAbruptChangeWhenAFaceOrObjectDisappearsFromView = 'reactsWithAbruptChangeWhenAFaceOrObjectDisappearsFromView',\r\n                                looksAroundARoomWithInterest = 'looksAroundARoomWithInterest',\r\n                                smilesWithPleasureAtRecognisablePlaythings = 'smilesWithPleasureAtRecognisablePlaythings',\r\n                                repeatsActionsThatHaveAnEffect = 'repeatsActionsThatHaveAnEffect',\r\n                                communicationMovesWholeBodyToSoundsTheyEnjoy = 'communicationMovesWholeBodyToSoundsTheyEnjoy',\r\n                                hasAStrongExploratoryImpulse = 'hasAStrongExploratoryImpulse',\r\n                                concentratesIntentlyOnAnObjectOrActivityOfOwnChoosing = 'concentratesIntentlyOnAnObjectOrActivityOfOwnChoosing',\r\n                                paysAttentionToDominantStimulus = 'paysAttentionToDominantStimulus',\r\n                                developingAnAbilityToFollowOthersBodyLanguage = 'developingAnAbilityToFollowOthersBodyLanguage',\r\n                                respondsToTheDifferentThingsSaidWithinContextToASpecialPerson = 'respondsToTheDifferentThingsSaidWithinContextToASpecialPerson',\r\n                                understandingOfSingleWordsInContextIsDeveloping = 'understandingOfSingleWordsInContextIsDeveloping',\r\n                                usesSoundsInPlay = 'usesSoundsInPlay',\r\n                                usesSingleWords = 'usesSingleWords',\r\n                                frequentlyImitatesWordsAndSounds = 'frequentlyImitatesWordsAndSounds',\r\n                                enjoysBabblingAndIncreasinglyExperimentsWithSoundsAndWordsToCommunicate = 'enjoysBabblingAndIncreasinglyExperimentsWithSoundsAndWordsToCommunicate',\r\n                                communicationUsesPointingWithEyeGazeToMakeRequestsAndToShareInterest = 'communicationUsesPointingWithEyeGazeToMakeRequestsAndToShareInterest',\r\n                                createsPersonalWordsAsTheyBeginToDevelopLanguage = 'createsPersonalWordsAsTheyBeginToDevelopLanguage',\r\n                                sitsUnsupportedOnTheFloor = 'sitsUnsupportedOnTheFloor',\r\n                                whenSittingCanLeanForwardToPickUpSmallToys = 'whenSittingCanLeanForwardToPickUpSmallToys',\r\n                                pullsToStandingHoldingOnToFurnitureOrPersonForSupport = 'pullsToStandingHoldingOnToFurnitureOrPersonForSupport',\r\n                                crawlsBottomShufflesOrRollsContinuously = 'crawlsBottomShufflesOrRollsContinuously',\r\n                                walksAroundFurnitureSteppingSidewaysAndWalksWithHandHeld = 'walksAroundFurnitureSteppingSidewaysAndWalksWithHandHeld',\r\n                                takesFirstFewStepsIndependently = 'takesFirstFewStepsIndependently',\r\n                                passesToysFromOneHandToTheOther = 'passesToysFromOneHandToTheOther',\r\n                                holdsAnObjectInEachHandAndBringsThemTogetherInTheMiddle = 'holdsAnObjectInEachHandAndBringsThemTogetherInTheMiddle',\r\n                                picksUpSmallObjectsBetweenThumbAndFingers = 'picksUpSmallObjectsBetweenThumbAndFingers',\r\n                                enjoysTheSensoryExperienceOfMakingMarksInDampSandPasteOrPaint = 'enjoysTheSensoryExperienceOfMakingMarksInDampSandPasteOrPaint',\r\n                                holdsPenOrCrayonUsingAWholeHandGraspAndMakesRandomMarks = 'holdsPenOrCrayonUsingAWholeHandGraspAndMakesRandomMarks',\r\n                                opensMouthForSpoon = 'opensMouthForSpoon',\r\n                                holdsOwnBottleOrCup = 'holdsOwnBottleOrCup',\r\n                                graspsFingerFoodsAndBringsThemToMouth = 'graspsFingerFoodsAndBringsThemToMouth',\r\n                                attemptsToUseSpoon = 'attemptsToUseSpoon',\r\n                                canActivelyCooperateWithNappyChanging = 'canActivelyCooperateWithNappyChanging',\r\n                                startsToCommunicateUrinationBowelMovement = 'startsToCommunicateUrinationBowelMovement',\r\n                                seeksToGainAttentionInAVarietyOfWays = 'seeksToGainAttentionInAVarietyOfWays',\r\n                                buildsRelationshipsWithSpecialPeople = 'buildsRelationshipsWithSpecialPeople',\r\n                                isWaryOfUnfamiliarPeople = 'isWaryOfUnfamiliarPeople',\r\n                                interactsWithOthersAndExploresNewSituations = 'interactsWithOthersAndExploresNewSituations',\r\n                                showsInterestInTheActivitiesOfOthersAndRespondsDifferentlyToChildrenAndAdults = 'showsInterestInTheActivitiesOfOthersAndRespondsDifferentlyToChildrenAndAdults',\r\n                                enjoysFindingOwnNoseEyesOrTummyAsPartOfNamingGames = 'enjoysFindingOwnNoseEyesOrTummyAsPartOfNamingGames',\r\n                                learnsThatOwnVoiceAndActionsHaveEffectsOnOthers = 'learnsThatOwnVoiceAndActionsHaveEffectsOnOthers',\r\n                                engagesOtherPersonToHelpAchieveAGoal = 'engagesOtherPersonToHelpAchieveAGoal',\r\n                                usesFamiliarAdultToShareFeelings = 'usesFamiliarAdultToShareFeelings',\r\n                                growingAbilityToSootheThemselves = 'growingAbilityToSootheThemselves',\r\n                                cooperatesWithCaregivingExperiences = 'cooperatesWithCaregivingExperiences',\r\n                                beginningToUnderstandYesNoAndSomeBoundaries = 'beginningToUnderstandYesNoAndSomeBoundaries',\r\n                                handlesBooksAndPrintedMaterialWithInterest = 'handlesBooksAndPrintedMaterialWithInterest',\r\n                                developsAnAwarenessOfNumberNamesThroughRhymeAndSongs = 'developsAnAwarenessOfNumberNamesThroughRhymeAndSongs',\r\n                                hasSomeUnderstandingThatThingsExistEvenWhenOutOfSight = 'hasSomeUnderstandingThatThingsExistEvenWhenOutOfSight',\r\n                                recognisesBigThingsAndSmallThings = 'recognisesBigThingsAndSmallThings',\r\n                                getsToKnowAndEnjoyDailyRoutines = 'getsToKnowAndEnjoyDailyRoutines',\r\n                                closelyObservesWhatAnimalsPeopleAndVehiclesDo = 'closelyObservesWhatAnimalsPeopleAndVehiclesDo',\r\n                                watchesToysBeingHiddenAndTriesToFindThem = 'watchesToysBeingHiddenAndTriesToFindThem',\r\n                                looksForDroppedObjects = 'looksForDroppedObjects',\r\n                                becomesAbsorbedInCombiningObjects = 'becomesAbsorbedInCombiningObjects',\r\n                                knowsThingsAreUsedInDifferentWays = 'knowsThingsAreUsedInDifferentWays',\r\n                                experimentsWithARangeOfMediaThroughSensoryExploration08To20 = 'experimentsWithARangeOfMediaThroughSensoryExploration08To20',\r\n                                imitatesAndImprovisesActionsTheyHaveObserved08To20 = 'imitatesAndImprovisesActionsTheyHaveObserved08To20',\r\n                                beginsToMoveToMusicListenToOrJoinInRhymesOrSongs08To20 = 'beginsToMoveToMusicListenToOrJoinInRhymesOrSongs08To20',\r\n                                noticesAndIsInterestedInTheEffectsOfMakingMarks08To20 = 'noticesAndIsInterestedInTheEffectsOfMakingMarks08To20',\r\n                                listensToAndEnjoysRhythmicPatternsInRhymes = 'listensToAndEnjoysRhythmicPatternsInRhymes',\r\n                                enjoysRhymesAndDemonstratesListeningByTryingToJoinIn = 'enjoysRhymesAndDemonstratesListeningByTryingToJoinIn',\r\n                                rigidAttention = 'rigidAttention',\r\n                                selectsFamiliarObjectsByName = 'selectsFamiliarObjectsByName',\r\n                                understandsSimpleSentences = 'understandsSimpleSentences',\r\n                                copiesFamiliarExpressions = 'copiesFamiliarExpressions',\r\n                                beginningToPutTwoWordsTogether = 'beginningToPutTwoWordsTogether',\r\n                                usesDifferentTypesOfEverydayWords = 'usesDifferentTypesOfEverydayWords',\r\n                                beginningToAskSimpleQuestions = 'beginningToAskSimpleQuestions',\r\n                                beginningToTalkAboutPeopleAndThingsThatAreNotPresent = 'beginningToTalkAboutPeopleAndThingsThatAreNotPresent',\r\n                                walksUpstairsHoldingHandOfAdult = 'walksUpstairsHoldingHandOfAdult',\r\n                                comesDownstairsBackwardsOnKnees = 'comesDownstairsBackwardsOnKnees',\r\n                                beginningToBalanceBlocksToBuildSmallTower = 'beginningToBalanceBlocksToBuildSmallTower',\r\n                                makesConnectionsBetweenTheirMovementAndMarks = 'makesConnectionsBetweenTheirMovementAndMarks',\r\n                                developsOwnLikesAndDislikesInFoodAndDrink = 'developsOwnLikesAndDislikesInFoodAndDrink',\r\n                                willingToTryNewFoodTexturesAndTastes = 'willingToTryNewFoodTexturesAndTastes',\r\n                                holdsCupWithBothHandsAndDrinksWithoutMuchSpilling = 'holdsCupWithBothHandsAndDrinksWithoutMuchSpilling',\r\n                                clearlyCommunicatesWetOrSoiledNappyOrPants = 'clearlyCommunicatesWetOrSoiledNappyOrPants',\r\n                                showsSomeAwarenessOfBladderAndBowelUrges = 'showsSomeAwarenessOfBladderAndBowelUrges',\r\n                                showsAwarenessOfWhatAPottyOrToiletIs = 'showsAwarenessOfWhatAPottyOrToiletIs',\r\n                                showsADesireToHelpWithDressingAndHygieneRoutines = 'showsADesireToHelpWithDressingAndHygieneRoutines',\r\n                                playsAlongsideOthers = 'playsAlongsideOthers',\r\n                                usesAFamiliarAdultAsABaseToExploreIndependently = 'usesAFamiliarAdultAsABaseToExploreIndependently',\r\n                                playsCooperativelyWithAFamiliarAdult = 'playsCooperativelyWithAFamiliarAdult',\r\n                                exploresNewToysAndEnvironments = 'exploresNewToysAndEnvironments',\r\n                                graduallyAbleToEngageInPretendPlay = 'graduallyAbleToEngageInPretendPlay',\r\n                                demonstratesSenseOfSelfAsAnIndividual = 'demonstratesSenseOfSelfAsAnIndividual',\r\n                                isAwareOfOtherPeoplesFeelings = 'isAwareOfOtherPeoplesFeelings',\r\n                                growingSenseOfWillAndDeterminationMayResultInAnger = 'growingSenseOfWillAndDeterminationMayResultInAnger',\r\n                                respondsToAFewAppropriateBoundariesWithEncouragement = 'respondsToAFewAppropriateBoundariesWithEncouragement',\r\n                                beginsToLearnThatSomeThingsAreTheirsSomeAreSharedSomeAreNotTheirs = 'beginsToLearnThatSomeThingsAreTheirsSomeAreSharedSomeAreNotTheirs',\r\n                                interestedInBooksAndRhymesAndMayHaveFavourites = 'interestedInBooksAndRhymesAndMayHaveFavourites',\r\n                                knowsThatThingsExistEvenWhenOutOfSight = 'knowsThatThingsExistEvenWhenOutOfSight',\r\n                                beginningToOrganiseAndCategoriseObjects = 'beginningToOrganiseAndCategoriseObjects',\r\n                                saysSomeCountingWordsRandomly = 'saysSomeCountingWordsRandomly',\r\n                                attemptsToFitShapesIntoSpaces = 'attemptsToFitShapesIntoSpaces',\r\n                                usesBlocksToCreateTheirOwnSimpleStructures = 'usesBlocksToCreateTheirOwnSimpleStructures',\r\n                                enjoysFillingAndEmptyingContainers = 'enjoysFillingAndEmptyingContainers',\r\n                                associatesASequenceOfActionsWithDailyRoutines = 'associatesASequenceOfActionsWithDailyRoutines',\r\n                                beginningToUnderstandThatThingsMightHappenNow = 'beginningToUnderstandThatThingsMightHappenNow',\r\n                                isCuriousAboutPeople = 'isCuriousAboutPeople',\r\n                                enjoysPicturesAndStoriesAboutThemselves = 'enjoysPicturesAndStoriesAboutThemselves',\r\n                                exploresObjectsByLinkingTogetherDifferentApproaches = 'exploresObjectsByLinkingTogetherDifferentApproaches',\r\n                                remembersWhereObjectsBelong = 'remembersWhereObjectsBelong',\r\n                                matchesPartsOfObjectsThatFitTogether = 'matchesPartsOfObjectsThatFitTogether',\r\n                                anticipatesRepeatedSoundsSightsAndActions = 'anticipatesRepeatedSoundsSightsAndActions',\r\n                                showsInterestInToysWithButtonsFlapsAndSimpleMechanisms = 'showsInterestInToysWithButtonsFlapsAndSimpleMechanisms',\r\n                                expressesSelfThroughPhysicalActionAndSound = 'expressesSelfThroughPhysicalActionAndSound',\r\n                                pretendsThatOneObjectRepresentsAnother = 'pretendsThatOneObjectRepresentsAnother',\r\n                                listensWithInterestToTheNoisesAdultsMakeWhenTheyReadStories = 'listensWithInterestToTheNoisesAdultsMakeWhenTheyReadStories',\r\n                                recognisesAndRespondsToManyFamiliarSounds = 'recognisesAndRespondsToManyFamiliarSounds',\r\n                                showsInterestInPlayWithSoundsSongsAndRhymes = 'showsInterestInPlayWithSoundsSongsAndRhymes',\r\n                                singleChannelledAttention = 'singleChannelledAttention',\r\n                                identifiesActionWordsByPointingToTheRightPicture = 'identifiesActionWordsByPointingToTheRightPicture',\r\n                                understandsMoreComplexSentences = 'understandsMoreComplexSentences',\r\n                                understandsWhoWhatWhereInSimpleQuestions = 'understandsWhoWhatWhereInSimpleQuestions',\r\n                                developingUnderstandingOfSimpleConcepts = 'developingUnderstandingOfSimpleConcepts',\r\n                                usesLanguageAsAPowerfulMeansOfWideningContacts = 'usesLanguageAsAPowerfulMeansOfWideningContacts',\r\n                                holdsAConversationJumpingFromTopicToTopic = 'holdsAConversationJumpingFromTopicToTopic',\r\n                                learnsNewWordsVeryRapidlyAndIsAbleToUseThemInCommunicating = 'learnsNewWordsVeryRapidlyAndIsAbleToUseThemInCommunicating',\r\n                                usesGesturesSometimesWithLimitedTalk = 'usesGesturesSometimesWithLimitedTalk',\r\n                                usesAVarietyOfQuestions = 'usesAVarietyOfQuestions',\r\n                                usesSimpleSentences = 'usesSimpleSentences',\r\n                                beginningToUseWordEndings = 'beginningToUseWordEndings',\r\n                                runsSafelyOnWholeFoot = 'runsSafelyOnWholeFoot',\r\n                                squatsWithSteadinessToRestOrPlayWithObjectOnGround = 'squatsWithSteadinessToRestOrPlayWithObjectOnGround',\r\n                                climbsConfidentlyAndIsBeginningToPullThemselvesUp = 'climbsConfidentlyAndIsBeginningToPullThemselvesUp',\r\n                                canKickALargeBall = 'canKickALargeBall',\r\n                                turnsPagesInABookSometimesSeveralAtOnce = 'turnsPagesInABookSometimesSeveralAtOnce',\r\n                                showsControlInHoldingAndUsingJugsToPour = 'showsControlInHoldingAndUsingJugsToPour',\r\n                                beginningToUseThreeFingersToHoldWritingTools = 'beginningToUseThreeFingersToHoldWritingTools',\r\n                                imitatesDrawingSimpleShapesSuchAsCirclesAndLines = 'imitatesDrawingSimpleShapesSuchAsCirclesAndLines',\r\n                                walksUpstairsOrDownstairsHoldingOntoARailTwoFeetToAStep = 'walksUpstairsOrDownstairsHoldingOntoARailTwoFeetToAStep',\r\n                                mayBeBeginningToShowPreferenceForDominantHand = 'mayBeBeginningToShowPreferenceForDominantHand',\r\n                                feedsSelfCompetentlyWithSpoon = 'feedsSelfCompetentlyWithSpoon',\r\n                                drinksWellWithoutSpilling = 'drinksWellWithoutSpilling',\r\n                                clearlyCommunicatesTheirNeedForPottyOrToilet = 'clearlyCommunicatesTheirNeedForPottyOrToilet',\r\n                                beginningToRecogniseDangerAndSeeksSupportOfSignificantAdultsForHelp = 'beginningToRecogniseDangerAndSeeksSupportOfSignificantAdultsForHelp',\r\n                                helpsWithClothing = 'helpsWithClothing',\r\n                                beginningToBeIndependentInSelfCareButStillOftenNeedsAdultSupport = 'beginningToBeIndependentInSelfCareButStillOftenNeedsAdultSupport',\r\n                                interestedInOthersPlayAndStartingToJoinIn = 'interestedInOthersPlayAndStartingToJoinIn',\r\n                                seeksOutOthersToShareExperiences = 'seeksOutOthersToShareExperiences',\r\n                                showsAffectionAndConcernForPeopleWhoAreSpecialToThem = 'showsAffectionAndConcernForPeopleWhoAreSpecialToThem',\r\n                                mayFormASpecialFriendshipWithAnotherChild = 'mayFormASpecialFriendshipWithAnotherChild',\r\n                                separatesFromMainCarerWithSupportAndEncouragement = 'separatesFromMainCarerWithSupportAndEncouragement',\r\n                                expressesOwnPreferencesAndInterests = 'expressesOwnPreferencesAndInterests',\r\n                                seeksComfortFromFamiliarAdultsWhenNeeded = 'seeksComfortFromFamiliarAdultsWhenNeeded',\r\n                                canExpressTheirOwnFeelings = 'canExpressTheirOwnFeelings',\r\n                                respondsToTheFeelingsAndWishesOfOthers = 'respondsToTheFeelingsAndWishesOfOthers',\r\n                                awareThatSomeActionsCanHurtOrHarmOthers = 'awareThatSomeActionsCanHurtOrHarmOthers',\r\n                                triesToHelpOrGiveComfortWhenOthersAreDistressed = 'triesToHelpOrGiveComfortWhenOthersAreDistressed',\r\n                                showsUnderstandingAndCooperatesWithSomeBoundaries = 'showsUnderstandingAndCooperatesWithSomeBoundaries',\r\n                                canInhibitOwnActions = 'canInhibitOwnActions',\r\n                                growingAbilityToDistractSelfWhenUpset = 'growingAbilityToDistractSelfWhenUpset',\r\n                                hasSomeFavouriteStoriesRhymesSongsPoemsOrJingles = 'hasSomeFavouriteStoriesRhymesSongsPoemsOrJingles',\r\n                                repeatsWordsOrPhrasesFromFamiliarStories = 'repeatsWordsOrPhrasesFromFamiliarStories',\r\n                                fillsInTheMissingWordOrPhraseInAKnownRhymeStoryOrGame = 'fillsInTheMissingWordOrPhraseInAKnownRhymeStoryOrGame',\r\n                                distinguishesBetweenTheDifferentMarksTheyMake = 'distinguishesBetweenTheDifferentMarksTheyMake',\r\n                                selectsASmallNumberOfObjectsFromAGroupWhenAsked = 'selectsASmallNumberOfObjectsFromAGroupWhenAsked',\r\n                                recitesSomeNumberNamesInSequence = 'recitesSomeNumberNamesInSequence',\r\n                                createsAndExperimentsWithSymbolsAndMarksRepresentingIdeasOfNumber = 'createsAndExperimentsWithSymbolsAndMarksRepresentingIdeasOfNumber',\r\n                                beginsToMakeComparisonsBetweenQuantities = 'beginsToMakeComparisonsBetweenQuantities',\r\n                                usesSomeLanguageOfQuantities = 'usesSomeLanguageOfQuantities',\r\n                                knowsThatAGroupOfThingsChangesInQuantityWhenSomethingIsAddedOrTakenAway = 'knowsThatAGroupOfThingsChangesInQuantityWhenSomethingIsAddedOrTakenAway',\r\n                                noticesSimpleShapesAndPatternsInPictures = 'noticesSimpleShapesAndPatternsInPictures',\r\n                                beginningToCategoriseObjectsAccordingToProperties = 'beginningToCategoriseObjectsAccordingToProperties',\r\n                                beginsToUseTheLanguageOfSize = 'beginsToUseTheLanguageOfSize',\r\n                                understandsSomeTalkAboutImmediatePastAndFuture = 'understandsSomeTalkAboutImmediatePastAndFuture',\r\n                                anticipatesSpecificTimeBasedEventsSuchAsMealtimesOrHometime = 'anticipatesSpecificTimeBasedEventsSuchAsMealtimesOrHometime',\r\n                                hasASenseOfOwnImmediateFamilyAndRelations = 'hasASenseOfOwnImmediateFamilyAndRelations',\r\n                                inPretendPlayImitatesEverydayActionsAndEventsFromOwnFamily = 'inPretendPlayImitatesEverydayActionsAndEventsFromOwnFamily',\r\n                                beginningToHaveTheirOwnFriends = 'beginningToHaveTheirOwnFriends',\r\n                                learnsThatTheyHaveSimilaritiesAndDifferencesToOthers = 'learnsThatTheyHaveSimilaritiesAndDifferencesToOthers',\r\n                                enjoysPlayingWithSmallWorldModelsSuchAsAFarm = 'enjoysPlayingWithSmallWorldModelsSuchAsAFarm',\r\n                                noticesDetailedFeaturesOfObjectsInTheirEnvironment = 'noticesDetailedFeaturesOfObjectsInTheirEnvironment',\r\n                                seeksToAcquireBasicSkillsInTurningOnAndOperatingIctEquipment = 'seeksToAcquireBasicSkillsInTurningOnAndOperatingIctEquipment',\r\n                                operatesMechanicalToys = 'operatesMechanicalToys',\r\n                                joinsInSingingFavouriteSongs = 'joinsInSingingFavouriteSongs',\r\n                                createsSoundsByBangingShakingTappingOrBlowing = 'createsSoundsByBangingShakingTappingOrBlowing',\r\n                                showsAnInterestInTheWayMusicalInstrumentsSound = 'showsAnInterestInTheWayMusicalInstrumentsSound',\r\n                                experimentsWithBlocksColoursAndMarks = 'experimentsWithBlocksColoursAndMarks',\r\n                                beginningToUseRepresentationToCommunicate = 'beginningToUseRepresentationToCommunicate',\r\n                                beginningToMakeBelieveByPretending = 'beginningToMakeBelieveByPretending',\r\n                                listensToOthersOneToOneOrInSmallGroups = 'listensToOthersOneToOneOrInSmallGroups',\r\n                                communicationListensToStoriesWithIncreasingAttentionAndRecall = 'communicationListensToStoriesWithIncreasingAttentionAndRecall',\r\n                                joinsInWithRepeatedRefrainsAndAnticipatesKeyEventsInRhymesAndStories = 'joinsInWithRepeatedRefrainsAndAnticipatesKeyEventsInRhymesAndStories',\r\n                                focusingAttention = 'focusingAttention',\r\n                                isAbleToFollowDirections = 'isAbleToFollowDirections',\r\n                                understandsUseOfObjects = 'understandsUseOfObjects',\r\n                                showsUnderstandingOfPrepositions = 'showsUnderstandingOfPrepositions',\r\n                                respondsToSimpleInstructions = 'respondsToSimpleInstructions',\r\n                                beginningToUnderstandWhyAndHowQuestions = 'beginningToUnderstandWhyAndHowQuestions',\r\n                                beginningToUseMoreComplexSentencesToLinkThoughts = 'beginningToUseMoreComplexSentencesToLinkThoughts',\r\n                                canRetellASimplePastEventInCorrectOrder = 'canRetellASimplePastEventInCorrectOrder',\r\n                                usesTalkToConnectIdeas = 'usesTalkToConnectIdeas',\r\n                                questionsWhyThingsHappenAndGivesExplanations = 'questionsWhyThingsHappenAndGivesExplanations',\r\n                                usesARangeOfTenses = 'usesARangeOfTenses',\r\n                                usesIntonationRhythmAndPhrasingToMakeTheMeaningClearToOthers = 'usesIntonationRhythmAndPhrasingToMakeTheMeaningClearToOthers',\r\n                                usesVocabularyFocusedOnObjectsAndPeopleThatAreOfParticularImportanceToThem = 'usesVocabularyFocusedOnObjectsAndPeopleThatAreOfParticularImportanceToThem',\r\n                                buildsUpVocabularyThatReflectsTheirExperiences = 'buildsUpVocabularyThatReflectsTheirExperiences',\r\n                                usesTalkInPretendingThatObjectsStandForSomethingElse = 'usesTalkInPretendingThatObjectsStandForSomethingElse',\r\n                                movesFreelyAndWithPleasureAndConfidenceInARangeOfWays = 'movesFreelyAndWithPleasureAndConfidenceInARangeOfWays',\r\n                                mountsStairsStepsOrClimbingEquipmentUsingAlternateFeet = 'mountsStairsStepsOrClimbingEquipmentUsingAlternateFeet',\r\n                                walksDownstairsTwoFeetToEachStepWhileCarryingASmallObject = 'walksDownstairsTwoFeetToEachStepWhileCarryingASmallObject',\r\n                                runsSkilfullyAndNegotiatesSpaceSuccessfully = 'runsSkilfullyAndNegotiatesSpaceSuccessfully',\r\n                                canStandMomentarilyOnOneFoot = 'canStandMomentarilyOnOneFoot',\r\n                                canCatchALargeBall = 'canCatchALargeBall',\r\n                                drawsLinesAndCirclesUsingGrossMotorMovements = 'drawsLinesAndCirclesUsingGrossMotorMovements',\r\n                                usesOneHandedToolsAndEquipment = 'usesOneHandedToolsAndEquipment',\r\n                                holdsPencilBetweenThumbAndTwoFingers = 'holdsPencilBetweenThumbAndTwoFingers',\r\n                                holdsPencilNearPoint = 'holdsPencilNearPoint',\r\n                                canCopySomeLetters = 'canCopySomeLetters',\r\n                                canTellAdultsWhenHungryOrTiredOrWhenTheyWantToRestOrPlay = 'canTellAdultsWhenHungryOrTiredOrWhenTheyWantToRestOrPlay',\r\n                                observesTheEffectsOfActivityOnTheirBodies = 'observesTheEffectsOfActivityOnTheirBodies',\r\n                                understandsThatEquipmentAndToolsHaveToBeUsedSafely = 'understandsThatEquipmentAndToolsHaveToBeUsedSafely',\r\n                                gainsMoreBowelAndBladderControlAndCanAttendToToiletingNeeds = 'gainsMoreBowelAndBladderControlAndCanAttendToToiletingNeeds',\r\n                                canUsuallyManageWashingAndDryingHands = 'canUsuallyManageWashingAndDryingHands',\r\n                                dressesWithHelp = 'dressesWithHelp',\r\n                                canPlayInAGroupExtendingAndElaboratingPlayIdeas = 'canPlayInAGroupExtendingAndElaboratingPlayIdeas',\r\n                                initiatesPlayOfferingCuesToPeersToJoinThem = 'initiatesPlayOfferingCuesToPeersToJoinThem',\r\n                                keepsPlayGoingByRespondingToWhatOthersAreSayingOrDoing = 'keepsPlayGoingByRespondingToWhatOthersAreSayingOrDoing',\r\n                                demonstratesFriendlyBehaviour = 'demonstratesFriendlyBehaviour',\r\n                                canSelectAndUseActivitiesAndResourcesWithHelp = 'canSelectAndUseActivitiesAndResourcesWithHelp',\r\n                                welcomesAndValuesPraiseForWhatTheyHaveDone = 'welcomesAndValuesPraiseForWhatTheyHaveDone',\r\n                                enjoysResponsibilityOfCarryingOutSmallTasks = 'enjoysResponsibilityOfCarryingOutSmallTasks',\r\n                                isMoreOutgoingTowardsUnfamiliarPeople = 'isMoreOutgoingTowardsUnfamiliarPeople',\r\n                                confidentToTalkToOtherChildrenWhenPlaying = 'confidentToTalkToOtherChildrenWhenPlaying',\r\n                                showsConfidenceInAskingAdultsForHelp = 'showsConfidenceInAskingAdultsForHelp',\r\n                                awareOfOwnFeelingsAndKnowsThatSomeActionsHurt = 'awareOfOwnFeelingsAndKnowsThatSomeActionsHurt',\r\n                                beginsToAcceptTheNeedsOfOthersAndCanShare = 'beginsToAcceptTheNeedsOfOthersAndCanShare',\r\n                                canUsuallyTolerateDelayWhenNeedsAreNotImmediatelyMet = 'canUsuallyTolerateDelayWhenNeedsAreNotImmediatelyMet',\r\n                                canUsuallyAdaptBehaviourToDifferentEvents = 'canUsuallyAdaptBehaviourToDifferentEvents',\r\n                                enjoysRhymingAndRhythmicActivities = 'enjoysRhymingAndRhythmicActivities',\r\n                                showsAwarenessOfRhymeAndAlliteration = 'showsAwarenessOfRhymeAndAlliteration',\r\n                                recognisesRhythmInSpokenWords = 'recognisesRhythmInSpokenWords',\r\n                                listensToAndJoinsInWithStoriesAndPoems = 'listensToAndJoinsInWithStoriesAndPoems',\r\n                                joinsInWithRepeatedRefrainsAndAnticipatesKeyEvents = 'joinsInWithRepeatedRefrainsAndAnticipatesKeyEvents',\r\n                                beginningToBeAwareOfTheWayStoriesAreStructured = 'beginningToBeAwareOfTheWayStoriesAreStructured',\r\n                                suggestsHowTheStoryMightEnd = 'suggestsHowTheStoryMightEnd',\r\n                                describesMainStorySettingsEventsAndPrincipalCharacters = 'describesMainStorySettingsEventsAndPrincipalCharacters',\r\n                                showsInterestInIllustrationsAndPrintInBooks = 'showsInterestInIllustrationsAndPrintInBooks',\r\n                                recognisesFamiliarWordsAndSigns = 'recognisesFamiliarWordsAndSigns',\r\n                                looksAtBooksIndependently = 'looksAtBooksIndependently',\r\n                                handlesBooksCarefully = 'handlesBooksCarefully',\r\n                                knowsInformationCanBeRelayedInTheFormOfPrint = 'knowsInformationCanBeRelayedInTheFormOfPrint',\r\n                                holdsBooksTheCorrectWayUpAndTurnsPages = 'holdsBooksTheCorrectWayUpAndTurnsPages',\r\n                                knowsThatPrintCarriesMeaning = 'knowsThatPrintCarriesMeaning',\r\n                                sometimesGivesMeaningToMarksAsTheyDrawAndPaint = 'sometimesGivesMeaningToMarksAsTheyDrawAndPaint',\r\n                                ascribesMeaningsToMarksThatTheySeeInDifferentPlaces = 'ascribesMeaningsToMarksThatTheySeeInDifferentPlaces',\r\n                                usesSomeNumberNamesAndNumberLanguageSpontaneously = 'usesSomeNumberNamesAndNumberLanguageSpontaneously',\r\n                                usesSomeNumberNamesAccuratelyInPlay = 'usesSomeNumberNamesAccuratelyInPlay',\r\n                                recitesNumbersInOrderToTen = 'recitesNumbersInOrderToTen',\r\n                                knowsThatNumbersIdentifyHowManyObjectsAreInASet = 'knowsThatNumbersIdentifyHowManyObjectsAreInASet',\r\n                                beginningToRepresentNumbersUsingFingersMarksPaperOrPictures = 'beginningToRepresentNumbersUsingFingersMarksPaperOrPictures',\r\n                                sometimesMatchesNumeralAndQuantityCorrectly = 'sometimesMatchesNumeralAndQuantityCorrectly',\r\n                                showsCuriosityAboutNumbersByOfferingCommentsOrAskingQuestions = 'showsCuriosityAboutNumbersByOfferingCommentsOrAskingQuestions',\r\n                                comparesTwoGroupsOfObjectsSayingWhenTheyHaveTheSameNumber = 'comparesTwoGroupsOfObjectsSayingWhenTheyHaveTheSameNumber',\r\n                                showsAnInterestInNumberProblems = 'showsAnInterestInNumberProblems',\r\n                                separatesAGroupOfThreeOrFourObjectsInDifferentWays = 'separatesAGroupOfThreeOrFourObjectsInDifferentWays',\r\n                                showsAnInterestInNumeralsInTheEnvironment = 'showsAnInterestInNumeralsInTheEnvironment',\r\n                                showsAnInterestInRepresentingNumbers = 'showsAnInterestInRepresentingNumbers',\r\n                                realisesNotOnlyObjectsButAnythingCanBeCounted = 'realisesNotOnlyObjectsButAnythingCanBeCounted',\r\n                                showsAnInterestInShapeAndSpaceByPlayingWithShapes = 'showsAnInterestInShapeAndSpaceByPlayingWithShapes',\r\n                                showsAwarenessOfSimilaritiesOfShapesInTheEnvironment = 'showsAwarenessOfSimilaritiesOfShapesInTheEnvironment',\r\n                                usesPositionalLanguage = 'usesPositionalLanguage',\r\n                                showsInterestInShapeBySustainedConstructionActivityOrByTalkingAboutShapes = 'showsInterestInShapeBySustainedConstructionActivityOrByTalkingAboutShapes',\r\n                                showsInterestInShapesInTheEnvironment = 'showsInterestInShapesInTheEnvironment',\r\n                                usesShapesAppropriatelyForTasks = 'usesShapesAppropriatelyForTasks',\r\n                                beginningToTalkAboutTheShapesOfEverydayObjects = 'beginningToTalkAboutTheShapesOfEverydayObjects',\r\n                                showsInterestInTheLivesOfPeopleWhoAreFamiliarToThem = 'showsInterestInTheLivesOfPeopleWhoAreFamiliarToThem',\r\n                                remembersAndTalksAboutSignificantEvents = 'remembersAndTalksAboutSignificantEvents',\r\n                                recognisesAndDescribesSpecialTimesOrEvents = 'recognisesAndDescribesSpecialTimesOrEvents',\r\n                                showsInterestInDifferentOccupationsAndWaysOfLife = 'showsInterestInDifferentOccupationsAndWaysOfLife',\r\n                                knowsSomeOfTheThingsThatMakeThemUnique = 'knowsSomeOfTheThingsThatMakeThemUnique',\r\n                                commentsAndAsksQuestionsAboutAspectsOfTheirFamiliarWorld = 'commentsAndAsksQuestionsAboutAspectsOfTheirFamiliarWorld',\r\n                                canTalkAboutSomeOfTheThingsTheyHaveObserved = 'canTalkAboutSomeOfTheThingsTheyHaveObserved',\r\n                                talksAboutWhyThingsHappenAndHowThingsWork = 'talksAboutWhyThingsHappenAndHowThingsWork',\r\n                                developingAnUnderstandingOfGrowthDecayAndChangesOverTime = 'developingAnUnderstandingOfGrowthDecayAndChangesOverTime',\r\n                                showsCareAndConcernForLivingThingsAndTheEnvironment = 'showsCareAndConcernForLivingThingsAndTheEnvironment',\r\n                                knowsHowToOperateSimpleEquipment = 'knowsHowToOperateSimpleEquipment',\r\n                                showsAnInterestInTechnologicalToys = 'showsAnInterestInTechnologicalToys',\r\n                                showsSkillInMakingToysWorkByPressingPartsOrLiftingFlaps = 'showsSkillInMakingToysWorkByPressingPartsOrLiftingFlaps',\r\n                                knowsThatInformationCanBeRetrievedFromComputers = 'knowsThatInformationCanBeRetrievedFromComputers',\r\n                                enjoysJoiningInWithDancingAndRingGames = 'enjoysJoiningInWithDancingAndRingGames',\r\n                                singsAFewFamiliarSongs = 'singsAFewFamiliarSongs',\r\n                                beginningToMoveRhythmically = 'beginningToMoveRhythmically',\r\n                                imitatesMovementInResponseToMusic = 'imitatesMovementInResponseToMusic',\r\n                                tapsOutSimpleRepeatedRhythms = 'tapsOutSimpleRepeatedRhythms',\r\n                                exploresAndLearnsHowSoundsCanBeChanged = 'exploresAndLearnsHowSoundsCanBeChanged',\r\n                                exploresColourAndHowColoursCanBeChanged = 'exploresColourAndHowColoursCanBeChanged',\r\n                                understandsThatTheyCanUseLinesToEncloseASpace = 'understandsThatTheyCanUseLinesToEncloseASpace',\r\n                                beginningToBeInterestedInAndDescribeTheTextureOfThings = 'beginningToBeInterestedInAndDescribeTheTextureOfThings',\r\n                                usesVariousConstructionMaterials = 'usesVariousConstructionMaterials',\r\n                                beginningToConstructStackingBlocksVerticallyAndHorizontally = 'beginningToConstructStackingBlocksVerticallyAndHorizontally',\r\n                                joinsConstructionPiecesTogetherToBuildAndBalance = 'joinsConstructionPiecesTogetherToBuildAndBalance',\r\n                                realisesToolsCanBeUsedForAPurpose = 'realisesToolsCanBeUsedForAPurpose',\r\n                                developingPreferencesForFormsOfExpression = 'developingPreferencesForFormsOfExpression',\r\n                                usesMovementToExpressFeelings = 'usesMovementToExpressFeelings',\r\n                                createsMovementInResponseToMusic = 'createsMovementInResponseToMusic',\r\n                                singsToSelfAndMakesUpSimpleSongs = 'singsToSelfAndMakesUpSimpleSongs',\r\n                                makesUpRhythms = 'makesUpRhythms',\r\n                                noticesWhatAdultsDoImitatingWhatIsObserved = 'noticesWhatAdultsDoImitatingWhatIsObserved',\r\n                                engagesInImaginativeRoleplayBasedOnOwnFirstHandExperiences = 'engagesInImaginativeRoleplayBasedOnOwnFirstHandExperiences',\r\n                                buildsStoriesAroundToys = 'buildsStoriesAroundToys',\r\n                                usesAvailableResourcesToCreatePropsToSupportRoleplay = 'usesAvailableResourcesToCreatePropsToSupportRoleplay',\r\n                                capturesExperiencesAndResponsesWithARangeOfMedia = 'capturesExperiencesAndResponsesWithARangeOfMedia',\r\n                                maintainsAttentionConcentratesAndSitsQuietlyDuringAppropriateActivity = 'maintainsAttentionConcentratesAndSitsQuietlyDuringAppropriateActivity',\r\n                                twoChannelledAttentionCanListenAndDoForShortSpan = 'twoChannelledAttentionCanListenAndDoForShortSpan',\r\n                                understandsHumour = 'understandsHumour',\r\n                                respondsToInstructionsInvolvingATwoPartSequence = 'respondsToInstructionsInvolvingATwoPartSequence',\r\n                                ableToFollowAStoryWithoutPicturesOrProps = 'ableToFollowAStoryWithoutPicturesOrProps',\r\n                                listensAndRespondsToIdeasExpressedByOthers = 'listensAndRespondsToIdeasExpressedByOthers',\r\n                                extendsVocabularyEspeciallyByGroupingAndNaming = 'extendsVocabularyEspeciallyByGroupingAndNaming',\r\n                                usesLanguageToImagineAndRecreateRolesAndExperiences = 'usesLanguageToImagineAndRecreateRolesAndExperiences',\r\n                                linksStatementsAndSticksToAMainThemeOrIntention = 'linksStatementsAndSticksToAMainThemeOrIntention',\r\n                                usesTalkToOrganiseSequenceAndClarifyThinkingIdeasFeelingsAndEvents = 'usesTalkToOrganiseSequenceAndClarifyThinkingIdeasFeelingsAndEvents',\r\n                                communicationIntroducesAStorylineOrNarrativeIntoTheirPlay = 'communicationIntroducesAStorylineOrNarrativeIntoTheirPlay',\r\n                                experimentsWithDifferentWaysOfMoving = 'experimentsWithDifferentWaysOfMoving',\r\n                                jumpsOffAnObjectAndLandsAppropriately = 'jumpsOffAnObjectAndLandsAppropriately',\r\n                                negotiatesSpaceSuccessfullyWhenPlayingRacingAndChasingGames = 'negotiatesSpaceSuccessfullyWhenPlayingRacingAndChasingGames',\r\n                                travelsWithConfidenceAndSkillAroundUnderOverAndThroughClimbingEquipment = 'travelsWithConfidenceAndSkillAroundUnderOverAndThroughClimbingEquipment',\r\n                                showsIncreasingControlOverAnObjectInPushingPattingThrowingCatchingOrKicking = 'showsIncreasingControlOverAnObjectInPushingPattingThrowingCatchingOrKicking',\r\n                                usesSimpleToolsToEffectChangesToMaterials = 'usesSimpleToolsToEffectChangesToMaterials',\r\n                                handlesToolsObjectsConstructionAndMalleableMaterialsSafely = 'handlesToolsObjectsConstructionAndMalleableMaterialsSafely',\r\n                                showsAPreferenceForADominantHand = 'showsAPreferenceForADominantHand',\r\n                                beginsToUseAnticlockwiseMovementAndRetraceVerticalLines = 'beginsToUseAnticlockwiseMovementAndRetraceVerticalLines',\r\n                                beginsToFormRecognisableLetters = 'beginsToFormRecognisableLetters',\r\n                                usesAPencilAndHoldsItEffectivelyToFormRecognisableLetters = 'usesAPencilAndHoldsItEffectivelyToFormRecognisableLetters',\r\n                                eatsAHealthyRangeOfFoodstuffsAndUnderstandsNeedForVarietyInFood = 'eatsAHealthyRangeOfFoodstuffsAndUnderstandsNeedForVarietyInFood',\r\n                                usuallyDryAndCleanDuringTheDay = 'usuallyDryAndCleanDuringTheDay',\r\n                                showsSomeUnderstandingThatGoodPracticesWithRegardToExerciseEatingSleepingAndHygiene = 'showsSomeUnderstandingThatGoodPracticesWithRegardToExerciseEatingSleepingAndHygiene',\r\n                                showsUnderstandingOfTheNeedForSafetyWhenTacklingNewChallenges = 'showsUnderstandingOfTheNeedForSafetyWhenTacklingNewChallenges',\r\n                                showsUnderstandingOfHowToTransportAndStoreEquipmentSafely = 'showsUnderstandingOfHowToTransportAndStoreEquipmentSafely',\r\n                                practicesSomeAppropriateSafetyMeasuresWithoutDirectSupervision = 'practicesSomeAppropriateSafetyMeasuresWithoutDirectSupervision',\r\n                                initiatesOwnConversations = 'initiatesOwnConversations',\r\n                                explainsOwnKnowledgeAndUnderstandingAndAsksAppropriateQuestions = 'explainsOwnKnowledgeAndUnderstandingAndAsksAppropriateQuestions',\r\n                                takesStepsToResolveConflictsWithOtherChildren = 'takesStepsToResolveConflictsWithOtherChildren',\r\n                                confidentToSpeakToOthersAboutOwnNeedsWantsInterestsAndOpinions = 'confidentToSpeakToOthersAboutOwnNeedsWantsInterestsAndOpinions',\r\n                                canDescribeSelfInPositiveTermsAndTalkAboutAbilities = 'canDescribeSelfInPositiveTermsAndTalkAboutAbilities',\r\n                                understandsThatOwnActionsAffectOtherPeople = 'understandsThatOwnActionsAffectOtherPeople',\r\n                                awareOfTheBoundariesSetAndOfBehaviouralExpectations = 'awareOfTheBoundariesSetAndOfBehaviouralExpectations',\r\n                                beginningToBeAbleToNegotiateAndSolveProblemsWithoutAggression = 'beginningToBeAbleToNegotiateAndSolveProblemsWithoutAggression',\r\n                                readingContinuesARhymingString = 'readingContinuesARhymingString',\r\n                                writingContinuesARhymingString = 'writingContinuesARhymingString',\r\n                                readingHearsAndSaysTheInitialSoundInWords = 'readingHearsAndSaysTheInitialSoundInWords',\r\n                                writingHearsAndSaysTheInitialSoundInWords = 'writingHearsAndSaysTheInitialSoundInWords',\r\n                                canSegmentTheSoundsInSimpleWords = 'canSegmentTheSoundsInSimpleWords',\r\n                                readingLinksSoundsToLettersNamingAndSoundingTheLettersOfTheAlphabet = 'readingLinksSoundsToLettersNamingAndSoundingTheLettersOfTheAlphabet',\r\n                                writingLinksSoundsToLettersNamingAndSoundingTheLettersOfTheAlphabet = 'writingLinksSoundsToLettersNamingAndSoundingTheLettersOfTheAlphabet',\r\n                                beginsToReadWordsAndSimpleSentences = 'beginsToReadWordsAndSimpleSentences',\r\n                                usesVocabularyAndFormsOfSpeechThatAreIncreasinglyInfluencedByTheirExperiencesOfBooks = 'usesVocabularyAndFormsOfSpeechThatAreIncreasinglyInfluencedByTheirExperiencesOfBooks',\r\n                                enjoysAnIncreasingRangeOfBooks = 'enjoysAnIncreasingRangeOfBooks',\r\n                                knowsThatInformationCanBeRetrievedFromBooksAndComputers = 'knowsThatInformationCanBeRetrievedFromBooksAndComputers',\r\n                                givesMeaningToMarksTheyMakeAsTheyDrawWriteAndPaint = 'givesMeaningToMarksTheyMakeAsTheyDrawWriteAndPaint',\r\n                                beginsToBreakTheFlowOfSpeechIntoWords = 'beginsToBreakTheFlowOfSpeechIntoWords',\r\n                                canSegmentTheSoundsInSimpleWordsAndBlendThemTogether = 'canSegmentTheSoundsInSimpleWordsAndBlendThemTogether',\r\n                                usesSomeClearlyIdentifiableLettersToCommunicate = 'usesSomeClearlyIdentifiableLettersToCommunicate',\r\n                                writesOwnNameAndOtherThingsSuchAsLabels = 'writesOwnNameAndOtherThingsSuchAsLabels',\r\n                                attemptsToWriteShortSentencesInMeaningfulContexts = 'attemptsToWriteShortSentencesInMeaningfulContexts',\r\n                                recogniseSomeNumeralsOfPersonalSignificance = 'recogniseSomeNumeralsOfPersonalSignificance',\r\n                                recognisesNumbersOneToFive = 'recognisesNumbersOneToFive',\r\n                                countsUpToThreeOrFourObjectsBySayingOneNumberNameForEachItem = 'countsUpToThreeOrFourObjectsBySayingOneNumberNameForEachItem',\r\n                                countsActionsOrObjectsWhichCannotBeMoved = 'countsActionsOrObjectsWhichCannotBeMoved',\r\n                                countsObjectsToTenAndBeginningToCountBeyondTen = 'countsObjectsToTenAndBeginningToCountBeyondTen',\r\n                                countsOutUpToSixObjectsFromALargerGroup = 'countsOutUpToSixObjectsFromALargerGroup',\r\n                                selectsTheCorrectNumeralToRepresentOneToFiveThenOneToTen = 'selectsTheCorrectNumeralToRepresentOneToFiveThenOneToTen',\r\n                                countsAnIrregularArrangementOfUpToTenObjects = 'countsAnIrregularArrangementOfUpToTenObjects',\r\n                                estimatesHowManyObjectsTheyCanSeeAndChecksByCountingThem = 'estimatesHowManyObjectsTheyCanSeeAndChecksByCountingThem',\r\n                                usesTheLanguageOfMoreAndFewerToCompare = 'usesTheLanguageOfMoreAndFewerToCompare',\r\n                                findsTheTotalNumberOfItemsInTwoGroups = 'findsTheTotalNumberOfItemsInTwoGroups',\r\n                                saysTheNumberThatIsOneMoreThanAGivenNumber = 'saysTheNumberThatIsOneMoreThanAGivenNumber',\r\n                                findsOneMoreOrOneLessFromAGroupOfUpToFiveThenTenObjects = 'findsOneMoreOrOneLessFromAGroupOfUpToFiveThenTenObjects',\r\n                                inPracticalActivitiesAndDiscussionBeginningToUseAddingAndSubtracting = 'inPracticalActivitiesAndDiscussionBeginningToUseAddingAndSubtracting',\r\n                                recordsUsingMarksThatTheyCanInterpretAndExplain = 'recordsUsingMarksThatTheyCanInterpretAndExplain',\r\n                                beginsToIdentifyOwnMathematicalProblemsBasedOnOwnInterests = 'beginsToIdentifyOwnMathematicalProblemsBasedOnOwnInterests',\r\n                                beginningToUseMathematicalNamesForSolidAndFlatShapes = 'beginningToUseMathematicalNamesForSolidAndFlatShapes',\r\n                                selectsAParticularNamedShape = 'selectsAParticularNamedShape',\r\n                                canDescribeTheirRelativePositionSuchAsBehind = 'canDescribeTheirRelativePositionSuchAsBehind',\r\n                                ordersTwoOrThreeItemsByLengthOrHeight = 'ordersTwoOrThreeItemsByLengthOrHeight',\r\n                                ordersTwoItemsByWeightOrCapacity = 'ordersTwoItemsByWeightOrCapacity',\r\n                                usesFamiliarObjectsAndCommonShapesToCreateAndRecreatePatterns = 'usesFamiliarObjectsAndCommonShapesToCreateAndRecreatePatterns',\r\n                                usesEverydayLanguageRelatedToTime = 'usesEverydayLanguageRelatedToTime',\r\n                                beginningToUseEverydayLanguageRelatedToMoney = 'beginningToUseEverydayLanguageRelatedToMoney',\r\n                                ordersAndSequencesFamiliarEvents = 'ordersAndSequencesFamiliarEvents',\r\n                                measuresShortPeriodsOfTimeInSimpleWays = 'measuresShortPeriodsOfTimeInSimpleWays',\r\n                                enjoysJoiningInWithFamilyCustomsAndRoutines = 'enjoysJoiningInWithFamilyCustomsAndRoutines',\r\n                                looksCloselyAtSimilaritiesDifferencesPatternsAndChange = 'looksCloselyAtSimilaritiesDifferencesPatternsAndChange',\r\n                                completesASimpleProgramOnAComputer = 'completesASimpleProgramOnAComputer',\r\n                                usesIctHardwareToInteractWithAgeAppropriateComputerSoftware = 'usesIctHardwareToInteractWithAgeAppropriateComputerSoftware',\r\n                                beginsToBuildARepertoireOfSongsAndDances = 'beginsToBuildARepertoireOfSongsAndDances',\r\n                                exploresTheDifferentSoundsOfInstruments = 'exploresTheDifferentSoundsOfInstruments',\r\n                                exploresWhatHappensWhenTheyMixColours = 'exploresWhatHappensWhenTheyMixColours',\r\n                                experimentsToCreateDifferentTextures = 'experimentsToCreateDifferentTextures',\r\n                                understandsThatDifferentMediaCanBeCombined = 'understandsThatDifferentMediaCanBeCombined',\r\n                                manipulatesMaterialsToAchieveAPlannedEffect = 'manipulatesMaterialsToAchieveAPlannedEffect',\r\n                                constructsWithAPurposeInMind = 'constructsWithAPurposeInMind',\r\n                                usesSimpleToolsAndTechniquesCompetentlyAndAppropriately = 'usesSimpleToolsAndTechniquesCompetentlyAndAppropriately',\r\n                                selectsAppropriateResourcesAndAdaptsWorkWhereNecessary = 'selectsAppropriateResourcesAndAdaptsWorkWhereNecessary',\r\n                                selectsToolsAndTechniquesNeededToShapeAssembleAndJoinMaterials = 'selectsToolsAndTechniquesNeededToShapeAssembleAndJoinMaterials',\r\n                                createSimpleRepresentationsOfEventsPeopleAndObjects = 'createSimpleRepresentationsOfEventsPeopleAndObjects',\r\n                                initiatesNewCombinationsOfMovementAndGesture = 'initiatesNewCombinationsOfMovementAndGesture',\r\n                                choosesParticularColoursToUseForAPurpose = 'choosesParticularColoursToUseForAPurpose',\r\n                                playsAlongsideOtherChildrenWhoAreEngagedInTheSameTheme = 'playsAlongsideOtherChildrenWhoAreEngagedInTheSameTheme',\r\n                                playsCooperativelyAsPartOfAGroupToDevelopAndActOutANarrative = 'playsCooperativelyAsPartOfAGroupToDevelopAndActOutANarrative',\r\n                                showingCuriosityAboutObjectsEventsAndPeople = 'showingCuriosityAboutObjectsEventsAndPeople',\r\n                                showingParticularInterests = 'showingParticularInterests',\r\n                                engagingInOpenEndedActivities = 'engagingInOpenEndedActivities',\r\n                                usingSensesToExploreTheWorldAroundThem = 'usingSensesToExploreTheWorldAroundThem',\r\n                                pretendingObjectsAreThingsFromTheirExperience = 'pretendingObjectsAreThingsFromTheirExperience',\r\n                                representingTheirExperiencesInPlay = 'representingTheirExperiencesInPlay',\r\n                                takingOnARoleInTheirPlay = 'takingOnARoleInTheirPlay',\r\n                                actingOutExperiencesWithOtherPeople = 'actingOutExperiencesWithOtherPeople',\r\n                                initiatingActivities = 'initiatingActivities',\r\n                                seekingChallenges = 'seekingChallenges',\r\n                                showingACanDoAttitude = 'showingACanDoAttitude',\r\n                                takingARiskEngaginginNewExperiencesAndLearningByTrialAndError = 'takingARiskEngaginginNewExperiencesAndLearningByTrialAndError',\r\n                                maintainingFocusOnTheirActivityForAPeriodOfTime = 'maintainingFocusOnTheirActivityForAPeriodOfTime',\r\n                                showingHighLevelsOfEnergyFascination = 'showingHighLevelsOfEnergyFascination',\r\n                                notEasilyDistracted = 'notEasilyDistracted',\r\n                                payingAttentionToDetails = 'payingAttentionToDetails',\r\n                                persistingWithActivityWhenChallengesOccur = 'persistingWithActivityWhenChallengesOccur',\r\n                                showingABeliefThatMoreEffortOrADifferentApproachWillPayOff = 'showingABeliefThatMoreEffortOrADifferentApproachWillPayOff',\r\n                                bouncingBackAfterDifficulties = 'bouncingBackAfterDifficulties',\r\n                                showingSatisfactionInMeetingTheirOwnGoals = 'showingSatisfactionInMeetingTheirOwnGoals',\r\n                                beingProudOfHowTheyAccomplishedSomethingNotJustTheEndResult = 'beingProudOfHowTheyAccomplishedSomethingNotJustTheEndResult',\r\n                                enjoyingMeetingChallengesForTheirOwnSakeRatherThanExternalRewardsOrPraise = 'enjoyingMeetingChallengesForTheirOwnSakeRatherThanExternalRewardsOrPraise',\r\n                                thinkingOfIdeas = 'thinkingOfIdeas',\r\n                                findingNewWaysToSolveProblems = 'findingNewWaysToSolveProblems',\r\n                                findingNewWaysToDoThings = 'findingNewWaysToDoThings',\r\n                                makingLinksAndNoticingPatternsInTheirExperience = 'makingLinksAndNoticingPatternsInTheirExperience',\r\n                                makingPredictions = 'makingPredictions',\r\n                                testingTheirIdeas = 'testingTheirIdeas',\r\n                                developingIdeaOfGroupingSequencesCauseAndEffect = 'developingIdeaOfGroupingSequencesCauseAndEffect',\r\n                                planningMakingDecisionsAboutHowToApproachATaskSolveAProblemAndReachAGoal = 'planningMakingDecisionsAboutHowToApproachATaskSolveAProblemAndReachAGoal',\r\n                                checkingHowWellTheirActivitiesAreGoing = 'checkingHowWellTheirActivitiesAreGoing',\r\n                                changingStrategyAsNeeded = 'changingStrategyAsNeeded',\r\n                                reviewingHowWellTheApproachWorked = 'reviewingHowWellTheApproachWorked',\r\n                                wellbeing = 'wellbeing',\r\n                                involvement = 'involvement',\r\n                                expressiveMovesWholeBodyToSoundsTheyEnjoy08To20 = 'expressiveMovesWholeBodyToSoundsTheyEnjoy08To20',\r\n                                expressiveMovesWholeBodyToSoundsTheyEnjoy16To26 = 'expressiveMovesWholeBodyToSoundsTheyEnjoy16To26',\r\n                                psedUsesPointingWithEyeGazeToMakeRequestsAndToShareInterest = 'psedUsesPointingWithEyeGazeToMakeRequestsAndToShareInterest',\r\n                                experimentsWithARangeOfMediaThroughSensoryExploration16To26 = 'experimentsWithARangeOfMediaThroughSensoryExploration16To26',\r\n                                imitatesAndImprovisesActionsTheyHaveObserved16To26 = 'imitatesAndImprovisesActionsTheyHaveObserved16To26',\r\n                                beginsToMoveToMusicListenToOrJoinInRhymesOrSongs16To26 = 'beginsToMoveToMusicListenToOrJoinInRhymesOrSongs16To26',\r\n                                noticesAndIsInterestedInTheEffectsOfMakingMarks16To26 = 'noticesAndIsInterestedInTheEffectsOfMakingMarks16To26',\r\n                                expressiveIntroducesAStorylineOrNarrativeIntoTheirPlay = 'expressiveIntroducesAStorylineOrNarrativeIntoTheirPlay',\r\n                                readingListensToStoriesWithIncreasingAttentionAndRecall = 'readingListensToStoriesWithIncreasingAttentionAndRecall',\r\n                                eyfs2021TurnTowardsFamiliarSounds = 'eyfs2021TurnTowardsFamiliarSounds',\r\n                                eyfs2021GazeAtFaces = 'eyfs2021GazeAtFaces',\r\n                                eyfs2021WatchSomeonesFaceAsTheyTalk = 'eyfs2021WatchSomeonesFaceAsTheyTalk',\r\n                                eyfs2021CopyWhatAdultsDo = 'eyfs2021CopyWhatAdultsDo',\r\n                                eyfs2021EnjoySinging = 'eyfs2021EnjoySinging',\r\n                                eyfs2021RecogniseAndAreCalmedByAFamiliarAndFriendlyVoice = 'eyfs2021RecogniseAndAreCalmedByAFamiliarAndFriendlyVoice',\r\n                                eyfs2021ListenAndRespondToASimpleInstruction = 'eyfs2021ListenAndRespondToASimpleInstruction',\r\n                                eyfs2021MakeSoundsToGetAttentionInDifferentWaysForExample = 'eyfs2021MakeSoundsToGetAttentionInDifferentWaysForExample',\r\n                                eyfs2021BabbleUsingSoundsLikeBaba = 'eyfs2021BabbleUsingSoundsLikeBaba',\r\n                                eyfs2021UseGesturesLikeWavingAndPointingToCommunicate = 'eyfs2021UseGesturesLikeWavingAndPointingToCommunicate',\r\n                                eyfs2021ReachOrPointToSomethingTheyWantWhileMakingSounds = 'eyfs2021ReachOrPointToSomethingTheyWantWhileMakingSounds',\r\n                                eyfs2021CopyYourGesturesAndWords = 'eyfs2021CopyYourGesturesAndWords',\r\n                                eyfs2021ConstantlyBabbleAndUseSingleWordsDuringPlay = 'eyfs2021ConstantlyBabbleAndUseSingleWordsDuringPlay',\r\n                                eyfs2021UseIntonation = 'eyfs2021UseIntonation',\r\n                                eyfs2021UnderstandSingleWordsInContextCup = 'eyfs2021UnderstandSingleWordsInContextCup',\r\n                                eyfs2021UnderstandFrequentlyUsedWordsSuchAsAllGone = 'eyfs2021UnderstandFrequentlyUsedWordsSuchAsAllGone',\r\n                                eyfs2021UnderstandSimpleInstructionsLikeGiveToNannyOrStop = 'eyfs2021UnderstandSimpleInstructionsLikeGiveToNannyOrStop',\r\n                                eyfs2021RecogniseAndPointToObjectsIfAskedAboutThem = 'eyfs2021RecogniseAndPointToObjectsIfAskedAboutThem',\r\n                                eyfs2021GenerallyFocusOnAnActivityOfTheirOwnChoiceAndFindItDifficultToBeD = 'eyfs2021GenerallyFocusOnAnActivityOfTheirOwnChoiceAndFindItDifficultToBeD',\r\n                                eyfs2021ListenToOtherPeoplesTalkWithInterest = 'eyfs2021ListenToOtherPeoplesTalkWithInterest',\r\n                                eyfs2021MakeThemselvesUnderstood = 'eyfs2021MakeThemselvesUnderstood',\r\n                                eyfs2021StartToSayHowTheyAreFeeling = 'eyfs2021StartToSayHowTheyAreFeeling',\r\n                                eyfs2021StartToDevelopConversation = 'eyfs2021StartToDevelopConversation',\r\n                                eyfs2021DevelopPretendPlay = 'eyfs2021DevelopPretendPlay',\r\n                                eyfs2021UseTheSpeechSoundsP = 'eyfs2021UseTheSpeechSoundsP',\r\n                                eyfs2021Pronounce = 'eyfs2021Pronounce',\r\n                                eyfs2021ListenToSimpleStoriesAndUnderstandWhatIsHappening = 'eyfs2021ListenToSimpleStoriesAndUnderstandWhatIsHappening',\r\n                                eyfs2021IdentifyFamiliarObjectsAndPropertiesForPractitionersWhenTheyAreDescrib = 'eyfs2021IdentifyFamiliarObjectsAndPropertiesForPractitionersWhenTheyAreDescrib',\r\n                                eyfs2021UnderstandAndActOnLongerSentencesLikeMakeTeddyJumpOrFindYourCoat = 'eyfs2021UnderstandAndActOnLongerSentencesLikeMakeTeddyJumpOrFindYourCoat',\r\n                                eyfs2021UnderstandSimpleQuestionsAboutWho = 'eyfs2021UnderstandSimpleQuestionsAboutWho',\r\n                                eyfs2021EnjoyListeningToLongerStoriesAndCanRememberMuchOfWhatHappens = 'eyfs2021EnjoyListeningToLongerStoriesAndCanRememberMuchOfWhatHappens',\r\n                                eyfs2021PayAttentionToMoreThanOneThingAtATime = 'eyfs2021PayAttentionToMoreThanOneThingAtATime',\r\n                                eyfs2021UseAWiderRangeOfVocabulary = 'eyfs2021UseAWiderRangeOfVocabulary',\r\n                                eyfs2021UnderstandAQuestionOrInstructionThatHasTwoParts = 'eyfs2021UnderstandAQuestionOrInstructionThatHasTwoParts',\r\n                                eyfs2021UnderstandWhyQuestions = 'eyfs2021UnderstandWhyQuestions',\r\n                                eyfs2021SingALargeRepertoireOfSongs = 'eyfs2021SingALargeRepertoireOfSongs',\r\n                                eyfs2021KnowManyRhymes = 'eyfs2021KnowManyRhymes',\r\n                                eyfs2021DevelopTheirCommunication = 'eyfs2021DevelopTheirCommunication',\r\n                                eyfs2021DevelopTheirPronunciationButMayHaveProblemsSaying = 'eyfs2021DevelopTheirPronunciationButMayHaveProblemsSaying',\r\n                                eyfs2021UseLongerSentencesOfFourToSixWords = 'eyfs2021UseLongerSentencesOfFourToSixWords',\r\n                                eyfs2021BeAbleToExpressAPointOfViewAndToDebateWhenTheyDisagreeWithAnAdul = 'eyfs2021BeAbleToExpressAPointOfViewAndToDebateWhenTheyDisagreeWithAnAdul',\r\n                                eyfs2021StartAConversationWithAnAdultOrAFriendAndContinueItForManyTurns = 'eyfs2021StartAConversationWithAnAdultOrAFriendAndContinueItForManyTurns',\r\n                                eyfs2021UseTalkToOrganiseThemselvesAndTheirPlay = 'eyfs2021UseTalkToOrganiseThemselvesAndTheirPlay',\r\n                                eyfs2021UnderstandHowToListenCarefullyAndWhyListeningIsImportant = 'eyfs2021UnderstandHowToListenCarefullyAndWhyListeningIsImportant',\r\n                                eyfs2021LearnNewVocabulary = 'eyfs2021LearnNewVocabulary',\r\n                                eyfs2021UseNewVocabularyThroughTheDay = 'eyfs2021UseNewVocabularyThroughTheDay',\r\n                                eyfs2021AskQuestionsToFindOutMoreAndToCheckTheyUnderstandWhatHasBeenSaidT = 'eyfs2021AskQuestionsToFindOutMoreAndToCheckTheyUnderstandWhatHasBeenSaidT',\r\n                                eyfs2021ArticulateTheirIdeasAndThoughtsInWellformedSentences = 'eyfs2021ArticulateTheirIdeasAndThoughtsInWellformedSentences',\r\n                                eyfs2021ConnectOneIdeaOrActionToAnotherUsingARangeOfConnectives = 'eyfs2021ConnectOneIdeaOrActionToAnotherUsingARangeOfConnectives',\r\n                                eyfs2021DescribeEventsInSomeDetail = 'eyfs2021DescribeEventsInSomeDetail',\r\n                                eyfs2021UseTalkToHelpWorkOutProblemsAndOrganiseThinkingAndActivities = 'eyfs2021UseTalkToHelpWorkOutProblemsAndOrganiseThinkingAndActivities',\r\n                                eyfs2021DevelopSocialPhrases = 'eyfs2021DevelopSocialPhrases',\r\n                                eyfs2021EngageInStorytimes = 'eyfs2021EngageInStorytimes',\r\n                                eyfs2021ListenToAndTalkAboutStoriesToBuildFamiliarityAndUnderstanding = 'eyfs2021ListenToAndTalkAboutStoriesToBuildFamiliarityAndUnderstanding',\r\n                                eyfs2021RetellTheStory = 'eyfs2021RetellTheStory',\r\n                                eyfs2021UseNewVocabularyInDifferentContexts = 'eyfs2021UseNewVocabularyInDifferentContexts',\r\n                                eyfs2021ListenCarefullyToRhymesAndSongs = 'eyfs2021ListenCarefullyToRhymesAndSongs',\r\n                                eyfs2021LearnRhymes = 'eyfs2021LearnRhymes',\r\n                                eyfs2021EngageInNonfictionBooks = 'eyfs2021EngageInNonfictionBooks',\r\n                                eyfs2021ListenToAndTalkAboutSelectedNonfictionToDevelopADeepFamiliarityWith = 'eyfs2021ListenToAndTalkAboutSelectedNonfictionToDevelopADeepFamiliarityWith',\r\n                                eyfs2021FindWaysToCalmThemselves = 'eyfs2021FindWaysToCalmThemselves',\r\n                                eyfs2021EstablishTheirSenseOfSelf = 'eyfs2021EstablishTheirSenseOfSelf',\r\n                                eyfs2021ExpressPreferencesAndDecisions = 'eyfs2021ExpressPreferencesAndDecisions',\r\n                                eyfs2021EngageWithOthersThroughGestures = 'eyfs2021EngageWithOthersThroughGestures',\r\n                                eyfs2021UseThatEngagementToAchieveAGoal = 'eyfs2021UseThatEngagementToAchieveAGoal',\r\n                                eyfs2021FindWaysOfManagingTransitions = 'eyfs2021FindWaysOfManagingTransitions',\r\n                                eyfs2021ThriveAsTheyDevelopSelfassurance = 'eyfs2021ThriveAsTheyDevelopSelfassurance',\r\n                                eyfs2021LookBackAsTheyCrawlOrWalkAwayFromTheirKeyPerson = 'eyfs2021LookBackAsTheyCrawlOrWalkAwayFromTheirKeyPerson',\r\n                                eyfs2021PlayWithIncreasingConfidenceOnTheirOwnAndWithOtherChildren = 'eyfs2021PlayWithIncreasingConfidenceOnTheirOwnAndWithOtherChildren',\r\n                                eyfs2021FeelConfidentWhenTakenOutAroundTheLocalNeighbourhood = 'eyfs2021FeelConfidentWhenTakenOutAroundTheLocalNeighbourhood',\r\n                                eyfs2021FeelStrongEnoughToExpressARangeOfEmotions = 'eyfs2021FeelStrongEnoughToExpressARangeOfEmotions',\r\n                                eyfs2021GrowInIndependence = 'eyfs2021GrowInIndependence',\r\n                                eyfs2021BeginToShowEffortfulControl = 'eyfs2021BeginToShowEffortfulControl',\r\n                                eyfs2021BeIncreasinglyAbleToTalkAboutAndManageTheirEmotions = 'eyfs2021BeIncreasinglyAbleToTalkAboutAndManageTheirEmotions',\r\n                                eyfs2021NoticeAndAskQuestionsAboutDifferences = 'eyfs2021NoticeAndAskQuestionsAboutDifferences',\r\n                                eyfs2021DevelopFriendshipsWithOtherChildren = 'eyfs2021DevelopFriendshipsWithOtherChildren',\r\n                                eyfs2021SafelyExploreEmotionsBeyondTheirNormalRangeThroughPlayAndStories = 'eyfs2021SafelyExploreEmotionsBeyondTheirNormalRangeThroughPlayAndStories',\r\n                                eyfs2021TalkAboutTheirFeelingsInMoreElaboratedWays = 'eyfs2021TalkAboutTheirFeelingsInMoreElaboratedWays',\r\n                                eyfs2021LearnToUseTheToiletWithHelp = 'eyfs2021LearnToUseTheToiletWithHelp',\r\n                                eyfs2021SelectAndUseActivitiesAndResources = 'eyfs2021SelectAndUseActivitiesAndResources',\r\n                                eyfs2021DevelopTheirSenseOfResponsibilityAndMembershipOfACommunity = 'eyfs2021DevelopTheirSenseOfResponsibilityAndMembershipOfACommunity',\r\n                                eyfs2021BecomeMoreOutgoingWithUnfamiliarPeople = 'eyfs2021BecomeMoreOutgoingWithUnfamiliarPeople',\r\n                                eyfs2021ShowMoreConfidenceInNewSocialSituations = 'eyfs2021ShowMoreConfidenceInNewSocialSituations',\r\n                                eyfs2021PlayWithOneOrMoreOtherChildren = 'eyfs2021PlayWithOneOrMoreOtherChildren',\r\n                                eyfs2021FindSolutionsToConflictsAndRivalries = 'eyfs2021FindSolutionsToConflictsAndRivalries',\r\n                                eyfs2021IncreasinglyFollowRules = 'eyfs2021IncreasinglyFollowRules',\r\n                                eyfs2021RememberRulesWithoutNeedingAnAdultToRemindThem = 'eyfs2021RememberRulesWithoutNeedingAnAdultToRemindThem',\r\n                                eyfs2021DevelopAppropriateWaysOfBeingAssertive = 'eyfs2021DevelopAppropriateWaysOfBeingAssertive',\r\n                                eyfs2021TalkWithOthersToSolveConflicts = 'eyfs2021TalkWithOthersToSolveConflicts',\r\n                                eyfs2021TalkAboutTheirFeelingsUsingWordsLikeHappy = 'eyfs2021TalkAboutTheirFeelingsUsingWordsLikeHappy',\r\n                                eyfs2021UnderstandGraduallyHowOthersMightBeFeeling = 'eyfs2021UnderstandGraduallyHowOthersMightBeFeeling',\r\n                                eyfs2021UseLargeAndSmallMotorSkillsToDoThingsIndependently = 'eyfs2021UseLargeAndSmallMotorSkillsToDoThingsIndependently',\r\n                                eyfs2021ShowAnIncreasingDesireToBeIndependent = 'eyfs2021ShowAnIncreasingDesireToBeIndependent',\r\n                                eyfs2021StartEatingIndependentlyAndLearningHowTouseaKnifeAndFork = 'eyfs2021StartEatingIndependentlyAndLearningHowTouseaKnifeAndFork',\r\n                                eyfs2021BeIncreasinglyIndependentAsTheyGetDressedAndUndressed = 'eyfs2021BeIncreasinglyIndependentAsTheyGetDressedAndUndressed',\r\n                                eyfs2021BeIncreasinglyIndependentInMeetingTheirOwnCareNeeds = 'eyfs2021BeIncreasinglyIndependentInMeetingTheirOwnCareNeeds',\r\n                                eyfs2021MakeHealthyChoicesAboutFood = 'eyfs2021MakeHealthyChoicesAboutFood',\r\n                                eyfs2021SeeThemselvesAsAValuableIndividual = 'eyfs2021SeeThemselvesAsAValuableIndividual',\r\n                                eyfs2021BuildConstructiveAndRespectfulRelationships = 'eyfs2021BuildConstructiveAndRespectfulRelationships',\r\n                                eyfs2021ExpressTheirFeelingsAndConsiderTheFeelingsOfOthers = 'eyfs2021ExpressTheirFeelingsAndConsiderTheFeelingsOfOthers',\r\n                                eyfs2021ShowResilienceAndPerseveranceInTheFaceOfChallenge = 'eyfs2021ShowResilienceAndPerseveranceInTheFaceOfChallenge',\r\n                                eyfs2021IdentifyAndModerateTheirOwnFeelingsSociallyAndEmotionally = 'eyfs2021IdentifyAndModerateTheirOwnFeelingsSociallyAndEmotionally',\r\n                                eyfs2021ThinkAboutThePerspectivesOfOthers = 'eyfs2021ThinkAboutThePerspectivesOfOthers',\r\n                                eyfs2021ManageTheirOwnNeedsPersonalHygiene = 'eyfs2021ManageTheirOwnNeedsPersonalHygiene',\r\n                                eyfs2021LiftTheirHeadWhileLyingOnTheirFront = 'eyfs2021LiftTheirHeadWhileLyingOnTheirFront',\r\n                                eyfs2021PushTheirChestUpWithStraightArms = 'eyfs2021PushTheirChestUpWithStraightArms',\r\n                                eyfs2021RollOverFromFrontToBack = 'eyfs2021RollOverFromFrontToBack',\r\n                                eyfs2021EnjoyMovingWhenOutdoorsAndInside = 'eyfs2021EnjoyMovingWhenOutdoorsAndInside',\r\n                                eyfs2021SitWithoutSupport = 'eyfs2021SitWithoutSupport',\r\n                                eyfs2021BeginToCrawlInDifferentWaysAndDirections = 'eyfs2021BeginToCrawlInDifferentWaysAndDirections',\r\n                                eyfs2021PullThemselvesUprightAndBouncingInPreparationForWalking = 'eyfs2021PullThemselvesUprightAndBouncingInPreparationForWalking',\r\n                                eyfs2021ReachOutForObjectsAsCoordinationDevelops = 'eyfs2021ReachOutForObjectsAsCoordinationDevelops',\r\n                                eyfs2021PassThingsFromOneHandToTheOther = 'eyfs2021PassThingsFromOneHandToTheOther',\r\n                                eyfs2021GraduallyGainControlOfTheirWholeBodyThroughContinualPracticeOfLargeM = 'eyfs2021GraduallyGainControlOfTheirWholeBodyThroughContinualPracticeOfLargeM',\r\n                                eyfs2021ClapAndStampToMusic = 'eyfs2021ClapAndStampToMusic',\r\n                                eyfs2021FitThemselvesIntoSpaces = 'eyfs2021FitThemselvesIntoSpaces',\r\n                                eyfs2021EnjoyStartingToKick = 'eyfs2021EnjoyStartingToKick',\r\n                                eyfs2021BuildIndependentlyWithARangeOfAppropriateResources = 'eyfs2021BuildIndependentlyWithARangeOfAppropriateResources',\r\n                                eyfs2021BeginToWalkIndependentlyChoosingAppropriatePropsToSupportAtFirst = 'eyfs2021BeginToWalkIndependentlyChoosingAppropriatePropsToSupportAtFirst',\r\n                                eyfs2021WalkRunJumpAndClimbAndStartToUseTheStairsIndependently = 'eyfs2021WalkRunJumpAndClimbAndStartToUseTheStairsIndependently',\r\n                                eyfs2021SpinRollAndIndependentlyUseRopesAndSwingsForExample = 'eyfs2021SpinRollAndIndependentlyUseRopesAndSwingsForExample',\r\n                                eyfs2021SitOnAPushalongWheeledToy = 'eyfs2021SitOnAPushalongWheeledToy',\r\n                                eyfs2021DevelopManipulationAndControl = 'eyfs2021DevelopManipulationAndControl',\r\n                                eyfs2021ExploreDifferentMaterialsAndTools = 'eyfs2021ExploreDifferentMaterialsAndTools',\r\n                                eyfs2021ContinueToDevelopTheirMovement = 'eyfs2021ContinueToDevelopTheirMovement',\r\n                                eyfs2021GoUpStepsAndStairs = 'eyfs2021GoUpStepsAndStairs',\r\n                                eyfs2021SkipHopStandOnOneLegAndHoldAPoseForAGameLikeMusicalStatues = 'eyfs2021SkipHopStandOnOneLegAndHoldAPoseForAGameLikeMusicalStatues',\r\n                                eyfs2021UseLargemuscleMovementsToWaveFlagsAndStreamers = 'eyfs2021UseLargemuscleMovementsToWaveFlagsAndStreamers',\r\n                                eyfs2021StartTakingPartInSomeGroupActivitiesWhichTheyMakeUpForThemselves = 'eyfs2021StartTakingPartInSomeGroupActivitiesWhichTheyMakeUpForThemselves',\r\n                                eyfs2021IncreasinglyBeAbleToUseAndRememberSequencesAndPatternsOfMovementsWhi = 'eyfs2021IncreasinglyBeAbleToUseAndRememberSequencesAndPatternsOfMovementsWhi',\r\n                                eyfs2021MatchTheirDevelopingPhysicalSkillsToTasksAndActivitiesInTheSetting = 'eyfs2021MatchTheirDevelopingPhysicalSkillsToTasksAndActivitiesInTheSetting',\r\n                                eyfs2021ChooseTheRightResourcesToCarryOutTheirOwnPlan = 'eyfs2021ChooseTheRightResourcesToCarryOutTheirOwnPlan',\r\n                                eyfs2021CollaborateWithOthersToManageLargeItems = 'eyfs2021CollaborateWithOthersToManageLargeItems',\r\n                                eyfs2021UseOnehandedToolsAndEquipment = 'eyfs2021UseOnehandedToolsAndEquipment',\r\n                                eyfs2021UseAComfortableGripWithGoodControlWhenHoldingPensAndPencils = 'eyfs2021UseAComfortableGripWithGoodControlWhenHoldingPensAndPencils',\r\n                                eyfs2021ShowAPreferenceForADominantHand = 'eyfs2021ShowAPreferenceForADominantHand',\r\n                                eyfs2021BeIncreasinglyIndependentAsTheyGetDressedAndUndressed2 = 'eyfs2021BeIncreasinglyIndependentAsTheyGetDressedAndUndressed2',\r\n                                eyfs2021ReviseAndRefineTheFundamentalMovementSkillsTheyHaveAlreadyAcquired = 'eyfs2021ReviseAndRefineTheFundamentalMovementSkillsTheyHaveAlreadyAcquired',\r\n                                eyfs2021ProgressTowardsAMoreFluentStyleOfMoving = 'eyfs2021ProgressTowardsAMoreFluentStyleOfMoving',\r\n                                eyfs2021DevelopTheOverallBodyStrength = 'eyfs2021DevelopTheOverallBodyStrength',\r\n                                eyfs2021DevelopTheirSmallMotorSkillsSoThatTheyCanUseARangeOfToolsCompetent = 'eyfs2021DevelopTheirSmallMotorSkillsSoThatTheyCanUseARangeOfToolsCompetent',\r\n                                eyfs2021UseTheirCoreMuscleStrengthToAchieveAGoodPostureWhenSittingAtATable = 'eyfs2021UseTheirCoreMuscleStrengthToAchieveAGoodPostureWhenSittingAtATable',\r\n                                eyfs2021CombineDifferentMovementsWithEaseAndFluency = 'eyfs2021CombineDifferentMovementsWithEaseAndFluency',\r\n                                eyfs2021ConfidentlyAndSafelyUseARangeOfLargeAndSmallApparatusIndoorsAndOuts = 'eyfs2021ConfidentlyAndSafelyUseARangeOfLargeAndSmallApparatusIndoorsAndOuts',\r\n                                eyfs2021DevelopOverallBodystrength = 'eyfs2021DevelopOverallBodystrength',\r\n                                eyfs2021FurtherDevelopAndRefineARangeOfBallSkillsIncluding = 'eyfs2021FurtherDevelopAndRefineARangeOfBallSkillsIncluding',\r\n                                eyfs2021DevelopConfidence = 'eyfs2021DevelopConfidence',\r\n                                eyfs2021DevelopTheFoundationsOfAHandwritingStyleWhichIsFast = 'eyfs2021DevelopTheFoundationsOfAHandwritingStyleWhichIsFast',\r\n                                eyfs2021KnowAndTalkAboutTheDifferentFactorsThatSupportTheirOverallHealthAnd = 'eyfs2021KnowAndTalkAboutTheDifferentFactorsThatSupportTheirOverallHealthAnd',\r\n                                eyfs2021FurtherDevelopTheSkillsTheyNeedToManageTheSchoolDaySuccessfully = 'eyfs2021FurtherDevelopTheSkillsTheyNeedToManageTheSchoolDaySuccessfully',\r\n                                eyfs2021EnjoySongsAndRhymes = 'eyfs2021EnjoySongsAndRhymes',\r\n                                eyfs2021JoinInWithSongsAndRhymes = 'eyfs2021JoinInWithSongsAndRhymes',\r\n                                eyfs2021SaySomeOfTheWordsInSongsAndRhymes = 'eyfs2021SaySomeOfTheWordsInSongsAndRhymes',\r\n                                eyfs2021CopyFingerMovementsAndOtherGestures = 'eyfs2021CopyFingerMovementsAndOtherGestures',\r\n                                eyfs2021SingSongsAndSayRhymesIndependently = 'eyfs2021SingSongsAndSayRhymesIndependently',\r\n                                eyfs2021EnjoySharingBooksWithAnAdult = 'eyfs2021EnjoySharingBooksWithAnAdult',\r\n                                eyfs2021PayAttentionAndRespondToThePicturesOrTheWords = 'eyfs2021PayAttentionAndRespondToThePicturesOrTheWords',\r\n                                eyfs2021HaveFavouriteBooksAndSeekThemOut = 'eyfs2021HaveFavouriteBooksAndSeekThemOut',\r\n                                eyfs2021RepeatWordsAndPhrasesFromFamiliarStories = 'eyfs2021RepeatWordsAndPhrasesFromFamiliarStories',\r\n                                eyfs2021AskQuestionsAboutTheBook = 'eyfs2021AskQuestionsAboutTheBook',\r\n                                eyfs2021DevelopPlayAroundFavouriteStoriesUsingProps = 'eyfs2021DevelopPlayAroundFavouriteStoriesUsingProps',\r\n                                eyfs2021NoticeSomePrint = 'eyfs2021NoticeSomePrint',\r\n                                eyfs2021EnjoyDrawingFreely = 'eyfs2021EnjoyDrawingFreely',\r\n                                eyfs2021AddSomeMarksToTheirDrawings = 'eyfs2021AddSomeMarksToTheirDrawings',\r\n                                eyfs2021MakeMarksOnTheirPictureToStandForTheirName = 'eyfs2021MakeMarksOnTheirPictureToStandForTheirName',\r\n                                eyfs2021UnderstandTheFiveKeyConceptsAboutPrint = 'eyfs2021UnderstandTheFiveKeyConceptsAboutPrint',\r\n                                eyfs2021DevelopTheirPhonologicalAwareness = 'eyfs2021DevelopTheirPhonologicalAwareness',\r\n                                eyfs2021EngageInExtendedConversationsAboutStories = 'eyfs2021EngageInExtendedConversationsAboutStories',\r\n                                eyfs2021UseSomeOfTheirPrintAndLetterKnowledgeInTheirEarlyWriting = 'eyfs2021UseSomeOfTheirPrintAndLetterKnowledgeInTheirEarlyWriting',\r\n                                eyfs2021WriteSomeOrAllOfTheirName = 'eyfs2021WriteSomeOrAllOfTheirName',\r\n                                eyfs2021WriteSomeLettersAccurately = 'eyfs2021WriteSomeLettersAccurately',\r\n                                eyfs2021ReadIndividualLettersBySayingTheSoundsForThem = 'eyfs2021ReadIndividualLettersBySayingTheSoundsForThem',\r\n                                eyfs2021BlendSoundsIntoWords = 'eyfs2021BlendSoundsIntoWords',\r\n                                eyfs2021ReadSomeLetterGroupsThatEachRepresentOneSoundAndSaySoundsForThem = 'eyfs2021ReadSomeLetterGroupsThatEachRepresentOneSoundAndSaySoundsForThem',\r\n                                eyfs2021ReadAFewCommonExceptionWordsMatchedToTheSchoolsPhonicProgramme = 'eyfs2021ReadAFewCommonExceptionWordsMatchedToTheSchoolsPhonicProgramme',\r\n                                eyfs2021ReadSimplePhrasesAndSentencesMadeUpOfWordsWithKnownLettersoundCorres = 'eyfs2021ReadSimplePhrasesAndSentencesMadeUpOfWordsWithKnownLettersoundCorres',\r\n                                eyfs2021RereadTheseBooksToBuildUpTheirConfidenceInWordReading = 'eyfs2021RereadTheseBooksToBuildUpTheirConfidenceInWordReading',\r\n                                eyfs2021FormLowercaseAndCapitalLettersCorrectly = 'eyfs2021FormLowercaseAndCapitalLettersCorrectly',\r\n                                eyfs2021SpellWordsByIdentifyingTheSoundsAndThenWritingTheSoundWithLetters = 'eyfs2021SpellWordsByIdentifyingTheSoundsAndThenWritingTheSoundWithLetters',\r\n                                eyfs2021WriteShortSentencesWithWordsWithKnownSoundletterCorrespondencesUsingA = 'eyfs2021WriteShortSentencesWithWordsWithKnownSoundletterCorrespondencesUsingA',\r\n                                eyfs2021RereadWhatTheyHaveWrittenToCheckThatItMakesSense = 'eyfs2021RereadWhatTheyHaveWrittenToCheckThatItMakesSense',\r\n                                eyfs2021CombineObjectsLikeStackingBlocksAndCups = 'eyfs2021CombineObjectsLikeStackingBlocksAndCups',\r\n                                eyfs2021TakePartInFingerRhymesWithNumbers = 'eyfs2021TakePartInFingerRhymesWithNumbers',\r\n                                eyfs2021ReactToChangesOfAmountInAGroupOfUpToThreeItems = 'eyfs2021ReactToChangesOfAmountInAGroupOfUpToThreeItems',\r\n                                eyfs2021CompareAmounts = 'eyfs2021CompareAmounts',\r\n                                eyfs2021DevelopCountinglikeBehaviour = 'eyfs2021DevelopCountinglikeBehaviour',\r\n                                eyfs2021CountInEverydayContexts = 'eyfs2021CountInEverydayContexts',\r\n                                eyfs2021ClimbAndSqueezeThemselvesIntoDifferentTypesOfSpaces = 'eyfs2021ClimbAndSqueezeThemselvesIntoDifferentTypesOfSpaces',\r\n                                eyfs2021BuildWithARangeOfResources = 'eyfs2021BuildWithARangeOfResources',\r\n                                eyfs2021CompleteInsetPuzzles = 'eyfs2021CompleteInsetPuzzles',\r\n                                eyfs2021CompareSizes = 'eyfs2021CompareSizes',\r\n                                eyfs2021NoticePatternsAndArrangeThingsInPatterns = 'eyfs2021NoticePatternsAndArrangeThingsInPatterns',\r\n                                eyfs2021DevelopFastRecognitionOfUpToObjects = 'eyfs2021DevelopFastRecognitionOfUpToObjects',\r\n                                eyfs2021ReciteNumbersPast = 'eyfs2021ReciteNumbersPast',\r\n                                eyfs2021SayOneNumberForEachItemInOrder = 'eyfs2021SayOneNumberForEachItemInOrder',\r\n                                eyfs2021KnowThatTheLastNumberReachedWhenCountingASmallSetOfObjectsTellsYou = 'eyfs2021KnowThatTheLastNumberReachedWhenCountingASmallSetOfObjectsTellsYou',\r\n                                eyfs2021ShowFingerNumbersUpTo = 'eyfs2021ShowFingerNumbersUpTo',\r\n                                eyfs2021LinkNumeralsAndAmounts = 'eyfs2021LinkNumeralsAndAmounts',\r\n                                eyfs2021ExperimentWithTheirOwnSymbolsAndMarksAsWellAsNumerals = 'eyfs2021ExperimentWithTheirOwnSymbolsAndMarksAsWellAsNumerals',\r\n                                eyfs2021SolveRealWorldMathematicalProblemsWithNumbersUpTo = 'eyfs2021SolveRealWorldMathematicalProblemsWithNumbersUpTo',\r\n                                eyfs2021CompareQuantitiesUsingLanguage = 'eyfs2021CompareQuantitiesUsingLanguage',\r\n                                eyfs2021TalkAboutAndExploreDAndDShapesForExample = 'eyfs2021TalkAboutAndExploreDAndDShapesForExample',\r\n                                eyfs2021UnderstandPositionThroughWordsAloneForExample = 'eyfs2021UnderstandPositionThroughWordsAloneForExample',\r\n                                eyfs2021DescribeAFamiliarRoute = 'eyfs2021DescribeAFamiliarRoute',\r\n                                eyfs2021DiscussRoutesAndLocations = 'eyfs2021DiscussRoutesAndLocations',\r\n                                eyfs2021MakeComparisonsBetweenObjectsRelatingToSize = 'eyfs2021MakeComparisonsBetweenObjectsRelatingToSize',\r\n                                eyfs2021SelectShapesAppropriately = 'eyfs2021SelectShapesAppropriately',\r\n                                eyfs2021CombineShapesToMakeNewOnesAnArch = 'eyfs2021CombineShapesToMakeNewOnesAnArch',\r\n                                eyfs2021TalkAboutAndIdentifyThePatternsAroundThem = 'eyfs2021TalkAboutAndIdentifyThePatternsAroundThem',\r\n                                eyfs2021ExtendAndCreateABABPatternsStick = 'eyfs2021ExtendAndCreateABABPatternsStick',\r\n                                eyfs2021NoticeAndCorrectAnErrorInARepeatingPattern = 'eyfs2021NoticeAndCorrectAnErrorInARepeatingPattern',\r\n                                eyfs2021BeginToDescribeASequenceOfEvents = 'eyfs2021BeginToDescribeASequenceOfEvents',\r\n                                eyfs2021CountObjects = 'eyfs2021CountObjects',\r\n                                eyfs2021Subitise = 'eyfs2021Subitise',\r\n                                eyfs2021LinkTheNumberSymbolNumeralWithItsCardinalNumberValue = 'eyfs2021LinkTheNumberSymbolNumeralWithItsCardinalNumberValue',\r\n                                eyfs2021CountBeyondTen = 'eyfs2021CountBeyondTen',\r\n                                eyfs2021CompareNumbers = 'eyfs2021CompareNumbers',\r\n                                eyfs2021UnderstandTheOneMoreThanoneLessThanRelationshipBetweenConsecutiveNumbe = 'eyfs2021UnderstandTheOneMoreThanoneLessThanRelationshipBetweenConsecutiveNumbe',\r\n                                eyfs2021ExploreTheCompositionOfNumbersTo = 'eyfs2021ExploreTheCompositionOfNumbersTo',\r\n                                eyfs2021AutomaticallyRecallNumberBondsForNumbersAndSomeTo = 'eyfs2021AutomaticallyRecallNumberBondsForNumbersAndSomeTo',\r\n                                eyfs2021SelectRotateAndManipulateShapesInOrderToDevelopSpatialReasoningSkills = 'eyfs2021SelectRotateAndManipulateShapesInOrderToDevelopSpatialReasoningSkills',\r\n                                eyfs2021ComposeAndDecomposeShapesSoThatChildrenRecogniseAShapeCanHaveOtherS = 'eyfs2021ComposeAndDecomposeShapesSoThatChildrenRecogniseAShapeCanHaveOtherS',\r\n                                eyfs2021ContinueCopyAndCreateRepeatingPatterns = 'eyfs2021ContinueCopyAndCreateRepeatingPatterns',\r\n                                eyfs2021CompareLength = 'eyfs2021CompareLength',\r\n                                eyfs2021RepeatActionsThatHaveAnEffect = 'eyfs2021RepeatActionsThatHaveAnEffect',\r\n                                eyfs2021ExploreMaterialsWithDifferentProperties = 'eyfs2021ExploreMaterialsWithDifferentProperties',\r\n                                eyfs2021ExploreNaturalMaterials = 'eyfs2021ExploreNaturalMaterials',\r\n                                eyfs2021ExploreAndRespondToDifferentNaturalPhenomenaInTheirSettingAndOnTrips = 'eyfs2021ExploreAndRespondToDifferentNaturalPhenomenaInTheirSettingAndOnTrips',\r\n                                eyfs2021MakeConnectionsBetweenTheFeaturesOfTheirFamilyAndOtherFamilies = 'eyfs2021MakeConnectionsBetweenTheFeaturesOfTheirFamilyAndOtherFamilies',\r\n                                eyfs2021NoticeDifferencesBetweenPeople = 'eyfs2021NoticeDifferencesBetweenPeople',\r\n                                eyfs2021UseAllTheirSensesInHandsonExplorationOfNaturalMaterials = 'eyfs2021UseAllTheirSensesInHandsonExplorationOfNaturalMaterials',\r\n                                eyfs2021ExploreCollectionsOfMaterialsWithSimilarAndorDifferentProperties = 'eyfs2021ExploreCollectionsOfMaterialsWithSimilarAndorDifferentProperties',\r\n                                eyfs2021TalkAboutWhatTheySee = 'eyfs2021TalkAboutWhatTheySee',\r\n                                eyfs2021BeginToMakeSenseOfTheirOwnLifestoryAndFamilysHistory = 'eyfs2021BeginToMakeSenseOfTheirOwnLifestoryAndFamilysHistory',\r\n                                eyfs2021ShowInterestInDifferentOccupations = 'eyfs2021ShowInterestInDifferentOccupations',\r\n                                eyfs2021ExploreHowThingsWork = 'eyfs2021ExploreHowThingsWork',\r\n                                eyfs2021PlantSeedsAndCareForGrowingPlants = 'eyfs2021PlantSeedsAndCareForGrowingPlants',\r\n                                eyfs2021UnderstandTheKeyFeaturesOfTheLifeCycleOfAPlantAndAnAnimal = 'eyfs2021UnderstandTheKeyFeaturesOfTheLifeCycleOfAPlantAndAnAnimal',\r\n                                eyfs2021BeginToUnderstandTheNeedToRespectAndCareForTheNaturalEnvironmentAnd = 'eyfs2021BeginToUnderstandTheNeedToRespectAndCareForTheNaturalEnvironmentAnd',\r\n                                eyfs2021ExploreAndTalkAboutDifferentForcesTheyCanFeel = 'eyfs2021ExploreAndTalkAboutDifferentForcesTheyCanFeel',\r\n                                eyfs2021TalkAboutTheDifferencesBetweenMaterialsAndChangesTheyNotice = 'eyfs2021TalkAboutTheDifferencesBetweenMaterialsAndChangesTheyNotice',\r\n                                eyfs2021ContinueDevelopingPositiveAttitudesAboutTheDifferencesBetweenPeople = 'eyfs2021ContinueDevelopingPositiveAttitudesAboutTheDifferencesBetweenPeople',\r\n                                eyfs2021KnowThatThereAreDifferentCountriesInTheWorldAndTalkAboutTheDifferen = 'eyfs2021KnowThatThereAreDifferentCountriesInTheWorldAndTalkAboutTheDifferen',\r\n                                eyfs2021TalkAboutMembersOfTheirImmediateFamilyAndCommunity = 'eyfs2021TalkAboutMembersOfTheirImmediateFamilyAndCommunity',\r\n                                eyfs2021NameAndDescribePeopleWhoAreFamiliarToThem = 'eyfs2021NameAndDescribePeopleWhoAreFamiliarToThem',\r\n                                eyfs2021CommentOnImagesOfFamiliarSituationsInThePast = 'eyfs2021CommentOnImagesOfFamiliarSituationsInThePast',\r\n                                eyfs2021CompareAndContrastCharactersFromStories = 'eyfs2021CompareAndContrastCharactersFromStories',\r\n                                eyfs2021DrawInformationFromASimpleMap = 'eyfs2021DrawInformationFromASimpleMap',\r\n                                eyfs2021UnderstandThatSomePlacesAreSpecialToMembersOfTheirCommunity = 'eyfs2021UnderstandThatSomePlacesAreSpecialToMembersOfTheirCommunity',\r\n                                eyfs2021RecogniseThatPeopleHaveDifferentBeliefsAndCelebrateSpecialTimesInDiff = 'eyfs2021RecogniseThatPeopleHaveDifferentBeliefsAndCelebrateSpecialTimesInDiff',\r\n                                eyfs2021RecogniseSomeSimilaritiesAndDifferencesBetweenLifeInThisCountryAndLif = 'eyfs2021RecogniseSomeSimilaritiesAndDifferencesBetweenLifeInThisCountryAndLif',\r\n                                eyfs2021ExploreTheNaturalWorldAroundThem = 'eyfs2021ExploreTheNaturalWorldAroundThem',\r\n                                eyfs2021DescribeWhatTheySee = 'eyfs2021DescribeWhatTheySee',\r\n                                eyfs2021RecogniseSomeEnvironmentsThatAreDifferentToTheOneInWhichTheyLive = 'eyfs2021RecogniseSomeEnvironmentsThatAreDifferentToTheOneInWhichTheyLive',\r\n                                eyfs2021UnderstandTheEffectOfChangingSeasonsOnTheNaturalWorldAroundThem = 'eyfs2021UnderstandTheEffectOfChangingSeasonsOnTheNaturalWorldAroundThem',\r\n                                eyfs2021ShowAttentionToSoundsAndMusic = 'eyfs2021ShowAttentionToSoundsAndMusic',\r\n                                eyfs2021RespondEmotionallyAndPhysicallyToMusicWhenItChanges = 'eyfs2021RespondEmotionallyAndPhysicallyToMusicWhenItChanges',\r\n                                eyfs2021MoveAndDanceToMusic = 'eyfs2021MoveAndDanceToMusic',\r\n                                eyfs2021AnticipatePhrasesAndActionsInRhymesAndSongs = 'eyfs2021AnticipatePhrasesAndActionsInRhymesAndSongs',\r\n                                eyfs2021ExploreTheirVoicesAndEnjoyMakingSounds = 'eyfs2021ExploreTheirVoicesAndEnjoyMakingSounds',\r\n                                eyfs2021JoinInWithSongsAndRhymes2 = 'eyfs2021JoinInWithSongsAndRhymes2',\r\n                                eyfs2021MakeRhythmicalAndRepetitiveSounds = 'eyfs2021MakeRhythmicalAndRepetitiveSounds',\r\n                                eyfs2021ExploreARangeOfSoundmakersAndInstrumentsAndPlayThemInDifferentWays = 'eyfs2021ExploreARangeOfSoundmakersAndInstrumentsAndPlayThemInDifferentWays',\r\n                                eyfs2021NoticePatternsWithStrongContrastsAndBeAttractedByPatternsResemblingTh = 'eyfs2021NoticePatternsWithStrongContrastsAndBeAttractedByPatternsResemblingTh',\r\n                                eyfs2021StartToMakeMarksIntentionally = 'eyfs2021StartToMakeMarksIntentionally',\r\n                                eyfs2021ExplorePaint = 'eyfs2021ExplorePaint',\r\n                                eyfs2021ExpressIdeasAndFeelingsThroughMakingMarks = 'eyfs2021ExpressIdeasAndFeelingsThroughMakingMarks',\r\n                                eyfs2021EnjoyAndTakePartInActionSongs = 'eyfs2021EnjoyAndTakePartInActionSongs',\r\n                                eyfs2021StartToDevelopPretendPlay = 'eyfs2021StartToDevelopPretendPlay',\r\n                                eyfs2021ExploreDifferentMaterials = 'eyfs2021ExploreDifferentMaterials',\r\n                                eyfs2021UseTheirImaginationAsTheyConsiderWhatTheyCanDoWithDifferentMaterials = 'eyfs2021UseTheirImaginationAsTheyConsiderWhatTheyCanDoWithDifferentMaterials',\r\n                                eyfs2021MakeSimpleModelsWhichExpressTheirIdeas = 'eyfs2021MakeSimpleModelsWhichExpressTheirIdeas',\r\n                                eyfs2021TakePartInSimplePretendPlay = 'eyfs2021TakePartInSimplePretendPlay',\r\n                                eyfs2021BeginToDevelopComplexStoriesUsingSmallWorldEquipmentLikeAnimalSets = 'eyfs2021BeginToDevelopComplexStoriesUsingSmallWorldEquipmentLikeAnimalSets',\r\n                                eyfs2021MakeImaginativeAndComplexSmallWorldsWithBlocksAndConstructionKits = 'eyfs2021MakeImaginativeAndComplexSmallWorldsWithBlocksAndConstructionKits',\r\n                                eyfs2021ExploreDifferentMaterialsFreely = 'eyfs2021ExploreDifferentMaterialsFreely',\r\n                                eyfs2021DevelopTheirOwnIdeasAndThenDecideWhichMaterialsToUseToExpressThem = 'eyfs2021DevelopTheirOwnIdeasAndThenDecideWhichMaterialsToUseToExpressThem',\r\n                                eyfs2021JoinDifferentMaterialsAndExploreDifferentTextures = 'eyfs2021JoinDifferentMaterialsAndExploreDifferentTextures',\r\n                                eyfs2021CreateClosedShapesWithContinuousLines = 'eyfs2021CreateClosedShapesWithContinuousLines',\r\n                                eyfs2021DrawWithIncreasingComplexityAndDetail = 'eyfs2021DrawWithIncreasingComplexityAndDetail',\r\n                                eyfs2021UseDrawingToRepresentIdeasLikeMovementOrLoudNoises = 'eyfs2021UseDrawingToRepresentIdeasLikeMovementOrLoudNoises',\r\n                                eyfs2021ShowDifferentEmotionsInTheirDrawingsAndPaintings = 'eyfs2021ShowDifferentEmotionsInTheirDrawingsAndPaintings',\r\n                                eyfs2021ExploreColourAndColourmixing = 'eyfs2021ExploreColourAndColourmixing',\r\n                                eyfs2021ListenWithIncreasedAttentionToSounds = 'eyfs2021ListenWithIncreasedAttentionToSounds',\r\n                                eyfs2021RespondToWhatTheyHaveHeard = 'eyfs2021RespondToWhatTheyHaveHeard',\r\n                                eyfs2021RememberAndSingEntireSongs = 'eyfs2021RememberAndSingEntireSongs',\r\n                                eyfs2021SingThePitchOfAToneSungByAnotherPersonPitchMatch = 'eyfs2021SingThePitchOfAToneSungByAnotherPersonPitchMatch',\r\n                                eyfs2021SingTheMelodicShapeMovingMelody = 'eyfs2021SingTheMelodicShapeMovingMelody',\r\n                                eyfs2021CreateTheirOwnSongs = 'eyfs2021CreateTheirOwnSongs',\r\n                                eyfs2021PlayInstrumentsWithIncreasingControlToExpressTheirFeelingsAndIdeas = 'eyfs2021PlayInstrumentsWithIncreasingControlToExpressTheirFeelingsAndIdeas',\r\n                                eyfs2021ExploreUseAndRefineAVarietyOfArtisticEffectsToExpressTheirIdeasAnd = 'eyfs2021ExploreUseAndRefineAVarietyOfArtisticEffectsToExpressTheirIdeasAnd',\r\n                                eyfs2021ReturnToAndBuildOnTheirPreviousLearning = 'eyfs2021ReturnToAndBuildOnTheirPreviousLearning',\r\n                                eyfs2021CreateCollaboratively = 'eyfs2021CreateCollaboratively',\r\n                                eyfs2021ListenAttentively = 'eyfs2021ListenAttentively',\r\n                                eyfs2021WatchAndTalkAboutDanceAndPerformanceArt = 'eyfs2021WatchAndTalkAboutDanceAndPerformanceArt',\r\n                                eyfs2021SingInAGroupOrOnTheirOwn = 'eyfs2021SingInAGroupOrOnTheirOwn',\r\n                                eyfs2021DevelopStorylinesInTheirPretendPlay = 'eyfs2021DevelopStorylinesInTheirPretendPlay',\r\n                                eyfs2021ExploreAndEngageInMusicMakingAndDance = 'eyfs2021ExploreAndEngageInMusicMakingAndDance',\r\n                                coel2021RealiseThatTheirActionsHaveAnEffectOnTheWorld = 'coel2021RealiseThatTheirActionsHaveAnEffectOnTheWorld',\r\n                                coel2021PlanAndThinkAheadAboutHowTheyWillExploreOrPlayWithObjects = 'coel2021PlanAndThinkAheadAboutHowTheyWillExploreOrPlayWithObjects',\r\n                                coel2021GuideTheirOwnThinkingAndActionsByReferringToVisualAidsOrByTalkingT = 'coel2021GuideTheirOwnThinkingAndActionsByReferringToVisualAidsOrByTalkingT',\r\n                                coel2021MakeIndependentChoices = 'coel2021MakeIndependentChoices',\r\n                                coel2021BringTheirOwnInterestsAndFascinationsIntoEarlyYearsSettings = 'coel2021BringTheirOwnInterestsAndFascinationsIntoEarlyYearsSettings',\r\n                                coel2021RespondToNewExperiencesThatYouBringToTheirAttention = 'coel2021RespondToNewExperiencesThatYouBringToTheirAttention',\r\n                                coel2021ParticipateInRoutines = 'coel2021ParticipateInRoutines',\r\n                                coel2021BeginToPredictSequencesBecauseTheyKnowRoutines = 'coel2021BeginToPredictSequencesBecauseTheyKnowRoutines',\r\n                                coel2021ShowGoaldirectedBehaviour = 'coel2021ShowGoaldirectedBehaviour',\r\n                                coel2021BeginToCorrectTheirMistakesThemselves = 'coel2021BeginToCorrectTheirMistakesThemselves',\r\n                                coel2021KeepOnTryingWhenThingsAreDifficult = 'coel2021KeepOnTryingWhenThingsAreDifficult',\r\n                                coel2021LearningToTakePartInSimplePretendPlay = 'coel2021LearningToTakePartInSimplePretendPlay',\r\n                                coel2021LearningToSortMaterials = 'coel2021LearningToSortMaterials',\r\n                                coel2021ReviewTheirProgressAsTheyTryToAchieveAGoal = 'coel2021ReviewTheirProgressAsTheyTryToAchieveAGoal',\r\n                                coel2021LearningToSolveRealProblems = 'coel2021LearningToSolveRealProblems',\r\n                                coel2021UsePretendPlayToThinkBeyondTheHereAndNowAndToUnderstandAnotherPers = 'coel2021UsePretendPlayToThinkBeyondTheHereAndNowAndToUnderstandAnotherPers',\r\n                                coel2021KnowMoreSoFeelConfidentAboutComingUpWithTheirOwnIdeas = 'coel2021KnowMoreSoFeelConfidentAboutComingUpWithTheirOwnIdeas',\r\n                                coel2021MakeMoreLinksBetweenTheirIdeas = 'coel2021MakeMoreLinksBetweenTheirIdeas',\r\n                                coel2021ConcentrateOnAchievingSomethingThatsImportantToThem = 'coel2021ConcentrateOnAchievingSomethingThatsImportantToThem'\r\n                            }\r\n                        \r\n\r\n                            export enum EyfsAspectKey {\r\n                                listeningAndAttention = 'listeningAndAttention',\r\n                                understanding = 'understanding',\r\n                                speaking = 'speaking',\r\n                                movingAndHandling = 'movingAndHandling',\r\n                                healthAndSelfCare = 'healthAndSelfCare',\r\n                                makingRelationships = 'makingRelationships',\r\n                                selfConfidenceAndSelfAwareness = 'selfConfidenceAndSelfAwareness',\r\n                                managingFeelingsAndBehaviour = 'managingFeelingsAndBehaviour',\r\n                                reading = 'reading',\r\n                                writing = 'writing',\r\n                                numbers = 'numbers',\r\n                                shapeSpaceAndMeasure = 'shapeSpaceAndMeasure',\r\n                                peopleAndCommunities = 'peopleAndCommunities',\r\n                                theWorld = 'theWorld',\r\n                                technology = 'technology',\r\n                                exploringMediaAndMaterials = 'exploringMediaAndMaterials',\r\n                                beingImaginative = 'beingImaginative'\r\n                            }\r\n                        \r\n\r\n                            export enum AgeBandKey {\r\n                                age_00_To_11 = 'age_00_To_11',\r\n                                age_08_To_20 = 'age_08_To_20',\r\n                                age_16_To_26 = 'age_16_To_26',\r\n                                age_22_To_36 = 'age_22_To_36',\r\n                                age_30_To_50 = 'age_30_To_50',\r\n                                age_40_To_60 = 'age_40_To_60',\r\n                                birthToThreeYears = 'birthToThreeYears',\r\n                                threeToFourYears = 'threeToFourYears',\r\n                                fourToFiveYears = 'fourToFiveYears'\r\n                            }\r\n                        \r\n\r\n                            export enum EyfsAreaKey {\r\n                                communicationAndLanguage = 'communicationAndLanguage',\r\n                                physicalDevelopment = 'physicalDevelopment',\r\n                                psed = 'psed',\r\n                                literacy = 'literacy',\r\n                                mathematics = 'mathematics',\r\n                                understandingTheWorld = 'understandingTheWorld',\r\n                                expressiveArtsAndDesign = 'expressiveArtsAndDesign'\r\n                            }\r\n                        \r\n\r\n                            export enum AssessmentType {\r\n                                twoYearCheck = 'twoYearCheck',\r\n                                eyfsProfile = 'eyfsProfile',\r\n                                sendSupportPlan = 'sendSupportPlan',\r\n                                twoYearCheck2021 = 'twoYearCheck2021',\r\n                                progressCheck2021 = 'progressCheck2021',\r\n                                eyfsProfile2021 = 'eyfsProfile2021'\r\n                            }\r\n                        \r\n\r\n                            export enum ObservationType {\r\n                                baselineObservation = 'baselineObservation',\r\n                                adultLedActivity = 'adultLedActivity',\r\n                                childInitiated = 'childInitiated',\r\n                                homeObservation = 'homeObservation',\r\n                                carerHomeObservation = 'carerHomeObservation',\r\n                                eyfs2021BaselineObservation = 'eyfs2021BaselineObservation'\r\n                            }\r\n                        \r\n\r\n                            export enum ObservationStatus {\r\n                                complete = 'complete',\r\n                                draft = 'draft',\r\n                                awaitingApproval = 'awaitingApproval',\r\n                                rejected = 'rejected'\r\n                            }\r\n                        \r\n\r\n                            export enum EdsValue {\r\n                                notStarted = 'notStarted',\r\n                                emerging = 'emerging',\r\n                                developing = 'developing',\r\n                                secure = 'secure'\r\n                            }\r\n                        \r\n\r\n                            export enum Gender {\r\n                                male = 'male',\r\n                                female = 'female'\r\n                            }\r\n                        \r\n\r\n                            export enum ReportType {\r\n                                progress = 'progress',\r\n                                learningJourney = 'learningJourney',\r\n                                tracker = 'tracker',\r\n                                nextSteps = 'nextSteps',\r\n                                statementGaps = 'statementGaps',\r\n                                coel = 'coel',\r\n                                wellbeingAndInvolvement = 'wellbeingAndInvolvement',\r\n                                statementGaps2021 = 'statementGaps2021',\r\n                                progress2021 = 'progress2021'\r\n                            }\r\n                        \r\n\r\n                            export enum CoelAreaKey {\r\n                                playingAndExploring = 'playingAndExploring',\r\n                                creatingAndThinkingCritically = 'creatingAndThinkingCritically',\r\n                                activeLearning = 'activeLearning'\r\n                            }\r\n                        \r\n\r\n                            export enum CoelAspectKey {\r\n                                choosingWaysToDoThings = 'choosingWaysToDoThings',\r\n                                makingLinks = 'makingLinks',\r\n                                havingTheirOwnIdeas = 'havingTheirOwnIdeas',\r\n                                enjoyingAchievingWhatTheySetOutToDo = 'enjoyingAchievingWhatTheySetOutToDo',\r\n                                keepingTrying = 'keepingTrying',\r\n                                beingInvolvedAndConcentrating = 'beingInvolvedAndConcentrating',\r\n                                beingWillingToHaveAGo = 'beingWillingToHaveAGo',\r\n                                playingWithWhatTheyKnow = 'playingWithWhatTheyKnow',\r\n                                findingOutAndExploring = 'findingOutAndExploring'\r\n                            }\r\n                        \r\n\r\n                            export enum AbacusChildStatusKey {\r\n                                registered = 'registered',\r\n                                left = 'left',\r\n                                deleted = 'deleted'\r\n                            }\r\n                        \r\n\r\n                            export enum Error {\r\n                                expiryDateNotInTheFuture = 'expiryDateNotInTheFuture',\r\n                                businessDoesNotExist = 'businessDoesNotExist'\r\n                            }\r\n                        \r\n\r\n                            export enum AssessmentExemptionReason {\r\n                                governmentExemption = 'governmentExemption',\r\n                                childHadBeenAbroad = 'childHadBeenAbroad',\r\n                                childHadLongAbsence = 'childHadLongAbsence',\r\n                                otherReason = 'otherReason'\r\n                            }\r\n                        \r\n\r\n                            export enum AssessmentStatus {\r\n                                completed = 'completed',\r\n                                draft = 'draft',\r\n                                awaitingApproval = 'awaitingApproval',\r\n                                rejected = 'rejected'\r\n                            }\r\n                        \r\n\r\n                            export enum EarlyLearningGoal {\r\n                                none = 'none',\r\n                                emerging = 'emerging',\r\n                                expected = 'expected',\r\n                                exceeding = 'exceeding'\r\n                            }\r\n                        \r\n\r\n                            export enum EyfsEarlyLearningGoalKey {\r\n                                listeningAttentionUnderstanding = 'listeningAttentionUnderstanding',\r\n                                speaking = 'speaking',\r\n                                selfRegulation = 'selfRegulation',\r\n                                managingSelf = 'managingSelf',\r\n                                buildingRelationships = 'buildingRelationships',\r\n                                grossMotorSkills = 'grossMotorSkills',\r\n                                fineMotorSkills = 'fineMotorSkills',\r\n                                comprehension = 'comprehension',\r\n                                wordReading = 'wordReading',\r\n                                writing = 'writing',\r\n                                numbers = 'numbers',\r\n                                numericalPatterns = 'numericalPatterns',\r\n                                pastPresent = 'pastPresent',\r\n                                peopleCultureCommunities = 'peopleCultureCommunities',\r\n                                theNaturalWorld = 'theNaturalWorld',\r\n                                creatingWithMaterials = 'creatingWithMaterials',\r\n                                beingImaginativeExpressive = 'beingImaginativeExpressive'\r\n                            }\r\n                        \r\n\r\n                            export enum UserType {\r\n                                user = 'user',\r\n                                carer = 'carer'\r\n                            }\r\n                        \r\n\r\n                            export enum EmailStatus {\r\n                                sent = 'sent',\r\n                                sendingFailed = 'sendingFailed',\r\n                                sentByProvider = 'sentByProvider',\r\n                                bounced = 'bounced',\r\n                                complaint = 'complaint',\r\n                                delivered = 'delivered',\r\n                                delayed = 'delayed',\r\n                                opened = 'opened',\r\n                                linkClicked = 'linkClicked',\r\n                                rejected = 'rejected',\r\n                                invalidEmailAddress = 'invalidEmailAddress'\r\n                            }\r\n                        \r\n\r\n                            export enum CommunicationThreadType {\r\n                                standard = 'standard',\r\n                                announcement = 'announcement'\r\n                            }\r\n                        \r\n\r\n                            export enum ParticipantType {\r\n                                user = 'user',\r\n                                carer = 'carer'\r\n                            }\r\n                        \r\n\r\n                            export enum QueuedCollectionStatus {\r\n                                unexecuted = 'unexecuted',\r\n                                cancelled = 'cancelled',\r\n                                failedToExecute = 'failedToExecute'\r\n                            }\r\n                        \r\n\r\n                            export enum UserPermission {\r\n                                childrenSection = 'childrenSection',\r\n                                familiesSection = 'familiesSection',\r\n                                financeSection = 'financeSection',\r\n                                staffSection = 'staffSection',\r\n                                calendarSection = 'calendarSection',\r\n                                settingsSection = 'settingsSection',\r\n                                communicateSection = 'communicateSection',\r\n                                reportsSection = 'reportsSection',\r\n                                reportTypeGeneral = 'reportTypeGeneral',\r\n                                reportTypeChildren = 'reportTypeChildren',\r\n                                reportTypeRoom = 'reportTypeRoom',\r\n                                reportTypeFinance = 'reportTypeFinance',\r\n                                reportTypeEnquiry = 'reportTypeEnquiry',\r\n                                reportTypeStaff = 'reportTypeStaff',\r\n                                reportTypeAgressoExport = 'reportTypeAgressoExport',\r\n                                reportTypeMailMerge = 'reportTypeMailMerge',\r\n                                dayshare = 'dayshare',\r\n                                footsteps = 'footsteps',\r\n                                editStartDate = 'editStartDate',\r\n                                accountsSection = 'accountsSection',\r\n                                staffSalary = 'staffSalary',\r\n                                portalStaffCommunication = 'portalStaffCommunication',\r\n                                portalEmailAudit = 'portalEmailAudit',\r\n                                messagingAccess = 'messagingAccess'\r\n                            }\r\n                        \r\n\r\n                            export enum NewChildren2StatusKey {\r\n                                registered = 'registered',\r\n                                left = 'left'\r\n                            }\r\n                        \r\n\r\n                            export enum CreateChildren2CohortsEnum {\r\n                                isSend = 'isSend',\r\n                                hasEal = 'hasEal',\r\n                                isGiftedAndTalented = 'isGiftedAndTalented',\r\n                                isLookedAfterChild = 'isLookedAfterChild',\r\n                                hasCarersInArmedForces = 'hasCarersInArmedForces',\r\n                                isFromMinorityEthnicGroup = 'isFromMinorityEthnicGroup',\r\n                                isEypp = 'isEypp',\r\n                                hasFreeSchoolMeals = 'hasFreeSchoolMeals',\r\n                                isTwoYearsFeEligible = 'isTwoYearsFeEligible',\r\n                                isFromGypsyRomaTravellerFamily = 'isFromGypsyRomaTravellerFamily',\r\n                                is1To1 = 'is1To1'\r\n                            }\r\n                        \r\n\r\n                            export enum Children2Cohort {\r\n                                specialEducationalNeedsAndDisabilities = 'specialEducationalNeedsAndDisabilities',\r\n                                englishAsAnAdditionalLanguage = 'englishAsAnAdditionalLanguage',\r\n                                giftedAndTalented = 'giftedAndTalented',\r\n                                lookedAfterChild = 'lookedAfterChild',\r\n                                carersInArmedForces = 'carersInArmedForces',\r\n                                gypsyRomanyTravellerFamily = 'gypsyRomanyTravellerFamily',\r\n                                minorityEthnicGroup = 'minorityEthnicGroup',\r\n                                receivesEarlyYearsPupilPremium = 'receivesEarlyYearsPupilPremium',\r\n                                receivesFreeSchoolMeals = 'receivesFreeSchoolMeals',\r\n                                requiresOneToOneCare = 'requiresOneToOneCare'\r\n                            }\r\n                        \r\n\r\n                            export enum StaffStatusType {\r\n                                current = 'current',\r\n                                longTermSick = 'longTermSick',\r\n                                maternityLeave = 'maternityLeave',\r\n                                left = 'left'\r\n                            }\r\n                        \r\n\r\n                            export enum ConsumableType {\r\n                                perRegularSession = 'perRegularSession',\r\n                                perDay = 'perDay',\r\n                                perFundedSession = 'perFundedSession',\r\n                                perFundedHour = 'perFundedHour'\r\n                            }\r\n                        \r\n\r\n                            export enum SortedBy {\r\n                                childName = 'childName',\r\n                                dateOfBirth = 'dateOfBirth',\r\n                                hoursBooked = 'hoursBooked',\r\n                                fundedHoursBooked = 'fundedHoursBooked'\r\n                            }\r\n                        \r\n\r\n                            export enum FieldCategory {\r\n                                child = 'child',\r\n                                carer = 'carer',\r\n                                custom = 'custom',\r\n                                enquiry = 'enquiry'\r\n                            }\r\n                        \r\n\r\n                            export enum EnquiryFieldType {\r\n                                shortText = 'shortText',\r\n                                longText = 'longText',\r\n                                date = 'date',\r\n                                email = 'email'\r\n                            }\r\n                        \r\n\r\n                            export enum SearchType {\r\n                                invoiceDate = 'invoiceDate',\r\n                                sessionDates = 'sessionDates',\r\n                                invoiceIds = 'invoiceIds',\r\n                                invoiceNumber = 'invoiceNumber'\r\n                            }\r\n                        \r\n","export enum UserPermission {\r\n\t\t\t\t\t childrenSection = 1,\r\n\t\t\t\t\t familiesSection = 2,\r\n\t\t\t\t\t financeSection = 3,\r\n\t\t\t\t\t staffSection = 4,\r\n\t\t\t\t\t calendarSection = 5,\r\n\t\t\t\t\t settingsSection = 6,\r\n\t\t\t\t\t communicateSection = 7,\r\n\t\t\t\t\t reportsSection = 8,\r\n\t\t\t\t\t reportTypeGeneral = 9,\r\n\t\t\t\t\t reportTypeChildren = 10,\r\n\t\t\t\t\t reportTypeRoom = 11,\r\n\t\t\t\t\t reportTypeFinance = 12,\r\n\t\t\t\t\t reportTypeEnquiry = 13,\r\n\t\t\t\t\t reportTypeStaff = 14,\r\n\t\t\t\t\t reportTypeAgressoExport = 15,\r\n\t\t\t\t\t reportTypeMailMerge = 16,\r\n\t\t\t\t\t dayshare = 17,\r\n\t\t\t\t\t footsteps = 18,\r\n\t\t\t\t\t editStartDate = 19,\r\n\t\t\t\t\t accountsSection = 20,\r\n\t\t\t\t\t staffSalary = 21,\r\n\t\t\t\t\t portalStaffCommunication = 22,\r\n\t\t\t\t\t portalEmailAudit = 23,\r\n\t\t\t\t\t messagingAccess = 24,\r\n\t\t\t}\r\nexport enum LogCategory {\r\n\t\t\t\t\t authentication = 0,\r\n\t\t\t\t\t authenticationModifications = 1,\r\n\t\t\t\t\t internalProcesses = 2,\r\n\t\t\t\t\t general = 3,\r\n\t\t\t}\r\nexport enum ContainerScope {\r\n\t\t\t\t\t perInjection = 0,\r\n\t\t\t\t\t perThreadScope = 1,\r\n\t\t\t\t\t singleton = 2,\r\n\t\t\t}\r\nexport enum ActionType {\r\n\t\t\t\t\t none = 0,\r\n\t\t\t\t\t link = 1,\r\n\t\t\t}\r\nexport enum AdvanceBookingReason {\r\n\t\t\t\t\t fixedSession = 1,\r\n\t\t\t\t\t kitchenDesignSession = 2,\r\n\t\t\t\t\t sENReservation = 3,\r\n\t\t\t\t\t birthdayParty = 4,\r\n\t\t\t\t\t schoolVisit = 5,\r\n\t\t\t\t\t otherReason = 6,\r\n\t\t\t}\r\nexport enum Areas {\r\n\t\t\t\t\t none = 0,\r\n\t\t\t\t\t email = 1,\r\n\t\t\t\t\t dailyActivity = 2,\r\n\t\t\t\t\t assessmentReport = 3,\r\n\t\t\t\t\t developmentReport = 4,\r\n\t\t\t\t\t learningJourney = 5,\r\n\t\t\t\t\t profiles = 6,\r\n\t\t\t\t\t learningJourneyReport = 7,\r\n\t\t\t\t\t trackerReport = 8,\r\n\t\t\t\t\t abacusFeePlanner = 9,\r\n\t\t\t\t\t communicate = 10,\r\n\t\t\t\t\t mailMerge = 11,\r\n\t\t\t\t\t accountStatement = 12,\r\n\t\t\t\t\t invoices = 13,\r\n\t\t\t}\r\nexport enum AssessmentChildAgeBandSelectionOptions {\r\n\t\t\t\t\t highestSecure = 1,\r\n\t\t\t\t\t highestCurrent = 2,\r\n\t\t\t\t\t manual = 3,\r\n\t\t\t}\r\nexport enum AssessmentExemptionReason {\r\n\t\t\t\t\t governmentExemption = 1,\r\n\t\t\t\t\t childHadBeenAbroad = 2,\r\n\t\t\t\t\t childHadLongAbsence = 3,\r\n\t\t\t\t\t otherReason = 4,\r\n\t\t\t}\r\nexport enum BusinessIntegrationType {\r\n\t\t\t\t\t resellerClub = 1,\r\n\t\t\t\t\t zendesk = 2,\r\n\t\t\t\t\t crechePager = 3,\r\n\t\t\t}\r\nexport enum CarePlanType {\r\n\t\t\t\t\t none = 0,\r\n\t\t\t\t\t allergy = 1,\r\n\t\t\t\t\t medicalCondition = 2,\r\n\t\t\t\t\t sen = 4,\r\n\t\t\t}\r\nexport enum ChildNameType {\r\n\t\t\t\t\t knownNameInsteadOfFirstName = 1,\r\n\t\t\t\t\t firstNameInsteadOfKnownName = 2,\r\n\t\t\t}\r\nexport enum ChildrenOrder {\r\n\t\t\t\t\t orderByKnownName = 1,\r\n\t\t\t\t\t orderByLastName = 2,\r\n\t\t\t\t\t orderByFirstName = 3,\r\n\t\t\t}\r\nexport enum ColourType {\r\n\t\t\t\t\t default = 0,\r\n\t\t\t\t\t primary = 1,\r\n\t\t\t\t\t success = 2,\r\n\t\t\t\t\t info = 3,\r\n\t\t\t\t\t warning = 4,\r\n\t\t\t\t\t danger = 5,\r\n\t\t\t}\r\nexport enum CrudPermission {\r\n\t\t\t\t\t none = 0,\r\n\t\t\t\t\t create = 1,\r\n\t\t\t\t\t read = 2,\r\n\t\t\t\t\t update = 4,\r\n\t\t\t\t\t delete = 8,\r\n\t\t\t}\r\nexport enum DistributionType {\r\n\t\t\t\t\t none = 0,\r\n\t\t\t\t\t individual = 1,\r\n\t\t\t\t\t business = 2,\r\n\t\t\t\t\t group = 3,\r\n\t\t\t\t\t global = 4,\r\n\t\t\t}\r\nexport enum ErrorCodes {\r\n\t\t\t\t\t errorNotTyped = 0,\r\n\t\t\t\t\t userDoesNotExist = 1,\r\n\t\t\t\t\t userDoesNotHaveApiAccess = 2,\r\n\t\t\t\t\t userIsForbidden = 3,\r\n\t\t\t\t\t oldEmailAddressNotTheSame = 4,\r\n\t\t\t\t\t oldPasswordNotTheSame = 5,\r\n\t\t\t\t\t userAlreadyExists = 6,\r\n\t\t\t\t\t userExistsAgainstDifferentBusiness = 7,\r\n\t\t\t\t\t resetTokenNotValid = 8,\r\n\t\t\t\t\t userIsAlreadyInACorporation = 9,\r\n\t\t\t\t\t userNotLoggedIn = 10,\r\n\t\t\t\t\t passwordDoesNotMatchHistoricalRequirements = 11,\r\n\t\t\t\t\t userIsAlreadyAssignedToCarePlan = 12,\r\n\t\t\t\t\t apiKeyInvalid = 100,\r\n\t\t\t\t\t authTokenDoesNotExist = 101,\r\n\t\t\t\t\t authTokenAlreadyLogged = 102,\r\n\t\t\t\t\t authApplicationDoesNotExist = 103,\r\n\t\t\t\t\t userDoesNotHaveBusinessCreatorRole = 200,\r\n\t\t\t\t\t permissionDoesNotExist = 201,\r\n\t\t\t\t\t businessDoesNotExist = 300,\r\n\t\t\t\t\t businessIsNotActive = 301,\r\n\t\t\t\t\t businessAlreadyExists = 302,\r\n\t\t\t\t\t businessAlreadyExistsIsAlreadyInACorporation = 303,\r\n\t\t\t\t\t businessIsInWrongCorporationForUser = 304,\r\n\t\t\t\t\t customFormDoesNotExist = 400,\r\n\t\t\t\t\t domainDoesNotExist = 450,\r\n\t\t\t\t\t fieldIsRequired = 500,\r\n\t\t\t\t\t emailAddressInvalid = 501,\r\n\t\t\t\t\t integrationTypeInvalid = 502,\r\n\t\t\t\t\t systemPreferenceInvalid = 503,\r\n\t\t\t\t\t recurrenceTypeInvalid = 504,\r\n\t\t\t\t\t actionTypeInvalid = 505,\r\n\t\t\t\t\t notificationTypeInvalid = 506,\r\n\t\t\t\t\t distributionTypeInvalid = 507,\r\n\t\t\t\t\t colourTypeInvalid = 508,\r\n\t\t\t\t\t tokenAlreadyLogged = 550,\r\n\t\t\t\t\t messageNotSuccessfullyValidated = 551,\r\n\t\t\t\t\t notificationDoesNotExist = 600,\r\n\t\t\t\t\t diaryEventTypeDoesNotExistAgainstBusiness = 625,\r\n\t\t\t\t\t diaryEventTypeDoesNotExist = 626,\r\n\t\t\t\t\t whenToAndTotalInSeriesNotSet = 627,\r\n\t\t\t\t\t diaryEventDoesNotExist = 628,\r\n\t\t\t\t\t diaryEventSeriesDoesNotExist = 629,\r\n\t\t\t\t\t whenToBeforeWhenFrom = 630,\r\n\t\t\t\t\t systemAlertDoesNotExist = 675,\r\n\t\t\t\t\t systemMessageDoesNotExist = 676,\r\n\t\t\t\t\t userPreferenceDoesNotExist = 700,\r\n\t\t\t\t\t parentaStaffUserDoesNotExist = 725,\r\n\t\t\t\t\t parentaStaffUserAlreadyExists = 726,\r\n\t\t\t\t\t parentaStaffUserIntegrationDoesNotExist = 727,\r\n\t\t\t\t\t carerDoesNotExist = 750,\r\n\t\t\t\t\t systemTourDoesNotExist = 775,\r\n\t\t\t\t\t corporationDoesNotExist = 800,\r\n\t\t\t\t\t childDoesNotExist = 850,\r\n\t\t\t\t\t featureDoesNotExist = 875,\r\n\t\t\t\t\t featureAlreadyExists = 876,\r\n\t\t\t\t\t trainingCourseDoesNotExist = 890,\r\n\t\t\t\t\t staffTrainingDoesNotExist = 900,\r\n\t\t\t\t\t userRatioDoesNotExist = 911,\r\n\t\t\t\t\t reservationDoesNotExist = 925,\r\n\t\t\t\t\t whenCollectedBeforeWhenStart = 926,\r\n\t\t\t\t\t periodDoesNotExist = 950,\r\n\t\t\t\t\t emergencySuspensionDoesNotExist = 975,\r\n\t\t\t\t\t whenEndedBeforeWhenStarted = 976,\r\n\t\t\t\t\t roleGroupPermissionDoesntExist = 1000,\r\n\t\t\t\t\t roleGroupDoesNotExist = 1001,\r\n\t\t\t\t\t secretQuestionDoesNotExist = 1025,\r\n\t\t\t\t\t userSecretAnswerDoesNotExist = 1030,\r\n\t\t\t\t\t allergyDoesNotExist = 1035,\r\n\t\t\t\t\t corporationDoesNotMatchForAllergyAndChild = 1045,\r\n\t\t\t\t\t childAllergyDoesNotExist = 1046,\r\n\t\t\t\t\t medicalConditionDoesNotExist = 1055,\r\n\t\t\t\t\t corporationDoesNotMatchForMedicalConditionAndChild = 1065,\r\n\t\t\t\t\t childMedicalConditionDoesNotExist = 1066,\r\n\t\t\t\t\t corporationPreferenceDoesNotExist = 1075,\r\n\t\t\t\t\t corporationPreferenceAlreadyExists = 1076,\r\n\t\t\t\t\t carePlanDoesNotExist = 1080,\r\n\t\t\t\t\t staffTrainingAlreadyAssignedToCarePlan = 1081,\r\n\t\t\t\t\t businessPreferenceDoesNotExist = 1085,\r\n\t\t\t\t\t businessPreferenceAlreadyExists = 1086,\r\n\t\t\t\t\t corporationDoesNotMatch = 1091,\r\n\t\t\t\t\t relationshipDoesNotExist = 1100,\r\n\t\t\t\t\t businessHoursDoesNotExist = 1120,\r\n\t\t\t\t\t businessHolidayDoesNotExist = 1130,\r\n\t\t\t\t\t relationshipAlreadyExistsForCarerAndChild = 1140,\r\n\t\t\t\t\t userTwoFactorCodeIncorrect = 1141,\r\n\t\t\t\t\t userOrIpLocked = 1142,\r\n\t\t\t\t\t noQuestionDetails = 4000,\r\n\t\t\t}\r\nexport enum EyfsTextBoxes {\r\n\t\t\t\t\t showEyfsAreaOnly = 1,\r\n\t\t\t\t\t showEyfsAspectsOnly = 2,\r\n\t\t\t\t\t showBothEyfsAreasAndAspects = 3,\r\n\t\t\t}\r\nexport enum Gender {\r\n\t\t\t\t\t male = 1,\r\n\t\t\t\t\t female = 2,\r\n\t\t\t}\r\nexport enum HolidayType {\r\n\t\t\t\t\t holiday = 1,\r\n\t\t\t\t\t closure = 2,\r\n\t\t\t}\r\nexport enum HomeObservationInviteStatus {\r\n\t\t\t\t\t pending = 1,\r\n\t\t\t\t\t accepted = 2,\r\n\t\t\t}\r\nexport enum LearningJourneyReportOrder {\r\n\t\t\t\t\t newestToOldest = 1,\r\n\t\t\t\t\t oldestToNewest = 2,\r\n\t\t\t}\r\nexport enum LegacyLoginPermission {\r\n\t\t\t\t\t dayshare = 1,\r\n\t\t\t\t\t footsteps = 2,\r\n\t\t\t\t\t nurseryDayshare = 4,\r\n\t\t\t\t\t nurseryFootsteps = 8,\r\n\t\t\t\t\t abacus = 16,\r\n\t\t\t\t\t footsteps2 = 32,\r\n\t\t\t\t\t nurseryFootsteps2 = 64,\r\n\t\t\t}\r\nexport enum MailEvents {\r\n\t\t\t\t\t printed = 0,\r\n\t\t\t\t\t delivered = 1,\r\n\t\t\t\t\t dropped = 2,\r\n\t\t\t\t\t bounced = 3,\r\n\t\t\t\t\t complained = 4,\r\n\t\t\t\t\t unsubscribed = 5,\r\n\t\t\t}\r\nexport enum NotificationType {\r\n\t\t\t\t\t none = 0,\r\n\t\t\t\t\t supportCase = 1,\r\n\t\t\t\t\t customerSatisfactionSurvey = 2,\r\n\t\t\t\t\t developmentRequest = 3,\r\n\t\t\t\t\t systemMessage = 4,\r\n\t\t\t\t\t newObservation = 5,\r\n\t\t\t\t\t newObservationComment = 6,\r\n\t\t\t\t\t observationRejection = 7,\r\n\t\t\t\t\t assessmentRejection = 8,\r\n\t\t\t}\r\nexport enum NotificationUserType {\r\n\t\t\t\t\t unknown = 0,\r\n\t\t\t\t\t user = 1,\r\n\t\t\t\t\t carer = 2,\r\n\t\t\t}\r\nexport enum OfficeType {\r\n\t\t\t\t\t nursery = 1,\r\n\t\t\t\t\t head = 2,\r\n\t\t\t\t\t creche = 3,\r\n\t\t\t}\r\nexport enum ParentaStaffUserIntegrationType {\r\n\t\t\t\t\t dayshare = 1,\r\n\t\t\t\t\t footsteps = 2,\r\n\t\t\t\t\t breathe = 3,\r\n\t\t\t}\r\nexport enum ParentaSystem {\r\n\t\t\t\t\t none = 0,\r\n\t\t\t\t\t abacus = 1,\r\n\t\t\t\t\t dayshare = 2,\r\n\t\t\t\t\t footsteps = 4,\r\n\t\t\t\t\t portal = 8,\r\n\t\t\t\t\t groupReporting = 16,\r\n\t\t\t\t\t parentPortal = 32,\r\n\t\t\t\t\t feePlanner = 64,\r\n\t\t\t\t\t creche = 128,\r\n\t\t\t\t\t footsteps2 = 256,\r\n\t\t\t}\r\nexport enum ParentaStaffRole {\r\n\t\t\t\t\t finance = 1,\r\n\t\t\t\t\t customerExperience = 2,\r\n\t\t\t\t\t developer = 3,\r\n\t\t\t}\r\nexport enum PermissionType {\r\n\t\t\t\t\t dashboardRead = 1,\r\n\t\t\t\t\t userProfileRead = 2,\r\n\t\t\t\t\t userProfileUpdate = 3,\r\n\t\t\t\t\t dashboardMessagesRead = 4,\r\n\t\t\t\t\t dashboardMessagesDelete = 5,\r\n\t\t\t\t\t staffManagementUpdate = 6,\r\n\t\t\t\t\t signupChildrenCreate = 7,\r\n\t\t\t\t\t bookinChildrenCreate = 8,\r\n\t\t\t\t\t childDetailsBasicCreate = 9,\r\n\t\t\t\t\t childDetailsBasicRead = 10,\r\n\t\t\t\t\t childDetailsBasicUpdate = 11,\r\n\t\t\t\t\t childDetailsAdvancedCreate = 12,\r\n\t\t\t\t\t childDetailsAdvancedRead = 13,\r\n\t\t\t\t\t childDetailsAdvancedUpdate = 14,\r\n\t\t\t\t\t childDetailsAdvancedDelete = 15,\r\n\t\t\t\t\t advanceBookingCreate = 16,\r\n\t\t\t\t\t advanceBookingRead = 17,\r\n\t\t\t\t\t advanceBookingUpdate = 18,\r\n\t\t\t\t\t advanceBookingDelete = 19,\r\n\t\t\t\t\t forcedLogoutUpdate = 20,\r\n\t\t\t\t\t managementDashboardRead = 21,\r\n\t\t\t\t\t systemGhostRead = 22,\r\n\t\t\t\t\t diaryRead = 23,\r\n\t\t\t\t\t diaryAdvanceBookingCreate = 24,\r\n\t\t\t\t\t diaryAdvanceBookingRead = 25,\r\n\t\t\t\t\t diaryAdvanceBookingUpdate = 26,\r\n\t\t\t\t\t diaryAdvanceBookingDelete = 27,\r\n\t\t\t\t\t reportsRead = 28,\r\n\t\t\t\t\t scheduleReportsCreate = 29,\r\n\t\t\t\t\t scheduleReportsRead = 30,\r\n\t\t\t\t\t scheduleReportsUpdate = 31,\r\n\t\t\t\t\t scheduleReportsDelete = 32,\r\n\t\t\t\t\t messagesCreate = 33,\r\n\t\t\t\t\t messagesRead = 34,\r\n\t\t\t\t\t userManagementRead = 35,\r\n\t\t\t\t\t userAccountCreate = 36,\r\n\t\t\t\t\t userAccountRead = 37,\r\n\t\t\t\t\t userAccountUpdate = 38,\r\n\t\t\t\t\t userAccountDelete = 39,\r\n\t\t\t\t\t roleGroupCreate = 40,\r\n\t\t\t\t\t roleGroupRead = 41,\r\n\t\t\t\t\t roleGroupUpdate = 42,\r\n\t\t\t\t\t roleGroupDelete = 43,\r\n\t\t\t\t\t settingsRead = 44,\r\n\t\t\t\t\t customisationBrandingRead = 45,\r\n\t\t\t\t\t customisationBrandingUpdate = 46,\r\n\t\t\t\t\t crecheRatioCreate = 47,\r\n\t\t\t\t\t crecheRatioRead = 48,\r\n\t\t\t\t\t crecheRatioUpdate = 49,\r\n\t\t\t\t\t crecheRatioDelete = 50,\r\n\t\t\t\t\t crecheSettingRead = 51,\r\n\t\t\t\t\t crecheSettingUpdate = 52,\r\n\t\t\t\t\t crecheOpenCloseTimeRead = 53,\r\n\t\t\t\t\t crecheOpenCloseTimeUpdate = 54,\r\n\t\t\t\t\t crecheHolidayCreate = 55,\r\n\t\t\t\t\t crecheHolidayRead = 56,\r\n\t\t\t\t\t crecheHolidayUpdate = 57,\r\n\t\t\t\t\t crecheHolidayDelete = 58,\r\n\t\t\t\t\t crecheClosureCreate = 59,\r\n\t\t\t\t\t crecheClosureRead = 60,\r\n\t\t\t\t\t crecheClosureUpdate = 61,\r\n\t\t\t\t\t crecheClosureDelete = 62,\r\n\t\t\t\t\t pagerSettingRead = 63,\r\n\t\t\t\t\t pagerSettingUpdate = 64,\r\n\t\t\t\t\t receiptSettingRead = 65,\r\n\t\t\t\t\t receiptSettingUpdate = 66,\r\n\t\t\t\t\t systemSecurityRead = 67,\r\n\t\t\t\t\t systemSecurityUpdate = 68,\r\n\t\t\t\t\t supportDeskCreate = 69,\r\n\t\t\t\t\t supportDeskRead = 70,\r\n\t\t\t\t\t supportDeskUpdate = 71,\r\n\t\t\t\t\t supportDeskDelete = 72,\r\n\t\t\t\t\t canApprove = 200,\r\n\t\t\t\t\t canPublish = 201,\r\n\t\t\t\t\t requiresApproval = 202,\r\n\t\t\t}\r\nexport enum Products {\r\n\t\t\t\t\t unknown = 0,\r\n\t\t\t\t\t abacusR9 = 1,\r\n\t\t\t\t\t abacusR11 = 2,\r\n\t\t\t\t\t dayshare = 3,\r\n\t\t\t\t\t footsteps = 4,\r\n\t\t\t}\r\nexport enum RatioCalculationMethod {\r\n\t\t\t\t\t pointScoringMethod = 1,\r\n\t\t\t\t\t highestRatioMethod = 2,\r\n\t\t\t}\r\nexport enum RecurrenceType {\r\n\t\t\t\t\t daily = 1,\r\n\t\t\t\t\t weekly = 2,\r\n\t\t\t\t\t monthly = 3,\r\n\t\t\t\t\t yearly = 4,\r\n\t\t\t}\r\nexport enum Severity {\r\n\t\t\t\t\t mild = 1,\r\n\t\t\t\t\t moderate = 2,\r\n\t\t\t\t\t severe = 3,\r\n\t\t\t\t\t unknown = 4,\r\n\t\t\t}\r\nexport enum SortDirection {\r\n\t\t\t\t\t asc = 1,\r\n\t\t\t\t\t desc = 2,\r\n\t\t\t}\r\nexport enum SortOrder {\r\n\t\t\t\t\t carerName = 1,\r\n\t\t\t\t\t childName = 2,\r\n\t\t\t\t\t gender = 3,\r\n\t\t\t\t\t dateOfBirth = 4,\r\n\t\t\t\t\t registeredBusinessName = 5,\r\n\t\t\t}\r\nexport enum SystemPreference {\r\n\t\t\t\t\t childrenColour = 3,\r\n\t\t\t\t\t observationViewing = 4,\r\n\t\t\t\t\t businessName = 5,\r\n\t\t\t\t\t passwordResetAfterDays = 14,\r\n\t\t\t\t\t passwordExpiryWarningBeforeDays = 15,\r\n\t\t\t\t\t passwordHistoryToKeep = 16,\r\n\t\t\t\t\t showEyfsEarlyLearningGoal = 22,\r\n\t\t\t\t\t showEyfsTextBoxes = 23,\r\n\t\t\t\t\t showEyfsSpecificAreas = 26,\r\n\t\t\t\t\t setAgebandByHighestSecure = 27,\r\n\t\t\t\t\t setAgebandByHighestVisited = 28,\r\n\t\t\t\t\t setAgebandManually = 29,\r\n\t\t\t\t\t showChildNameType = 30,\r\n\t\t\t\t\t childrenOrderBy = 31,\r\n\t\t\t\t\t emergingColor = 32,\r\n\t\t\t\t\t developingColor = 33,\r\n\t\t\t\t\t secureColor = 34,\r\n\t\t\t\t\t showBrandingOnExportedReportsAndAssessments = 35,\r\n\t\t\t\t\t showObservationCoel = 36,\r\n\t\t\t\t\t showObservationLeuvenScales = 37,\r\n\t\t\t\t\t suggestNextSteps = 38,\r\n\t\t\t\t\t enableSessionReminder = 39,\r\n\t\t\t\t\t sessionReminderDuration = 40,\r\n\t\t\t\t\t checkStaffRotasInAbacusWhenPlanningActivities = 41,\r\n\t\t\t\t\t showEyfsLearningJourneyReport = 42,\r\n\t\t\t\t\t showNextStepsLearningJourneyReport = 43,\r\n\t\t\t\t\t learningJourneyReportOrderBy = 44,\r\n\t\t\t\t\t showAssessmentEyfsCoel = 45,\r\n\t\t\t\t\t showAssessment2YearCoel = 46,\r\n\t\t\t\t\t enableArticleApproval = 47,\r\n\t\t\t\t\t updateNewsfeedAutomatically = 48,\r\n\t\t\t\t\t updateNewsfeedEveryday = 49,\r\n\t\t\t\t\t updateNewsfeedManually = 50,\r\n\t\t\t\t\t neverUpdateNewsfeed = 51,\r\n\t\t\t\t\t newsfeedAllowCommenting = 52,\r\n\t\t\t\t\t newsfeedReceiveNotification = 53,\r\n\t\t\t\t\t trackTwoYearFunded = 54,\r\n\t\t\t\t\t trackThreeToFourYearFunded = 55,\r\n\t\t\t\t\t trackSummerBorn = 56,\r\n\t\t\t\t\t summerBornStartDay = 57,\r\n\t\t\t\t\t summerBornStartMonth = 58,\r\n\t\t\t\t\t summerBornEndDay = 59,\r\n\t\t\t\t\t summerBornEndMonth = 60,\r\n\t\t\t\t\t trackAutumnBorn = 61,\r\n\t\t\t\t\t autumnBornStartDay = 62,\r\n\t\t\t\t\t autumnBornStartMonth = 63,\r\n\t\t\t\t\t autumnBornEndDay = 64,\r\n\t\t\t\t\t autumnBornEndMonth = 65,\r\n\t\t\t\t\t trackSpringBorn = 66,\r\n\t\t\t\t\t springBornStartDay = 67,\r\n\t\t\t\t\t springBornStartMonth = 68,\r\n\t\t\t\t\t springBornEndDay = 69,\r\n\t\t\t\t\t springBornEndMonth = 70,\r\n\t\t\t\t\t trackReceivesEypp = 71,\r\n\t\t\t\t\t trackLookedAfterChild = 72,\r\n\t\t\t\t\t trackCarerInArmedForces = 73,\r\n\t\t\t\t\t trackGypsyOrRomany = 74,\r\n\t\t\t\t\t trackMinority = 75,\r\n\t\t\t\t\t trackSpecialEducationNeeded = 76,\r\n\t\t\t\t\t englishAsAdditionalLanguage = 77,\r\n\t\t\t\t\t trackGiftedAndTalented = 78,\r\n\t\t\t\t\t trackReceivesFreeMeals = 79,\r\n\t\t\t\t\t disableAllPushNotifications = 80,\r\n\t\t\t}\r\nexport enum SystemTour {\r\n\t\t\t\t\t welcome = 0,\r\n\t\t\t}\r\nexport enum UserIntegrationType {\r\n\t\t\t\t\t none = 0,\r\n\t\t\t\t\t zendesk = 1,\r\n\t\t\t\t\t calendarICS = 2,\r\n\t\t\t}\r\nexport enum UserIntegrationUserType {\r\n\t\t\t\t\t none = 0,\r\n\t\t\t\t\t user = 1,\r\n\t\t\t}\r\nexport enum UserPreferenceType {\r\n\t\t\t\t\t dashboardLayout = 1,\r\n\t\t\t\t\t diarySettings = 2,\r\n\t\t\t\t\t assessmentChildAgebandSelection = 3,\r\n\t\t\t\t\t assessmentIncludeNextStep = 4,\r\n\t\t\t\t\t assessmentChildIsExempt = 5,\r\n\t\t\t\t\t assessmentRememberOptions = 6,\r\n\t\t\t\t\t assessmentExemptionReason = 7,\r\n\t\t\t\t\t assessmentCustomExemption = 8,\r\n\t\t\t\t\t hideEyfsSortingBanner = 9,\r\n\t\t\t}\r\nexport enum ZoneType {\r\n\t\t\t\t\t iPV4 = 0,\r\n\t\t\t\t\t iPV6 = 1,\r\n\t\t\t\t\t cNAME = 2,\r\n\t\t\t\t\t mX = 3,\r\n\t\t\t\t\t tXT = 4,\r\n\t\t\t\t\t sRV = 5,\r\n\t\t\t}\r\nexport enum AuthApplicationType {\r\n\t\t\t\t\t user = 1,\r\n\t\t\t\t\t parentaStaffUser = 2,\r\n\t\t\t\t\t carer = 3,\r\n\t\t\t}\r\n","/*\r\n * Public API Surface of sauron-client\r\n */\r\n\r\nexport * from './lib/sauron.service';\r\nexport * as CommandEntities from './lib/entities/commands/commands';\r\nexport * from './lib/command-runners';\r\nexport * from './lib/entities/commands/base-command';\r\nexport * as CommandResultEntities from './lib/entities/commandresults/command-results';\r\nexport * from './lib/entities/commandresults/ibase-command-result';\r\nexport * from './lib/entities/commandresults/domain-error';\r\nexport * as QueryEntities from './lib/entities/queries/queries';\r\nexport * from './lib/entities/queries/ibase-query';\r\nexport * from './lib/entities/queries/iapi-query-response';\r\nexport * as Enums from './lib/entities/enums/enums';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ColourType","SystemPreference","EyfsTextBoxes","LearningJourneyReportOrder","ChildNameType","ChildrenOrder","BusinessIntegrationType","ParentaSystem","OfficeType","UserPreferenceType","PermissionType","Gender","AssessmentExemptionReason","UserPermission"],"mappings":"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"}