package com.flexpoker.table.command.events; import java.util.HashMap; import java.util.Map; import java.util.UUID; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.flexpoker.framework.event.BaseEvent; import com.flexpoker.table.command.framework.TableEvent; public class TableCreatedEvent extends BaseEvent implements TableEvent { private final UUID gameId; private final int numberOfPlayersPerTable; private final Map<Integer, UUID> seatPositionToPlayerMap; private final int startingNumberOfChips; @JsonCreator public TableCreatedEvent( @JsonProperty(value = "aggregateId") UUID aggregateId, @JsonProperty(value = "version") int version, @JsonProperty(value = "gameId") UUID gameId, @JsonProperty(value = "numberOfPlayersPerTable") int numberOfPlayersPerTable, @JsonProperty(value = "seatPositionToPlayerMap") Map<Integer, UUID> seatPositionToPlayerMap, @JsonProperty(value = "startingNumberOfChips") int startingNumberOfChips) { super(aggregateId, version); this.gameId = gameId; this.numberOfPlayersPerTable = numberOfPlayersPerTable; this.seatPositionToPlayerMap = new HashMap<>(seatPositionToPlayerMap); this.startingNumberOfChips = startingNumberOfChips; } @Override public UUID getGameId() { return gameId; } public int getNumberOfPlayersPerTable() { return numberOfPlayersPerTable; } public Map<Integer, UUID> getSeatPositionToPlayerMap() { return new HashMap<>(seatPositionToPlayerMap); } public int getStartingNumberOfChips() { return startingNumberOfChips; } }