id | — | ID! | — |
status | — | RunnerStatus! | — |
cloth | — | Int | — |
reservePosition | — | Int | Reserve-runner ordering within the race (R1, R2, …). Non-null only when status is RESERVE; the entries_reserve_position_only_when_reserve check constraint enforces the invariant at the database level. Sourced from the IHRB reserve="y" attribute at ingest, or set by operators when manually marking a runner as a reserve. |
stall | — | Int | — |
race | — | Race | The parent race this runner is entered into. Useful for entry-list views (e.g. a horse’s form table) where each row needs its own race context. Nullable: races are soft-deleted (deleted_at IS NOT NULL) but entry rows may still reference them; the loader returns null for those, and we’d rather surface that than nullify the entire Runner via a non-null violation. Form-history queries already filter out soft-deleted races. |
horse | — | Horse | — |
jockey | — | Jockey | — |
trainer | — | Trainer | — |
ownership | — | [Ownership!] | — |
silk | — | Silk | — |
weight | — | Weight! | — |
officialRating | — | Int | — |
recentForm | — | String | — |
startingPrice | — | Price | — |
equipment | — | [EquipmentItem!] | — |
lastRunDays | — | Int | — |
courseWinner | — | Boolean | — |
distanceWinner | — | Boolean | — |
beatenFavorite | — | Boolean | — |
casualtyReason | — | CasualtyReason | — |
withdrawnReason | — | String | — |
withdrawnAt | — | DateTime | — |
result | — | RunnerResult | — |
source | — | String! | Origin of the runner row. 'manual' for runners added via createRunner; 'ingested' (or a provider tag) for runners written by ingestion pipelines. Drives destructive-action gating in the UI: “Delete from race” is offered when the parent race is manual or this runner was added manually. |
version | — | Int! | — |
createdAt | — | DateTime! | — |
updatedAt | — | DateTime! | — |