package tc.oc.api.tourney;
import com.google.common.util.concurrent.ListenableFuture;
import tc.oc.api.docs.Entrant;
import tc.oc.api.docs.PlayerId;
import tc.oc.api.docs.Tournament;
import tc.oc.api.docs.team;
import tc.oc.api.model.QueryService;
public interface TournamentService extends QueryService<Tournament> {
ListenableFuture<RecordMatchResponse> recordMatch(Tournament tournament, String matchId);
ListenableFuture<Entrant> entrant(String tournamentId, String teamId);
default ListenableFuture<Entrant> entrant(Tournament tournament, team.Id team) {
return entrant(tournament._id(), team._id());
}
ListenableFuture<Entrant> entrantByTeamName(String tournamentId, String teamName);
default ListenableFuture<Entrant> entrantByTeamName(Tournament tournament, String teamName) {
return entrantByTeamName(tournament._id(), teamName);
}
ListenableFuture<Entrant> entrantByMember(String tournamentId, PlayerId playerId);
default ListenableFuture<Entrant> entrantByMember(Tournament tournament, PlayerId playerId) {
return entrantByMember(tournament._id(), playerId);
}
}