using RecNet.Domain.Exceptions; namespace RecNet.Domain.GameVersions; public class GameVersion { private GameVersion() { } private GameVersion(string version, bool isValid) { Version = RequireValue(version, nameof(version)); IsValid = isValid; } public string Version { get; private set; } = string.Empty; public bool IsValid { get; private set; } public static GameVersion Create(string version, bool isValid) => new(version, isValid); public void MarkValid() => IsValid = true; public void MarkInvalid() => IsValid = false; private static string RequireValue(string value, string parameterName) => !string.IsNullOrWhiteSpace(value) ? value : throw new DomainException($"{parameterName} is required."); }