# 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