import {z} from 'zod' export type UpdateDataReviewerGroupRequest = {data_reviewer_group_id: number, group_name: string, is_active: boolean}; export type UpdateApiDataReviewerGroupDataReviewerGroupIdArgs = {data_reviewer_group_id: number, body: UpdateDataReviewerGroupRequest}; export type UpdateApiDataReviewerGroupDataReviewerGroupIdOptions = {baseUrl: string, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const rxFeatureFlagsResponse = z.object({auditor_reviewer_is_external: z.boolean().optional(), clinic_admin_api_access: z.boolean().optional(), clinic_allow_cross_hospital_report_access: z.boolean().optional(), clinic_auto_log_photos_enabled: z.boolean().optional(), clinic_default_days_until_report_date: z.string().optional(), clinic_default_mark_patients_as_priority: z.boolean().optional(), clinic_default_patient_age: z.string().optional(), clinic_default_patient_sex: z.string().optional(), clinic_default_report_include_supplements_in_food_dump: z.boolean().optional(), clinic_default_report_include_supplements_in_rdi: z.boolean().optional(), clinic_default_sms_enabled: z.boolean().optional(), clinic_default_subscription_name: z.string().optional(), clinic_default_user_locale: z.string().optional(), clinic_enable_clinician_advisor_chat: z.boolean().optional(), clinic_invitation_email_cadence: z.string().optional(), clinic_maximum_meal_capture_period_in_days_before_subscription: z.string().optional(), clinic_report_autogenerate: z.boolean().optional(), clinic_report_full_automation: z.boolean().optional(), clinic_report_identity_mode: z.enum(["normal", "anonymous", "identifier_patient_id", "identifier_external_id", "identifier_both_ids"]).optional(), clinic_report_judge_confidence_min: z.string().nullable().optional(), clinic_require_patient_mfa: z.boolean().optional(), clinic_send_repeat_subscription_invitation_email: z.boolean().optional(), clinic_send_subscription_invitation_email: z.boolean().optional(), clinic_show_patient_report_secure_link: z.boolean().optional(), clinic_subscription_reminder_email_cadence: z.string().optional(), clinic_subscription_types: z.string().optional(), clinician_allow_meal_edit: z.boolean().optional(), clinician_autopilot_enabled: z.boolean().optional(), clinician_available_trial_lengths: z.string().optional(), clinician_can_delete_meals: z.boolean().optional(), clinician_can_generate_reports: z.boolean().optional(), clinician_can_view_clinic_invite_code: z.boolean().optional(), clinician_can_view_draft_reports: z.boolean().optional(), clinician_meal_planner_enabled: z.boolean().optional(), clinician_oversight_of_patient: z.enum(["clinician", "non-clinician"]).optional(), clinician_patient_allow_cal_carb_toggle: z.boolean().optional(), clinician_patient_allow_macro_card_toggle: z.boolean().optional(), clinician_patient_allow_mindful_eating_survey_toggle: z.boolean().optional(), clinician_patient_allow_patient_app_coaching_tab_toggle: z.boolean().optional(), clinician_prevent_new_patients_after_date: z.string().nullable().optional(), clinician_report_24h_turnaround: z.boolean().optional(), clinician_report_disable_early_generation: z.boolean().optional(), clinician_require_mfa: z.boolean().optional(), clinician_show_timeline: z.boolean().optional(), email_template_id_clinic_logging_completion: z.string().optional(), email_template_id_clinic_logging_starts_tomorrow: z.string().optional(), email_template_id_clinic_onboarding: z.string().optional(), email_template_id_clinic_registered_but_no_meals: z.string().optional(), email_template_id_clinic_reminder_to_continue_logging: z.string().optional(), email_template_id_clinic_report_available: z.string().optional(), email_template_id_clinic_thirty_day_subscription_inactive_logging_reminder: z.string().optional(), email_template_id_clinic_upcoming_subscription: z.string().optional(), email_template_id_returning_invitation: z.string().optional(), hospital_patient_custom_fields_json: z.string().optional(), hospital_patient_has_external_id: z.boolean().optional(), lifecycle_messaging_variant_patient_invited: z.string().optional(), lifecycle_messaging_variant_patient_logging_completed: z.string().optional(), lifecycle_messaging_variant_patient_report_available: z.string().optional(), lifecycle_messaging_variant_patient_subscription_notification: z.string().optional(), lifecycle_messaging_variant_patient_subscription_reminder: z.string().optional(), patient_app_care_team_experience: z.boolean().optional(), patient_app_coaching_tab: z.boolean().optional(), patient_app_extended_logging_types: z.string().nullable().optional(), patient_app_guided_health_program: z.boolean().optional(), patient_app_hide_meal_after_n_hours: z.string().nullable().optional(), patient_app_hide_nutrition_starplot: z.boolean().nullable().optional(), patient_app_key_nutrients: z.string().nullable().optional(), patient_app_mindful_eating_survey: z.boolean().optional(), patient_app_nutritional_insights: z.boolean().optional(), patient_app_nutritional_insights_sections_to_hide: z.string().nullable().optional(), patient_app_partner_branding: z.string().nullable().optional(), patient_app_partner_movano: z.boolean().optional(), patient_app_partner_oauth_provider: z.string().nullable().optional(), patient_app_pii_minimal_masking: z.boolean().nullable().optional(), patient_app_primary_macronutrient: z.string().nullable().optional(), patient_app_primary_macronutrient_can_edit: z.boolean().optional(), patient_app_show_dev_settings: z.boolean().optional(), patient_app_show_diet_score: z.boolean().optional(), patient_app_show_macro_nutrition_card: z.boolean().optional(), patient_app_show_nutrition_data_and_insights: z.boolean().optional(), patient_app_show_schedule_call_with_doctor: z.boolean().optional(), patient_app_use_care_team_version: z.boolean().optional(), patient_app_use_timeline: z.boolean().optional(), patient_app_use_v3_ui: z.boolean().optional(), patient_app_v2_care_team_ui: z.boolean().optional(), patient_can_view_pdf_reports: z.boolean().optional(), patient_default_measure_system: z.string().optional(), patient_enforce_subscription: z.boolean().optional(), patient_glucose_units_mmol_l: z.boolean().optional(), patient_goals_can_edit: z.boolean().optional(), patient_preferred_nutrition_source: z.string().optional(), patient_report_quality_judge: z.boolean().optional(), patient_send_meal_reminders: z.boolean().optional(), patient_show_cals: z.boolean().optional(), patient_show_carbs: z.boolean().optional(), patient_show_dexcom_oauth: z.boolean().optional(), patient_show_gender: z.boolean().optional(), patient_show_total_carbs: z.boolean().optional(), patient_use_exercise: z.boolean().optional(), patient_use_medication: z.boolean().optional(), patient_use_question: z.boolean().optional(), patient_use_sleep: z.boolean().optional(), user_require_password_strength: z.boolean().optional()}); export const dataReviewerResponse = z.object({country_of_residence: z.string().nullable().optional(), created_time: z.string(), email: z.string(), first_name: z.string(), flags: rxFeatureFlagsResponse.optional(), id: z.number().int(), is_active: z.boolean(), is_admin: z.boolean().optional(), is_data_reviewer_admin: z.boolean().optional(), is_hospital_admin: z.boolean().optional(), is_internal: z.boolean().optional(), is_meal_admin: z.boolean().optional(), is_report_admin: z.boolean().optional(), is_report_previewer: z.boolean().optional(), last_name: z.string(), review_groups: z.array(z.object({id: z.number().int(), is_active: z.boolean(), name: z.string()})).optional(), review_level: z.enum(["analyst", "reviewer", "report_reviewer"]).optional(), review_max_queue_level: z.number().int().nullable().optional(), updated_time: z.string()}); export const dataReviewerGroupResponse = z.object({created_time: z.string(), data_reviewers: z.array(dataReviewerResponse), group_name: z.string(), id: z.number().int(), is_active: z.boolean(), updated_time: z.string()}); export const updateApiDataReviewerGroupDataReviewerGroupIdResponse = z.array(dataReviewerGroupResponse); 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 }; /** * Update the data reviewer group * * PUT /data_reviewer_group/{data_reviewer_group_id} */ export const updateApiDataReviewerGroupDataReviewerGroupId = async (args: UpdateApiDataReviewerGroupDataReviewerGroupIdArgs, options: UpdateApiDataReviewerGroupDataReviewerGroupIdOptions) => { const {baseUrl, fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/data_reviewer_group/${encodeURIComponent(String(args.data_reviewer_group_id))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "PUT", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(updateApiDataReviewerGroupDataReviewerGroupIdResponse, await res.json()) };