Skip to content

Discovery

Discovery is the second service in the .proto, alongside AllocationBooking. It is read-only: the consumer browses — within their permissions — which Repositories exist and the availability inside them.

Segmentation is a tree (parent / is_parent + a metadata map), at two levels:

  • Repository level — segments events (competition, stadium, date, round…).
  • Bucket level — segments availability inside an event (sector, type…). The leaf bucket-group is the Bucket itself.

A symmetric trio at each level: Grouper → Group → RepositoryGrouper → Group → Bucket.

RPCReturns
ListRepositoryGroupersgrouping dimensions for events (competition, stadium…).
ListRepositoryGroupsvalues within a grouper (e.g. grouper CompetitionBrasileirão).
ListRepositoriesthe event summaries themselves.
ListBucketGroupersgrouping dimensions for availability within a Repository.
ListBucketsthe leaf buckets + their availability count (the browse-side “Check-per-Bucket”).
ListUnitsthe individual seats of one Bucket — for reserved seating / a seat map.

ListUnits is open (read), scoped to one Bucket at a time (bounds the payload). A QUANTITATIVE Bucket has no addressable Unit, so it is browsed by count only.