routineSchema.ts•2.92 kB
/**
* Generated by Kubb (https://kubb.dev/).
* Do not edit manually.
*/
import { z } from 'zod'
export const routineSchema = z.object({
id: z.string().describe('The routine ID.').optional(),
title: z.string().describe('The routine title.').optional(),
folder_id: z.number().describe('The routine folder ID.').nullable().nullish(),
updated_at: z.string().describe('ISO 8601 timestamp of when the routine was last updated.').optional(),
created_at: z.string().describe('ISO 8601 timestamp of when the routine was created.').optional(),
exercises: z
.array(
z.object({
index: z.number().describe('Index indicating the order of the exercise in the routine.').optional(),
title: z.string().describe('Title of the exercise').optional(),
rest_seconds: z.string().describe('The rest time in seconds between sets of the exercise').optional(),
notes: z.string().describe('Routine notes on the exercise').optional(),
exercise_template_id: z.string().describe('The id of the exercise template. This can be used to fetch the exercise template.').optional(),
supersets_id: z
.number()
.describe('The id of the superset that the exercise belongs to. A value of null indicates the exercise is not part of a superset.')
.nullable()
.nullish(),
sets: z
.array(
z.object({
index: z.number().describe('Index indicating the order of the set in the routine.').optional(),
type: z.string().describe("The type of set. This can be one of 'normal', 'warmup', 'dropset', 'failure'").optional(),
weight_kg: z.number().describe('Weight lifted in kilograms.').nullable().nullish(),
reps: z.number().describe('Number of reps logged for the set').nullable().nullish(),
rep_range: z
.object({
start: z.number().describe('Starting rep count for the range').nullable().nullish(),
end: z.number().describe('Ending rep count for the range').nullable().nullish(),
})
.describe('Range of reps for the set, if applicable')
.nullable()
.nullish(),
distance_meters: z.number().describe('Number of meters logged for the set').nullable().nullish(),
duration_seconds: z.number().describe('Number of seconds logged for the set').nullable().nullish(),
rpe: z.number().describe('RPE (Relative perceived exertion) value logged for the set').nullable().nullish(),
custom_metric: z
.number()
.describe('Custom metric logged for the set (Currently only used to log floors or steps for stair machine exercises)')
.nullable()
.nullish(),
}),
)
.optional(),
}),
)
.optional(),
})