Commit Graph

137 Commits

Author SHA1 Message Date
Daniel Schädler aba4c1c23d Merge remote-tracking branch 'origin/master' into codex/tur-225-user-organizer-accounts 2026-05-04 15:25:45 +02:00
Daniel Schädler ed299aba57 feat(accounts): support multiple team players
Teams now use a join table so organizers can attach more than one player account while players still get public profile data.
2026-05-04 15:25:26 +02:00
Daniel Schädler 995a2cc250 feat(accounts): add player team profiles
Teams can link to player accounts by email while keeping profile tournament data public unless viewed by the account owner.
2026-05-04 14:52:59 +02:00
Daniel Schädler 7fae7e2d95 feat(timer): update reason without restart 2026-05-04 14:40:04 +02:00
Daniel Schädler 54975d969b Merge remote-tracking branch 'origin/master' into codex/tur-30-transaction-log 2026-04-30 14:07:12 +02:00
Daniel Schädler 21e1463b64 feat: add tournament transaction log 2026-04-30 10:04:56 +02:00
Daniel Schädler 2b63e61475 fix(sync): protect follower sync tokens
Store read-only receiver tokens as keyed digests and expose only sync_auth_configured in owner responses. Keep leader push tokens write-only in API responses because outbound sync still needs to send them.

Refs TUR-84
2026-04-30 09:32:37 +02:00
Daniel Schädler df227f9397 feat(matches): stop in-progress matches 2026-04-29 19:56:25 +02:00
Daniel Schädler 6df5cb2502 fix(ci): restore Rails 8 spec suite
Confirm factory users for real Devise auth in request specs and use Rails 8-compatible status and route calls to remove deprecation warnings.
2026-04-29 15:48:20 +02:00
Daniel Schädler fcfdead118 feat: start group matches by catch-up position 2026-04-28 23:46:00 +02:00
Daniel Schädler 3008b9fd50
TUR-137 add timer reasons 2026-04-28 12:28:01 +02:00
Daniel Schädler 244952093c Merge branch 'codex/tur-117-match-filters' into 'master'
TUR-117: Add match endpoint filters

See merge request turniere/turniere-backend!60
2026-04-26 20:23:27 +00:00
Daniel Schädler acdef9f5b4 feat(beamers): replace asset URLs with config
Add beamer config JSON, drop obsolete asset URL fields, and narrow display_state to the new beamer API states. Migration maps legacy display states to supported values and initializes config to {}.
2026-04-26 16:13:12 +02:00
Daniel Schädler 0ccce16849 feat: add match endpoint filters 2026-04-26 16:03:55 +02:00
Daniel Schädler 35e66f6aeb Keep group identity in live match payload 2026-04-24 16:12:43 +02:00
Daniel Schädler 63757c6b5c Add live tournament match websockets 2026-04-24 13:47:19 +02:00
Daniel Schädler e9ef73c230 refactor: rename timer db column 2026-04-24 11:39:26 +02:00
Daniel Schädler 13acbad55f refactor: clean timer api routes 2026-04-24 11:24:56 +02:00
Daniel Schädler 8b17bc0608 Merge remote-tracking branch 'origin/codex/tur-55-tur-56-timer-websocket' into codex/tur-55-tur-56-timer-websocket
# Conflicts:
#	README.md
2026-04-24 10:15:14 +02:00
Daniel Schädler 69bd43b288 refactor: rename timer API field to timestamp 2026-04-24 10:13:44 +02:00
Daniel Schädler b0bbbb8ce5 Merge branch 'master' into 'codex/tur-55-tur-56-timer-websocket'
# Conflicts:
#   e2e/lib/action_cable_client.rb
#   tasks.py
2026-04-23 21:57:14 +00:00
Daniel Schädler afff813994 feat: add timer modes and websocket updates 2026-04-23 23:29:03 +02:00
Daniel Schädler b40e64cde8 feat: add manual team action list creation 2026-04-23 22:47:51 +02:00
Daniel Schädler 05e4372250 Fix team action not-found responses 2026-04-23 19:59:19 +02:00
Daniel Schädler e41ef870f9 Merge branch 'codex/TUR-80-team-action-lists' into 'master'
TUR-80 playoff token collection tracking

Closes TUR-80

See merge request turniere/turniere-backend!49
2026-04-23 11:46:41 +00:00
Daniel Schädler fa83923bf2 docs: add team action list frontend guide 2026-04-23 10:08:19 +02:00
Daniel Schädler 443b7ff869 fix: sync team action item updates 2026-04-23 09:39:39 +02:00
Daniel Schädler ad96668a04 Merge branch 'TUR-52-backend-match-swap' into 'master'
TUR-52 backend match swap endpoint

Closes TUR-52

See merge request turniere/turniere-backend!48
2026-04-22 15:10:45 +00:00
Daniel Schädler 7d65e4df82 feat: track team action list completion 2026-04-22 16:51:17 +02:00
Daniel Schädler 99538a3343 Add backend group match swap endpoint 2026-04-22 15:48:06 +02:00
Daniel Schädler 2912645499 fix: require deciders for advancing ties 2026-04-22 15:19:53 +02:00
Daniel Schädler 2019d0d029 test: hide sync metadata from public show 2026-04-20 19:48:10 +02:00
Daniel Schädler b65dd35654 fix: add sync roundtrip verification 2026-04-20 19:36:40 +02:00
Daniel Schädler 03947ac0ca Sync beamer state to followers 2026-04-16 15:55:20 +02:00
Daniel Schädler 8789c2cb2e Merge origin/master into follower sync 2026-04-16 15:54:32 +02:00
Daniel Schädler 761bb8daea Simplify default beamer handling 2026-04-16 13:02:40 +02:00
Tobias Huber 2ceba1dfcf Merge branch 'master' into TUR-32_backend-beamer 2026-04-16 08:11:02 +02:00
Daniel Schädler 07b7a78bd5 Merge origin/master into follower sync 2026-04-15 16:43:38 +02:00
Daniel Schädler 3e2400616b Stabilize backend test fixtures 2026-04-15 12:29:32 +02:00
Daniel Schädler 43aa0e11ba Restrict render profiling to non-prod 2026-04-15 10:02:26 +02:00
Daniel Schädler 8bdd7fd1be Enqueue sync after transaction commit 2026-04-14 20:59:30 +02:00
Daniel Schädler 3cbeff617a Allow follower takeover updates 2026-04-14 20:11:42 +02:00
Tobias Huber 58267b6b3a Fix timer timezone handling 2026-04-14 07:10:51 +02:00
Tobias Huber 19f744daeb Add Beamer entity with CRUD API and name-based lookup
New Beamer model scoped to tournaments for multi-projector display control.
Includes migration, validations, serializer, controller with by_name
fallback endpoint, routing, and full RSpec test coverage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 07:10:44 +02:00
Daniel Schädler 133ebae847 Add read-only tournament follower sync 2026-04-13 20:32:34 +02:00
Daniel Schädler 4713a020fa Implement TUR-58 group stage decider matches 2026-04-12 19:13:52 +02:00
Daniel Schädler 11b1004053 Stabilize match controller failure spec 2026-04-12 18:19:28 +02:00
Daniel Schädler eedafe1276 Add ranking decision metadata for group scores 2026-04-12 17:47:28 +02:00
Daniel Schädler 060f3d0422 Hopefully 🤞 fix flaky test 2025-03-16 13:44:37 +01:00
Daniel Schädler cccb8cc806 Mock groupstageservice when changing playoff params 2025-03-16 12:41:28 +01:00