@kaiord/core / activitySchema
Variable: activitySchema
constactivitySchema:ZodObject<{kind:ZodLiteral<"activity">;krd:ZodOptional<ZodObject<{events:ZodOptional<ZodArray<ZodObject<{data:ZodOptional<ZodNumber>;eventGroup:ZodOptional<ZodNumber>;eventType:ZodEnum<{event_activity_start: ...;event_lap: ...;event_marker: ...;event_pause: ...;event_resume: ...;event_session_start: ...;event_start: ...;event_stop: ...;event_timer: ...;event_workout_step_change: ...; }>;message:ZodOptional<ZodString>;timestamp:ZodISODateTime; },$strip>>>;extensions:ZodOptional<ZodObject<{course:ZodOptional<ZodUnknown>;course_points:ZodOptional<ZodUnknown>;fit:ZodOptional<ZodUnknown>;health:ZodOptional<ZodObject<{bodyComposition: ...;daily: ...;hrv: ...;sleep: ...;stress: ...;weight: ...; },$catchall<...>>>;structured_workout:ZodOptional<ZodUnknown>; },$catchall<ZodUnknown>>>;laps:ZodOptional<ZodArray<ZodObject<{avgCadence:ZodOptional<ZodNumber>;avgHeartRate:ZodOptional<ZodNumber>;avgPower:ZodOptional<ZodNumber>;avgSpeed:ZodOptional<ZodNumber>;maxCadence:ZodOptional<ZodNumber>;maxHeartRate:ZodOptional<ZodNumber>;maxPower:ZodOptional<ZodNumber>;maxSpeed:ZodOptional<ZodNumber>;normalizedPower:ZodOptional<ZodNumber>;numLengths:ZodOptional<ZodNumber>;sport:ZodOptional<ZodEnum<...>>;startTime:ZodISODateTime;subSport:ZodOptional<ZodEnum<...>>;swimStroke:ZodOptional<ZodEnum<...>>;totalAscent:ZodOptional<ZodNumber>;totalCalories:ZodOptional<ZodNumber>;totalDescent:ZodOptional<ZodNumber>;totalDistance:ZodOptional<ZodNumber>;totalElapsedTime:ZodNumber;totalTimerTime:ZodOptional<ZodNumber>;trigger:ZodOptional<ZodEnum<...>>;workoutStepIndex:ZodOptional<ZodNumber>; },$strip>>>;metadata:ZodObject<{created:ZodISODateTime;manufacturer:ZodOptional<ZodString>;product:ZodOptional<ZodString>;serialNumber:ZodOptional<ZodString>;sport:ZodOptional<ZodString>;subSport:ZodOptional<ZodString>; },$strip>;records:ZodOptional<ZodArray<ZodObject<{altitude:ZodOptional<ZodNumber>;cadence:ZodOptional<ZodNumber>;distance:ZodOptional<ZodNumber>;heartRate:ZodOptional<ZodNumber>;position:ZodOptional<ZodObject<..., ...>>;power:ZodOptional<ZodNumber>;speed:ZodOptional<ZodNumber>;stanceTime:ZodOptional<ZodNumber>;stepLength:ZodOptional<ZodNumber>;temperature:ZodOptional<ZodNumber>;timestamp:ZodISODateTime;verticalOscillation:ZodOptional<ZodNumber>; },$strip>>>;sessions:ZodOptional<ZodArray<ZodObject<{avgCadence:ZodOptional<ZodNumber>;avgHeartRate:ZodOptional<ZodNumber>;avgPower:ZodOptional<ZodNumber>;avgSpeed:ZodOptional<ZodNumber>;intensityFactor:ZodOptional<ZodNumber>;maxCadence:ZodOptional<ZodNumber>;maxHeartRate:ZodOptional<ZodNumber>;maxPower:ZodOptional<ZodNumber>;maxSpeed:ZodOptional<ZodNumber>;normalizedPower:ZodOptional<ZodNumber>;sport:ZodString;startTime:ZodISODateTime;subSport:ZodOptional<ZodString>;totalAscent:ZodOptional<ZodNumber>;totalCalories:ZodOptional<ZodNumber>;totalDescent:ZodOptional<ZodNumber>;totalDistance:ZodOptional<ZodNumber>;totalElapsedTime:ZodNumber;totalTimerTime:ZodOptional<ZodNumber>;trainingStressScore:ZodOptional<ZodNumber>; },$strip>>>;type:ZodEnum<{body_composition:"body_composition";course:"course";daily_wellness:"daily_wellness";hrv_summary:"hrv_summary";recorded_activity:"recorded_activity";sleep_record:"sleep_record";stress_episode:"stress_episode";structured_workout:"structured_workout";weight_measurement:"weight_measurement"; }>;version:ZodString; },$strip>>;summary:ZodObject<{avg_heart_rate:ZodOptional<ZodNumber>;avg_power:ZodOptional<ZodNumber>;date:ZodISODate;distance_meters:ZodOptional<ZodNumber>;duration_seconds:ZodOptional<ZodNumber>;source:ZodString;source_id:ZodString;sport:ZodString;start_time:ZodOptional<ZodISODateTime>;sub_sport:ZodOptional<ZodString>;total_calories:ZodOptional<ZodNumber>; },$strip>; },$strip>
Defined in: packages/core/src/domain/schemas/activity.ts:43
Zod schema for an activity — a first-class executed session (the executed side of a SessionMatch). Shape mirrors the health records' { summary, krd? } split: a mandatory summary for list/match reads plus the optional full KRD payload attached when the source provides recorded detail (records/laps/sessions).