Complete reference for the core data model used throughout Coachbase. These types define the shape of data stored in Firestore and how entities relate to each other.
Core athlete profile. The root entity from which all programs, sessions, and results hang.
Firestore document ID. Auto-generated on creation.
Athlete full name. Used in search and display.
Date of birth as a Firestore Timestamp.
Used for adaptation parameters and menstruation tracking eligibility.
Body weight in kilograms.
Body height in centimeters.
Experience level — highest-impact generation parameter.
Selected training goals. Influences exercise selection and rep ranges.
Available training days per week.
Parent team this athlete belongs to.
Profile creation timestamp.
When true, athlete is hidden from search and active views but data is preserved.
A multi-week training plan belonging to an athlete. Contains sessions and generation configuration.
Firestore document ID.
Reference to the parent athlete. Programs are athlete-specific.
Display name of the program (e.g., "Summer Strength Block").
The training type — 'fullBody' | 'anteriorChain' | 'posteriorChain' | 'upperBody' | 'lowerBody' | 'agility' | 'endurance'
Reference to the training system used for session structure.
Total program duration in weeks (1–16).
Sessions per week (1–7).
Overall volume target per session.
Current lifecycle state of the program.
A single workout day within a program. Contains an ordered list of exercises with parameters.
Firestore document ID.
Parent program reference.
Parent athlete reference (denormalized for query efficiency).
Which week within the program this session falls in (1-indexed).
Which session within the week (1-indexed).
Ordered array of exercises in this session.
When the session was completed. null if not yet done.
An injury or monitoring condition attached to an athlete. Directly affects generation behavior.
Firestore document ID.
Parent athlete.
Affected body part. Matched against exercise bodyParts during generation.
Flag level — determines generation behavior.
Coaching notes on the injury.
true = currently active. false = cleared/archived. Only active flags affect generation.
When the injury began.
When the flag was cleared. null if still active.
Logged training result for an exercise within a session. Stored at the set level for precise progression calibration.
Exercise this result belongs to.
Parent training session.
Parent athlete (denormalized).
Array of individual set results. Each SetResult contains repsCompleted, load, loadUnit, and perceivedDifficulty.
When the exercise result was logged.
An entry in the exercise library. Used by the generation engine to build sessions.
Firestore document ID.
Exercise display name.
Exercise category used in generation logic.
Targeted muscle groups. Cross-referenced against injury flags.
Logical muscle group for pairing in training systems.