#nullable enable using System.Collections.Generic; namespace PluralKit.Core { /// /// Model for the `proxy_members` PL/pgSQL function in `functions.sql` /// public class ProxyMember { public MemberId Id { get; } public IReadOnlyCollection ProxyTags { get; } = new ProxyTag[0]; public bool KeepProxy { get; } public string? ServerName { get; } public string? DisplayName { get; } public string Name { get; } = ""; public string? ServerAvatar { get; } public string? Avatar { get; } public bool AllowAutoproxy { get; } public string? Color { get; } public string ProxyName(MessageContext ctx) => ctx.SystemTag != null ? $"{ServerName ?? DisplayName ?? Name} {ctx.SystemTag}" : ServerName ?? DisplayName ?? Name; public string? ProxyAvatar(MessageContext ctx) => ServerAvatar ?? Avatar ?? ctx.SystemAvatar; public ProxyMember() { } public ProxyMember(string name, params ProxyTag[] tags) { Name = name; ProxyTags = tags; } } }