using Shogi.Domain.ValueObjects; namespace Shogi.Domain; public class Session { public Session( string name, string player1Name) { Name = name; Player1 = player1Name; Board = new(BoardState.StandardStarting); } public string Name { get; } public ShogiBoard Board { get; } public string Player1 { get; } public string? Player2 { get; private set; } public void AddPlayer2(string player2Name) { if (Player2 != null) throw new InvalidOperationException("Player 2 already exists while trying to add a second player."); if (Player1.Equals(player2Name, StringComparison.OrdinalIgnoreCase)) throw new InvalidOperationException("Player 2 must be different from Player 1"); Player2 = player2Name; } public bool IsSeated(string playerName) { return Player1 == playerName || Player2 == playerName; } }