Skip to content

feat(games): players for those who asked, court total, logo, more filters (#668) - #676

Merged
h0mele55 merged 2 commits into
mainfrom
feat/668-open-game-fields
Nov 12, 2026
Merged

h0mele55 merged 2 commits into
mainfrom
feat/668-open-game-fields

Conversation

@h0mele55

Copy link
Copy Markdown
Collaborator

Part of #668 (games). Owner decisions 2026-11-12:

  • players on OpenGame (list and detail): booker first, then everyone on the booking — first name, picture, and their level in the sport as they let others see it (shownRatings); a guest shows their typed first name only. Only for a viewer who is the booker, plays in it, or has a PENDING or ACCEPTED request; for anyone else (signed out included) it is null, so browsers keep playersCount and empty seats. No user ids on the wire, as before.
  • courtPrice { totalCents, currency }: the booking's total. No per-player split (owner: show the court total).
  • isIndoor, venue.logoUrl (the club's logo).
  • GET /games filters: dateFrom/dateTo (days at the venue, inclusive), fromHour/toHour (start hour at the venue), indoor, level (the wish includes that whole level, or wishes none). Bad values are 400 naming the field.

Not in this PR (rest of #668): notification categories and filter, /me/summary counts, booking/conversation pictures.

Checked locally: tsc; eslint; guardrails + unit + rendered (313 suites, 9933 tests); integration open-play + shown-ratings (27, three new cases: who sees players through ask → accept → decline, price/indoor/logo, every filter and its 400) on a private test DB.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DfeuWUNfBvCav72pHsXdHa

user and others added 2 commits November 12, 2026 14:56
…ters (#668)

For the restyled iPhone game card (playerz-ios#53), with the owner's
decisions of 2026-11-12:
- `players` (first name, picture, shown level, booker first) only for a
  viewer who books, plays, or has a pending or accepted request; anyone
  else browsing gets null and keeps counts and empty seats.
- `courtPrice`: the booking's total, not a share per player.
- `isIndoor`, `venue.logoUrl`.
- GET /games filters: dateFrom/dateTo, fromHour/toHour (start hour at the
  venue), indoor, level (the wish includes it, or there is none).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DfeuWUNfBvCav72pHsXdHa
…elds

# Conflicts:
#	openapi/playerz-v1.json
@h0mele55
h0mele55 merged commit 25c59aa into main Nov 12, 2026
19 checks passed
@h0mele55
h0mele55 deleted the feat/668-open-game-fields branch November 12, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant