import {z} from 'zod' export type GetApiCoachingRoleOptions = {baseUrl: string, Bearer?: string | undefined, fetch?: typeof fetch | undefined}; export const coachingDalModelsOrganizationSite = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), organizationId: z.number().int().optional(), name: z.string().nullable().optional(), organization: z.lazy(() => coachingDalModelsOrganization.optional())}); export const coachingDalModelsOrganizationState = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), organizationId: z.number().int().optional(), state: z.string().nullable().optional(), organization: z.lazy(() => coachingDalModelsOrganization.optional())}); export const coachingDalModelsGroupOrganization = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), groupId: z.number().int().optional(), organizationId: z.number().int().optional(), group: z.lazy(() => coachingDalModelsGroup.optional()), organization: z.lazy(() => coachingDalModelsOrganization.optional())}); export const coachingDalModelsUser = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), qualoId: z.string().optional(), userName: z.string().nullable().optional(), secondaryEmail: z.string().nullable().optional(), state: z.string().nullable().optional(), organizationId: z.number().int().optional(), organization: z.lazy(() => coachingDalModelsOrganization.optional()), siteId: z.number().int().nullable().optional(), site: coachingDalModelsOrganizationSite.optional(), timeZone: z.string().nullable().optional(), title: z.string().nullable().optional(), isSystemAdmin: z.boolean().optional(), userPractices: z.array(z.lazy(() => coachingDalModelsUserPractice)).nullable().optional(), lastLoginDate: z.string().nullable().optional()}); export const coachingDalModelsUserPracticeState = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), userPracticeId: z.number().int().optional(), state: z.string().nullable().optional(), userPractice: z.lazy(() => coachingDalModelsUserPractice.optional())}); export const coachingDalModelsUserPracticeSite = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), userPracticeId: z.number().int().optional(), organizationSiteId: z.number().int().optional(), userPractice: z.lazy(() => coachingDalModelsUserPractice.optional()), organizationSite: coachingDalModelsOrganizationSite.optional()}); export const coachingDalEnumsTimeToCompleteType = z.enum(["Days", "Weeks", "Months", "Years"]); export const coachingDalModelsUserCertificationProficiency = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), userPracticeCertificationId: z.number().int().optional(), certificationProficiencyId: z.number().int().optional(), date: z.string().nullable().optional(), userPracticeCertification: z.lazy(() => coachingDalModelsUserPracticeCertification.optional()), certificationProficiency: z.lazy(() => coachingDalModelsCertificationProficiency.optional())}); export const coachingDalModelsCertificationProficiency: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), certificationId: z.number().int().optional(), name: z.string().nullable().optional(), certification: z.lazy(() => coachingDalModelsCertification.optional()), userCertificationProficiencyDates: z.array(coachingDalModelsUserCertificationProficiency).nullable().optional()}); export const coachingDalModelsUserCertificationTraining = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), userPracticeCertificationId: z.number().int().optional(), certificationTrainingId: z.number().int().optional(), date: z.string().nullable().optional(), userPracticeCertification: z.lazy(() => coachingDalModelsUserPracticeCertification.optional()), certificationTraining: z.lazy(() => coachingDalModelsCertificationTraining.optional())}); export const coachingDalModelsCertificationTraining: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), certificationId: z.number().int().optional(), name: z.string().nullable().optional(), certification: z.lazy(() => coachingDalModelsCertification.optional()), userCertificationTrainings: z.array(coachingDalModelsUserCertificationTraining).nullable().optional()}); export const coachingDalEnumsToolType = z.enum(["Fsi", "Comet", "Sas", "Crest"]); export const coachingDalModelsPracticeTool = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), practiceId: z.number().int().optional(), toolId: z.number().int().optional(), practice: z.lazy(() => coachingDalModelsPractice.optional()), tool: z.lazy(() => coachingDalModelsTool.optional())}); export const coachingDalEnumsSessionType = z.enum(["DocumentReview", "FieldObservation"]); export const coachingDalModelsPhaseQuestionMap = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), toolId: z.number().int().optional(), valuesJson: z.string().nullable().optional(), values: z.record(z.string(), z.unknown()).nullable().optional(), practice: z.string().nullable().optional(), phase: z.string().nullable().optional(), type: coachingDalEnumsSessionType.optional(), tool: z.lazy(() => coachingDalModelsTool.optional())}); export const coachingDalModelsTool: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), name: z.string().nullable().optional(), type: coachingDalEnumsToolType.optional(), practiceTools: z.array(coachingDalModelsPracticeTool).nullable().optional(), certificationTools: z.array(z.lazy(() => coachingDalModelsCertificationTool)).nullable().optional(), phaseQuestionMaps: z.array(coachingDalModelsPhaseQuestionMap).nullable().optional()}); export const coachingDalModelsCometScoreBase = z.object({count: z.number().int().optional(), elementOneMinimumScore: z.number().int().optional(), elementTwoMinimumScore: z.number().int().optional(), elementThreeMinimumScore: z.number().int().optional(), elementFourMinimumScore: z.number().int().optional()}); export const coachingDalModelsCometScoringTemplate = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), totalCountRequired: z.number().int().optional(), totalFieldObservationsRequired: z.number().int().optional(), totalDocumentReviewRequired: z.number().int().optional(), totalScoreRequired: z.number().int().optional(), phase1: coachingDalModelsCometScoreBase.optional(), phase2: coachingDalModelsCometScoreBase.optional(), phase3: coachingDalModelsCometScoreBase.optional(), phase4: coachingDalModelsCometScoreBase.optional()}); export const coachingDalModelsSasScoringTemplate = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), minimumScore: z.number().int().optional(), coachingMinimum: z.number().int().optional(), communicationMinimum: z.number().int().optional(), analysisMinimum: z.number().int().optional(), totalCountRequired: z.number().int().optional()}); export const coachingDalModelsCrestScoringTemplate = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), minimumSubmissions: z.number().int().optional()}); export const coachingDalModelsFsiScoringTemplate = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), engagementCount: z.number().int().optional(), engagementMinimumScore: z.number().int().optional(), planningCount: z.number().int().optional(), planningMinimumScore: z.number().int().optional(), monitoringAdjustmentCount: z.number().int().optional(), monitoringAdjustmentMinimumScore: z.number().int().optional(), aftercareCount: z.number().int().optional(), aftercareMinimumScore: z.number().int().optional(), totalCountRequired: z.number().int().optional(), totalFieldObservationsRequired: z.number().int().optional(), totalDocumentReviewRequired: z.number().int().optional(), totalScoreRequired: z.number().int().optional()}); export const coachingDalModelsCertificationTool: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), certificationId: z.number().int().optional(), toolId: z.number().int().optional(), cometScoringTemplateId: z.number().int().nullable().optional(), sasScoringTemplateId: z.number().int().nullable().optional(), crestScoringTemplateId: z.number().int().nullable().optional(), fsiScoringTemplateId: z.number().int().nullable().optional(), certification: z.lazy(() => coachingDalModelsCertification.optional()), tool: coachingDalModelsTool.optional(), cometScoringTemplate: coachingDalModelsCometScoringTemplate.optional(), sasScoringTemplate: coachingDalModelsSasScoringTemplate.optional(), crestScoringTemplate: coachingDalModelsCrestScoringTemplate.optional(), fsiScoringTemplate: coachingDalModelsFsiScoringTemplate.optional()}); export const coachingDalModelsCertification: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), name: z.string().nullable().optional(), timeToComplete: z.number().int().optional(), timeToCompleteType: coachingDalEnumsTimeToCompleteType.optional(), practiceId: z.number().int().optional(), practice: z.lazy(() => coachingDalModelsPractice.optional()), certificationProficiencies: z.array(coachingDalModelsCertificationProficiency).nullable().optional(), certificationTrainings: z.array(coachingDalModelsCertificationTraining).nullable().optional(), certificationTools: z.array(coachingDalModelsCertificationTool).nullable().optional(), userCertifications: z.array(z.lazy(() => coachingDalModelsUserPracticeCertification)).nullable().optional(), sasScoringTemplate: coachingDalModelsSasScoringTemplate.optional(), fsiScoringTemplate: coachingDalModelsFsiScoringTemplate.optional(), cometScoringTemplate: coachingDalModelsCometScoringTemplate.optional(), crestScoringTemplate: coachingDalModelsCrestScoringTemplate.optional()}); export const coachingDalModelsUserCertificationHistory = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), userPracticeCertificationId: z.number().int().optional(), startDate: z.string().optional(), certificationDate: z.string().nullable().optional(), isLapsed: z.boolean().optional(), userPracticeCertification: z.lazy(() => coachingDalModelsUserPracticeCertification.optional())}); export const coachingDalModelsUserPracticeCertification: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), userPracticeId: z.number().int().optional(), certificationId: z.number().int().optional(), userPractice: z.lazy(() => coachingDalModelsUserPractice.optional()), certification: coachingDalModelsCertification.optional(), userCertificationProficiencies: z.array(coachingDalModelsUserCertificationProficiency).nullable().optional(), userCertificationTrainings: z.array(coachingDalModelsUserCertificationTraining).nullable().optional(), userCertificationHistories: z.array(coachingDalModelsUserCertificationHistory).nullable().optional()}); export const coachingDalModelsUserPractice: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), userId: z.number().int().optional(), practiceId: z.number().int().optional(), user: coachingDalModelsUser.optional(), practice: z.lazy(() => coachingDalModelsPractice.optional()), roleId: z.number().int().optional(), role: z.lazy(() => coachingDalModelsRole.optional()), userPracticeStates: z.array(coachingDalModelsUserPracticeState).nullable().optional(), userPracticeSites: z.array(coachingDalModelsUserPracticeSite).nullable().optional(), userPracticeOrganizations: z.array(z.lazy(() => coachingDalModelsUserPracticeOrganization)).nullable().optional(), userCertifications: z.array(coachingDalModelsUserPracticeCertification).nullable().optional()}); export const coachingDalModelsUserPracticeOrganization: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), userPracticeId: z.number().int().optional(), organizationId: z.number().int().optional(), userPractice: coachingDalModelsUserPractice.optional(), organization: z.lazy(() => coachingDalModelsOrganization.optional())}); export const coachingDalModelsOrganization: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), practiceId: z.number().int().optional(), name: z.string().nullable().optional(), practice: z.lazy(() => coachingDalModelsPractice.optional()), organizationSites: z.array(coachingDalModelsOrganizationSite).nullable().optional(), organizationStates: z.array(coachingDalModelsOrganizationState).nullable().optional(), groupOrganizations: z.array(coachingDalModelsGroupOrganization).nullable().optional(), userPracticeOrganizations: z.array(coachingDalModelsUserPracticeOrganization).nullable().optional()}); export const coachingDalModelsEmailTemplate = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), name: z.string().nullable().optional(), practiceEmailTemplates: z.array(z.lazy(() => coachingDalModelsPracticeEmailTemplate)).nullable().optional()}); export const coachingDalModelsPracticeEmailTemplate: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), practiceId: z.number().int().optional(), emailTemplateId: z.number().int().optional(), practice: z.lazy(() => coachingDalModelsPractice.optional()), emailTemplate: coachingDalModelsEmailTemplate.optional()}); export const coachingDalModelsPracticePhase = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), practiceId: z.number().int().optional(), phase: z.string().nullable().optional(), practice: z.lazy(() => coachingDalModelsPractice.optional())}); export const coachingDalModelsPractice: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), name: z.string().nullable().optional(), startDate: z.string().optional(), endDate: z.string().nullable().optional(), organizations: z.array(coachingDalModelsOrganization).nullable().optional(), practiceTools: z.array(coachingDalModelsPracticeTool).nullable().optional(), practiceEmailTemplates: z.array(coachingDalModelsPracticeEmailTemplate).nullable().optional(), practicePhases: z.array(coachingDalModelsPracticePhase).nullable().optional(), certifications: z.array(coachingDalModelsCertification).nullable().optional()}); export const coachingDalModelsGroupState = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), groupId: z.number().int().optional(), state: z.string().nullable().optional(), group: z.lazy(() => coachingDalModelsGroup.optional())}); export const coachingDalModelsGroupSite = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), groupId: z.number().int().optional(), organizationSiteId: z.number().int().optional(), group: z.lazy(() => coachingDalModelsGroup.optional()), organizationSite: coachingDalModelsOrganizationSite.optional()}); export const coachingDalModelsGroup: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), name: z.string().nullable().optional(), practiceId: z.number().int().optional(), practice: coachingDalModelsPractice.optional(), groupRoles: z.array(z.lazy(() => coachingDalModelsGroupRole)).nullable().optional(), groupStates: z.array(coachingDalModelsGroupState).nullable().optional(), groupSites: z.array(coachingDalModelsGroupSite).nullable().optional(), groupOrganizations: z.array(coachingDalModelsGroupOrganization).nullable().optional()}); export const coachingDalModelsGroupRole: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), tenantId: z.string().optional(), groupId: z.number().int().optional(), roleId: z.number().int().optional(), group: coachingDalModelsGroup.optional(), role: z.lazy(() => coachingDalModelsRole.optional())}); export const coachingDalModelsRole: z.ZodType = z.object({id: z.number().int().optional(), createdBy: z.string().nullable().optional(), createdDate: z.string().optional(), modifiedBy: z.string().nullable().optional(), modifiedDate: z.string().optional(), deletedBy: z.string().nullable().optional(), deletedDate: z.string().nullable().optional(), name: z.string().nullable().optional(), groupRoles: z.array(coachingDalModelsGroupRole).nullable().optional()}); export const getApiCoachingRoleResponse = z.array(coachingDalModelsRole); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * GET /coaching/role */ export const getApiCoachingRole = async (options: GetApiCoachingRoleOptions) => { const {baseUrl, fetch: fetchFn = fetch, Bearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (Bearer !== undefined) headers.set("Authorization", Bearer) const url = `${baseUrl.replace(/\/+$/, '')}/coaching/role${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiCoachingRoleResponse, await res.json()) };