package com.xuezhanmaster.game.domain; import com.xuezhanmaster.game.event.GameEvent; import java.util.ArrayList; import java.time.Instant; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.UUID; public class GameSession { private final String gameId; private final String roomId; private final Instant createdAt; private final GameTable table; private final List events; private ResponseActionWindow pendingResponseActionWindow; private final Map responseActionSelections; public GameSession(String roomId, GameTable table) { this.gameId = UUID.randomUUID().toString(); this.roomId = roomId; this.createdAt = Instant.now(); this.table = table; this.events = new ArrayList<>(); this.responseActionSelections = new LinkedHashMap<>(); } public String getGameId() { return gameId; } public String getRoomId() { return roomId; } public Instant getCreatedAt() { return createdAt; } public GameTable getTable() { return table; } public List getEvents() { return events; } public ResponseActionWindow getPendingResponseActionWindow() { return pendingResponseActionWindow; } public void setPendingResponseActionWindow(ResponseActionWindow pendingResponseActionWindow) { this.pendingResponseActionWindow = pendingResponseActionWindow; } public Map getResponseActionSelections() { return responseActionSelections; } public void clearResponseActionSelections() { responseActionSelections.clear(); } }