namespace SharpChat.Users; public class User( string userId, string userName, ColourInheritable colour, int rank, UserPermissions perms, string nickName = "", UserStatus status = UserStatus.Online, string statusText = "" ) { public string UserId { get; } = userId; public string UserName { get; internal set; } = userName; public ColourInheritable Colour { get; internal set; } = colour; public int Rank { get; internal set; } = rank; public UserPermissions Permissions { get; internal set; } = perms; public string NickName { get; internal set; } = nickName; public UserStatus Status { get; internal set; } = status; public string StatusText { get; internal set; } = statusText; public bool NameEquals(string name) { return string.Equals(name, UserName, StringComparison.OrdinalIgnoreCase) || string.Equals(name, NickName, StringComparison.OrdinalIgnoreCase); } public string GetDMChannelNameWith(User other) { return string.Compare(UserId, other.UserId, StringComparison.Ordinal) > 0 ? $"@{other.UserId}-{UserId}" : $"@{UserId}-{other.UserId}"; } }