package kickr.web.model.match; import java.util.Date; import java.util.List; import java.util.stream.Collectors; import javax.validation.constraints.NotNull; import kickr.db.entity.Game; import kickr.db.entity.Match; import kickr.web.model.GameData; import kickr.web.model.FoosballTableData; import kickr.web.model.TeamData; public class MatchData extends CoreMatchData { @NotNull protected Long id; private boolean rated; private boolean removed; private Date created; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public boolean isRated() { return rated; } public void setRated(boolean rated) { this.rated = rated; } public boolean isRemoved() { return removed; } public void setRemoved(boolean removed) { this.removed = removed; } public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } public void addGames(List<Game> games) { this.games = GameData.fromGames(games); } public static MatchData fromMatch(Match match) { MatchData matchData = new MatchData(); matchData.id = match.getId(); matchData.team1 = TeamData.fromTeam(match.getTeam1()); matchData.team2 = TeamData.fromTeam(match.getTeam2()); matchData.setCreated(match.getCreated()); matchData.setPlayed(match.getPlayed()); matchData.setRated(match.isRated()); matchData.setRemoved(match.isRemoved()); matchData.result = MatchResultData.fromMatchResult(match.getResult()); matchData.table = FoosballTableData.fromTable(match.getTable()); return matchData; } public static List<MatchData> fromMatches(List<Match> matches) { return matches.stream().map(MatchData::fromMatch).collect(Collectors.toList()); } }