Skip to content

ActivitySessionSpotMap

Spot-map layout, occupancy, and viewer-relative state for one session.

soldSpotIds is the union of confirmed registrations. heldSpotIds is every spot currently held by somebody else's in-flight checkout (expired holds are filtered out on read, so a lapsed hold stops blocking immediately). viewerHeldSpotIds and viewerSpotIds are the viewer's own holds and confirmed spots; both are empty for unauthenticated requests.

Fields

Per-section availability — counts only, no spot data. This is what paints the section-first overview a 21,000-spot house opens on, in about seventy rows rather than twenty-one thousand.

unavailable[SpotRowRuns!]!

The spots that cannot be picked — sold, held by another checkout, or withheld — run-length encoded per block row.

Because a rule-generated spot's id is <blockId>-<rowIndex>-<spotIndex>, a client holding the block rules can name any spot itself, so the server only has to say which positions are gone. A sold-out 24-spot row is two integers here, not 24 identifiers.

Pass section when the buyer opens one — the overview needs only sections above, and scoping keeps even a pathologically fragmented house bounded by one section's size.

Arguments (1)
sectionEntityRef
viewerHeldSpotIds[ID!]!

Spot ids the caller currently holds. Sent in full rather than encoded: a buyer holds a handful of spots, and the client needs them exactly.

viewerSpotIds[ID!]!

Spot ids the caller has already bought on this session.

viewerHoldExpiresAtDateTime

When the viewer's own holds lapse, so the sheet can run a countdown and release the spots itself rather than letting them silently expire.

availableSpotCountInt!

Spots on sale and not currently sold or held, across the whole map. Includes remaining general-assignment capacity.

spotsTogether[SpotsTogetherSuggestion!]!

Contiguous runs of unsold, unheld spots in a single row, best first — nearest the stage, then most central. Never spans an aisle, a sold spot, or a house spot. Empty when the party will not fit.

Arguments (2)
sizeInt!

How many spots must sit together. Values above 12 are clamped.

firstInt

How many alternatives to return. Defaults to 5, clamped to 20.

Used in