Skip to content

@kaiord/core


@kaiord/core / workoutSchema

Variable: workoutSchema

const workoutSchema: ZodObject<{ extensions: ZodOptional<ZodRecord<ZodString, ZodUnknown>>; name: ZodOptional<ZodString>; poolLength: ZodOptional<ZodNumber>; poolLengthUnit: ZodOptional<ZodLiteral<"meters">>; sport: ZodEnum<{ cycling: "cycling"; generic: "generic"; running: "running"; swimming: "swimming"; }>; steps: ZodArray<ZodUnion<readonly [ZodObject<{ duration: ZodDiscriminatedUnion<[ZodObject<{ seconds: ...; type: ...; }, $strip>, ZodObject<{ meters: ...; type: ...; }, $strip>, ZodObject<{ bpm: ...; type: ...; }, $strip>, ZodObject<{ bpm: ...; repeatFrom: ...; type: ...; }, $strip>], "type">; durationType: ZodEnum<{ calories: "calories"; distance: "distance"; heart_rate_less_than: "heart_rate_less_than"; open: "open"; power_greater_than: "power_greater_than"; power_less_than: "power_less_than"; repeat_until_calories: "repeat_until_calories"; repeat_until_distance: "repeat_until_distance"; repeat_until_heart_rate_greater_than: "repeat_until_heart_rate_greater_than"; repeat_until_heart_rate_less_than: "repeat_until_heart_rate_less_than"; repeat_until_power_greater_than: "repeat_until_power_greater_than"; repeat_until_power_less_than: "repeat_until_power_less_than"; repeat_until_time: "repeat_until_time"; time: "time"; }>; equipment: ZodOptional<ZodEnum<{ none: "none"; swim_fins: "swim_fins"; swim_kickboard: "swim_kickboard"; swim_paddles: "swim_paddles"; swim_pull_buoy: "swim_pull_buoy"; swim_snorkel: "swim_snorkel"; }>>; extensions: ZodOptional<ZodRecord<ZodString, ZodUnknown>>; intensity: ZodOptional<ZodEnum<{ active: "active"; cooldown: "cooldown"; interval: "interval"; other: "other"; recovery: "recovery"; rest: "rest"; warmup: "warmup"; }>>; name: ZodOptional<ZodString>; notes: ZodOptional<ZodString>; stepIndex: ZodNumber; target: ZodDiscriminatedUnion<[ZodObject<{ type: ...; value: ...; }, $strip>, ZodObject<{ type: ...; value: ...; }, $strip>, ZodObject<{ type: ...; value: ...; }, $strip>], "type">; targetType: ZodEnum<{ cadence: "cadence"; heart_rate: "heart_rate"; open: "open"; pace: "pace"; power: "power"; stroke_type: "stroke_type"; }>; }, $strip>, ZodObject<{ id: ZodOptional<ZodString>; repeatCount: ZodNumber; steps: ZodArray<ZodObject<{ duration: ZodDiscriminatedUnion<..., ...>; durationType: ZodEnum<...>; equipment: ZodOptional<...>; extensions: ZodOptional<...>; intensity: ZodOptional<...>; name: ZodOptional<...>; notes: ZodOptional<...>; stepIndex: ZodNumber; target: ZodDiscriminatedUnion<..., ...>; targetType: ZodEnum<...>; }, $strip>>; }, $strip>]>>; subSport: ZodOptional<ZodEnum<{ all: "all"; apnea_diving: "apnea_diving"; apnea_hunting: "apnea_hunting"; atv: "atv"; backcountry: "backcountry"; bike_to_run_transition: "bike_to_run_transition"; bmx: "bmx"; cardio_training: "cardio_training"; casual_walking: "casual_walking"; challenge: "challenge"; commuting: "commuting"; cyclocross: "cyclocross"; downhill: "downhill"; e_bike_fitness: "e_bike_fitness"; e_bike_mountain: "e_bike_mountain"; elliptical: "elliptical"; exercise: "exercise"; flexibility_training: "flexibility_training"; gauge_diving: "gauge_diving"; generic: "generic"; gravel_cycling: "gravel_cycling"; hand_cycling: "hand_cycling"; indoor_cycling: "indoor_cycling"; indoor_rowing: "indoor_rowing"; indoor_running: "indoor_running"; indoor_skiing: "indoor_skiing"; indoor_walking: "indoor_walking"; lap_swimming: "lap_swimming"; map: "map"; match: "match"; mixed_surface: "mixed_surface"; motocross: "motocross"; mountain: "mountain"; multi_gas_diving: "multi_gas_diving"; navigate: "navigate"; obstacle: "obstacle"; open_water: "open_water"; pilates: "pilates"; rc_drone: "rc_drone"; recumbent: "recumbent"; resort: "resort"; road: "road"; run_to_bike_transition: "run_to_bike_transition"; single_gas_diving: "single_gas_diving"; skate_skiing: "skate_skiing"; speed_walking: "speed_walking"; spin: "spin"; stair_climbing: "stair_climbing"; street: "street"; strength_training: "strength_training"; swim_to_bike_transition: "swim_to_bike_transition"; track: "track"; track_cycling: "track_cycling"; track_me: "track_me"; trail: "trail"; treadmill: "treadmill"; virtual_activity: "virtual_activity"; warm_up: "warm_up"; whitewater: "whitewater"; wingsuit: "wingsuit"; yoga: "yoga"; }>>; }, $strip>

Defined in: packages/core/src/domain/schemas/workout.ts:27

Zod schema for a complete workout definition.

Validates a structured workout with metadata and a sequence of steps or repetition blocks.