Daniel Schädler
8951070a15
fix: refresh RuboCop cleanup
2026-05-06 12:06:19 +02:00
Daniel Schädler
27ed1e191c
Merge remote-tracking branch 'origin/master' into codex/tur-225-user-organizer-accounts
...
# Conflicts:
# db/schema.rb
# spec/e2e/http/api_surface_spec.rb
2026-05-04 19:21:01 +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
794f835148
fix(tournaments): keep owner data out metadata
...
Tournament metadata remains optional and tournament-scoped.
2026-05-04 14:55:48 +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
9b10cc12d2
feat(tournaments): add metadata fields
...
Add typed tournament metadata to API payloads and follower sync.
2026-05-04 14:43:20 +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
90e71a068c
Merge master and fix e2e service env
2026-04-28 22:58:09 +02:00
Daniel Schädler
fe0f3c868e
TUR-130 update dependencies and ruby
2026-04-28 13:55:47 +02:00
Daniel Schädler
3008b9fd50
TUR-137 add timer reasons
2026-04-28 12:28:01 +02:00
Daniel Schädler
6db6442205
Merge remote-tracking branch 'origin/master' into codex/TUR-113-fix-rubocop
...
# Conflicts:
# spec/e2e/http/api_surface_spec.rb
# spec/e2e/http/tournament_follow_sync_beamers_websocket_spec.rb
2026-04-27 10:55:29 +02:00
Daniel Schädler
68b72cc01a
test: update beamer e2e contract
2026-04-26 23:45:35 +02: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
cfb07e82fc
fix: clear RuboCop offenses
2026-04-26 15:46:31 +02:00
Daniel Schädler
e9ef73c230
refactor: rename timer db column
2026-04-24 11:39:26 +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
7151976d26
feat: add backend beamer live updates
2026-04-23 14:35:16 +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
883638f4fd
feat: add websocket team action updates
2026-04-23 10:19:47 +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
f3ef3f4373
refactor: simplify playoff loser lookup
2026-04-22 16:15:25 +02:00
Daniel Schädler
99538a3343
Add backend group match swap endpoint
2026-04-22 15:48:06 +02:00
Daniel Schädler
57aecd7cc5
feat: add third place playoff match
2026-04-22 15:46:48 +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
ce7b5c5ac7
Fix match points specs
2026-04-15 11:22:55 +02:00
Daniel Schädler
2d273f067c
Optimize tournament render hot path
2026-04-15 09:36:56 +02:00
Daniel Schädler
0ba86c84f0
Clear follower token on takeover
2026-04-14 18:29:30 +02:00
Daniel Schädler
bbb1ad97ef
Make follower sync asynchronous
2026-04-13 20:54:28 +02:00
Daniel Schädler
133ebae847
Add read-only tournament follower sync
2026-04-13 20:32:34 +02:00
Tobias Huber
85fce7faac
add backend beamer
2026-04-13 20:01:48 +02:00
Daniel Schädler
4713a020fa
Implement TUR-58 group stage decider matches
2026-04-12 19:13:52 +02:00
Daniel Schädler
eedafe1276
Add ranking decision metadata for group scores
2026-04-12 17:47:28 +02:00
Daniel Schädler
7cef4a9b5e
Fix group score direct comparison tiebreak
2026-04-12 17:03:33 +02:00
Daniel Schädler
79bafec693
Add advancing teams into tournaments show endpoint
2025-03-09 21:05:41 +01:00
Daniel Schädler
5d857c5d82
Remove position from comparison
2024-04-07 21:40:59 +02:00
Daniel Schädler
4a8cb71fc4
Add and calculate position to sort group_scores by
2024-04-07 21:17:45 +02:00
Daniel Schädler
1084d836c1
Implement sorting correctly with <=> operator
2024-04-07 18:07:55 +02:00
Daniel Schädler
c3af6f9232
Rubocop -A
2021-08-15 14:31:50 +02:00
Daniel Schädler
33ccab8988
Return all matches also from groups
2019-10-26 00:32:14 +02:00
Daniel Schädler
77c76b7a31
Add matches method to tournament
...
The method collects all matches from all stages
2019-10-25 23:47:38 +02:00
Daniel Schädler
4e72d015ff
Implement method to check if stage is over
2019-06-18 19:22:05 +02:00
Daniel Schädler
c5780c2da3
Implement function to calculate the difference in points
2019-06-18 19:22:05 +02:00