Skip to content

Team

Object type

Team — primary entity for the Sports product. Generic across team sports (football, rugby, cricket); each row carries its sport discriminator. Fixture-backed for entity-matching; football reads populate it with real rows.

The single SHARED team identity (Blueprint 1 §3.6): one canonical teams row reused across all sports. It implements Entity for the M22 merge surface AND carries the football read fields; football-only bio forks to footballProfile (football_club_profiles). There is no separate FootballTeam type — foundations are shared, only the event and profile layers fork.

Implements: Entity

FieldArgsTypeDescription
id—ID! required—
name—String! required—
displayName—StringOperator-curated display name (participants.display_name) — editable via updateTeam.
sport—String—
country—String—
tla—StringThree-letter abbreviation (shared teams.tla), where the club/side has a stable one.
shortName—StringShort name (participants.short_name) — editable via updateTeam.
isNationalTeam—BooleanTrue for national sides (generated teams.is_national_team).
league—String—
founded—Int—
homeVenue—String—
homeVenueId—IDLinked home-venue id (teams.home_venue_id → a Venue/courses row). Editable via updateTeam; distinct from the free-text homeVenue name.
homeVenueRef—EntityChipRefResolved linked home venue (id + name + city) for rich chip rendering. Null when unlinked. Joined in the same query — no extra round-trip.
colours—StringClub colours / kit description (teams.silks_description) — editable via updateTeam.
sportId—ID! required—
createdAt—DateTime! required—
aliases—[ParticipantAlias!]! required—
footballProfile—FootballClubProfileFootball-only club bio fork (football_club_profiles); null for non-football teams.
version—Int! requiredOptimistic-locking version (participants.version) — pass as expectedVersion on updateTeam.
coachingStaffasOf: Date[TeamStaffMembership!]! requiredCoaching staff appointments for this team (Team Staff & Squad Management, Phase A). Current staff by default; pass asOf for staff active on a given date.
squadasOf: Date[TeamMembership!]! requiredPlayer squad as editable membership rows (Team Staff & Squad Management, Phase B). Current squad by default; pass asOf for the squad as of a given date. Unlike Query.teamSquad (bare Individuals, no membership id), these are the team_memberships rows themselves, so the UI can remove a player from the squad by membership id.