namespace Gameboard.ShogiUI.Sockets.Models { /// /// A representation of a Session without the board and game-rules. /// public class SessionMetadata { public string Name { get; } public User Player1 { get; } public User? Player2 { get; private set; } public bool IsPrivate { get; } public SessionMetadata(string name, bool isPrivate, User player1, User? player2 = null) { Name = name; IsPrivate = isPrivate; Player1 = player1; Player2 = player2; } public SessionMetadata(Session sessionModel) { Name = sessionModel.Name; IsPrivate = sessionModel.IsPrivate; Player1 = sessionModel.Player1; Player2 = sessionModel.Player2; } public void SetPlayer2(User user) { Player2 = user; } public bool IsSeated(User user) => user.Id == Player1.Id || user.Id == Player2?.Id; public ServiceModels.Types.Session ToServiceModel() => new(Name, Player1.DisplayName, Player2?.DisplayName); } }