Files
euchre_camp/app/repositories/teams.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

33 lines
809 B
Ruby

# frozen_string_literal: true
require 'rom-repository'
module EuchreCamp
module Repositories
class Teams < ::EuchreCamp::Repository[:teams]
commands :create, update: :by_pk, delete: :by_pk
def by_event(event_id)
teams.where(event_id: event_id).to_a
end
def find_or_create(event_id, player_1_id, player_2_id, team_name = nil)
existing = teams.where(
event_id: event_id,
player_1_id: [player_1_id, player_2_id],
player_2_id: [player_1_id, player_2_id]
).one
return existing if existing
create(
event_id: event_id,
player_1_id: player_1_id,
player_2_id: player_2_id,
team_name: team_name || "Team #{player_1_id}-#{player_2_id}"
)
end
end
end
end