Ir al contenido principal
Petanque Life

Tournament Discovery & Registration

F04.03 34 funcionalidades Planificado

En resumen

A global discovery and registration layer that lets any player find tournaments anywhere in the world, register online with license validation and multi-currency payment, and gives organizers waiting lists, bulk entry, seeding, and configurable cross-tenant publication scopes (PRIVATE, ORGNODE, TENANT, GLOBAL).

Cómo funciona

Discovery operates on a cross-tenant index of every published competition. Players search globally or by map with radius and date filters and narrow by country, region, format, discipline, team format, level, and open/invitational status. "Traveling player" mode flips the search around — pick a destination and a date range and the platform returns events in walking or driving range. Recommendations layer on the player's ELO and stated preferences.

Following a foreign tournament hooks the player into notifications, while the detail page surfaces rules, venue, entry fee, accommodation tips, and the tournament's working language; an "open to foreign players" flag, cross-border requirements, and temporary license/day-pass info reduce friction. Registration runs an end-to-end pipeline: individual or team entry, license validation (active, age category, ranking eligibility), team composition checks (correct player count, mixed-gender rules), substitution rules, optional waiting list, late registration handling, ranking-based seeding, multi-currency payment, and a confirmation receipt in the player's language. Clubs use bulk registration to enter several teams at once.

Cross-border registration accepts a valid license from another tenant, applying any temporary-license rules the host federation configured. Publication scope (PL-T007) determines who sees the event: PRIVATE (only owner), ORGNODE (the org and its ancestors/descendants — visibility service expands the tree), TENANT (whole federation), or GLOBAL (every tenant). Scope is changed via PUT /competitions/{id}/publication with an audit log; only federation-admins may publish GLOBAL (club-admins get 403).

Cross-tenant consumers hit GET /public/competitions/global (paginated, cached 15 min) or GET /public/tenants/{code}/competitions for per-federation listings; internal queries filter by scope query param. A backfill migration set existing competitions to TENANT and a compound index (publication_scope, status, start_date) keeps queries fast.

Capacidades clave

  • Global tournament search, map-based finder, traveling-player mode, ELO recommendations
  • Cross-border discovery: foreign-friendly flag, requirements info, temporary licenses
  • Online registration with license, age, ranking, team composition, and substitution validation
  • Waiting list, late registration, bulk team entry, ranking-based seeding, multi-currency payment
  • Publication scope enum (PRIVATE/ORGNODE/TENANT/GLOBAL) with audit log on every change
  • Cross-tenant public APIs (global feed cached 15 min, per-tenant listings)
  • ORGNODE ancestor/descendant expansion via visibility service, GLOBAL gated to federation-admin

En la práctica

A Belgian player on holiday in Provence opens map-based search around Aix-en-Provence for the upcoming weekend and finds three tournaments flagged open to foreign players. He reads the detail page in French, checks that his FRBP license is accepted under the temporary-license rule, and registers solo for the doublette consolante. License validation passes, payment goes through in EUR, and he gets an immediate receipt.

The organizer's federation-admin had earlier set publication scope to GLOBAL so the event surfaced in the cross-tenant feed; the change was audited. The Belgian's club-admin friend tries to publish her own event GLOBAL and gets a 403 — only the federation-admin can.

Funcionalidades de este subsistema

34
ID Status Funcionalidades
F04.03.01 Entregado Global tournament search (find competitions in any country) — PL-F0403a ✅ PL-F0403a
F04.03.02 Entregado Map-based tournament finder (search by location, radius, dates) — PL-F0403a ✅ PL-F0403a
F04.03.03 Entregado Filter by: country, region, format, discipline, team format, level, open/invitational — PL-F0403a ✅ PL-F0403a
F04.03.04 Entregado "Traveling player" mode (show tournaments near a destination + date range) — PL-F0403a ✅ PL-F0403a
F04.03.05 Entregado Tournament recommendations based on ELO level and preferences — PL-F0403a ✅ PL-F0403a
F04.03.06 Entregado Follow tournaments in other countries (get notifications) — PL-F0403b ✅ PL-F0403b
F04.03.07 Entregado Tournament detail page: rules, venue, entry fee, accommodation tips, language — PL-F0403b ✅ PL-F0403b
F04.03.08 Entregado "Open to foreign players" flag on tournaments (organizer marks this) — PL-F0403b ✅ PL-F0403b
F04.03.09 Entregado Cross-border entry requirements info (license validity, temporary license) — PL-F0403b ✅ PL-F0403b
F04.03.10 Entregado Temporary license / day pass for foreign players (federation configurable) — PL-F0403b ✅ PL-F0403b
F04.03.11 Entregado Tournament saved/wishlist (plan your tournament calendar) — PL-F0403c ✅ PL-F0403c
F04.03.12 Entregado Travel group finder (other players going to same tournament) — PL-F0403c ✅ PL-F0403c
F04.03.13 Entregado Online registration (individual and team) — PL-F0403c ✅ PL-F0403c
F04.03.14 Entregado Registration validation (license check, age category, ranking eligibility) — PL-F0403c ✅ PL-F0403c
F04.03.15 Entregado Registration payment integration (multi-currency for international) — PL-F0403c ✅ PL-F0403c
F04.03.16 Entregado Registration deadline management — PL-F0403d ✅ PL-F0403d
F04.03.17 Entregado Waiting list management — PL-F0403d ✅ PL-F0403d
F04.03.18 Entregado Late registration handling — PL-F0403d ✅ PL-F0403d
F04.03.19 Entregado Team composition validation (correct number of players, mixed rules) — PL-F0403d ✅ PL-F0403d
F04.03.20 Entregado Substitution rules and management — PL-F0403d ✅ PL-F0403d
F04.03.21 Entregado Registration confirmation and receipt — PL-F0403e ✅ PL-F0403e
F04.03.22 Entregado Bulk registration (club enters multiple teams) — PL-F0403e ✅ PL-F0403e
F04.03.23 Entregado Seeding based on rankings — PL-F0403e ✅ PL-F0403e
F04.03.24 Entregado Cross-border registration (register for tournament in another nation with valid license) — PL-F0403e ✅ PL-F0403e
F04.03.25 Entregado Registration language (show tournament info in player's language) — PL-F0403e ✅ PL-F0403e
F04.03.26 Entregado PublicationScope enum (PRIVATE/ORGNODE/TENANT/GLOBAL) on Competition — PL-T007 ✅ PL-T007
F04.03.27 Entregado PUT /competitions/{id}/publication endpoint with audit log — PL-T007 ✅ PL-T007
F04.03.28 Entregado GET /public/competitions/global cross-tenant public API (paginerad, cachad 15 min) — PL-T007 ✅ PL-T007
F04.03.29 Entregado GET /public/tenants/{code}/competitions per-federation public listing — PL-T007 ✅ PL-T007
F04.03.30 Entregado Scope filter on GET /competitions (query param scope=private tenant|orgnode|global) — PL-T007 | ✅ PL-T007
F04.03.31 Entregado GLOBAL scope requires federation-admin (club-admin 403 policy) — PL-T007 ✅ PL-T007
F04.03.32 Entregado Competition visibility service with ORGNODE ancestor/descendant expansion — PL-T007 ✅ PL-T007
F04.03.33 Entregado Backfill migration (existing competitions → TENANT scope) — PL-T007 ✅ PL-T007
F04.03.34 Entregado Compound index (publication_scope, status, start_date) for queries — PL-T007 ✅ PL-T007