namespace GmRelay.Shared.Domain; public enum GroupManagerRole { Owner, CoGm } public static class GroupManagerRoleExtensions { public const string OwnerValue = "Owner"; public const string CoGmValue = "CoGm"; public static string ToDatabaseValue(this GroupManagerRole role) => role switch { GroupManagerRole.Owner => OwnerValue, GroupManagerRole.CoGm => CoGmValue, _ => throw new ArgumentOutOfRangeException(nameof(role), role, "Unknown group manager role.") }; public static GroupManagerRole FromDatabaseValue(string value) => value switch { OwnerValue => GroupManagerRole.Owner, CoGmValue => GroupManagerRole.CoGm, _ => throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown group manager role.") }; public static string ToDisplayName(this GroupManagerRole role) => role switch { GroupManagerRole.Owner => "Owner", GroupManagerRole.CoGm => "Co-GM", _ => throw new ArgumentOutOfRangeException(nameof(role), role, "Unknown group manager role.") }; }