Skip to content

SportEvent

Interface

Contest-level cross-sport event (Blueprint 1 §3.6) — the analogue of one Race or one FootballMatch (never a grouping). Carries only fields that genuinely unify across sports; the cross-sport events() / union Event surface is deferred until a real consumer exists (BP4 §4.8).

FieldArgsTypeDescription
id—ID! required—
sport—Sport! required—
competition—CompetitionNullable on the interface (covariance): not every contest belongs to a competition.
scheduledTime—DateTimeNullable for the same covariance reason as competition (POD-845): an F1 session can exist before the provider publishes its time (motorsport_sessions.scheduled_time is nullable), so the interface cannot promise one. Football, tennis and basketball each still declare DateTime! on their concrete type — their columns are NOT NULL, so they guarantee it honestly and a consumer querying those types directly is unaffected. Only a consumer reading through this interface must handle null, which is the truth.
lifecycle—EventLifecycle! required—
venue—Course—