Files
euchre_camp/app/repositories/event_participants.rb
T
david ac858f1e6d feat(tournaments): add partnership tracking and tournament management
Implement comprehensive partnership tracking system and tournament
management features including round-robin, single/double elimination,
and Swiss system pairings.

Changes:
- Add partnership_games and partnership_stats tables
- Implement PartnershipTracker service for recording partnership data
- Add tournament generator with multiple formats
- Create tournament management actions and views
- Add acceptance tests for partnership tracking
- Fix PartnershipTracker to use single snapshot per player per match
- Fix round-robin test to query by round_number instead of hardcoded ID

Note: All 8 acceptance tests now passing
2026-03-27 12:25:34 -07:00

40 lines
961 B
Ruby

# frozen_string_literal: true
require 'rom-repository'
module EuchreCamp
module Repositories
class EventParticipants < ::EuchreCamp::Repository[:event_participants]
commands :create, update: :by_pk, delete: :by_pk
def by_event(event_id)
event_participants.where(event_id: event_id).to_a
end
def players_by_event(event_id)
# Return player IDs registered for an event
event_participants
.where(event_id: event_id)
.select(:player_id)
.to_a
.map { |p| p[:player_id] }
end
def register_player(event_id, player_id, seed: nil)
create(
event_id: event_id,
player_id: player_id,
status: 'registered',
seed: seed
)
end
def remove_player(event_id, player_id)
event_participants
.where(event_id: event_id, player_id: player_id)
.delete
end
end
end
end