# 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