namespace Foxcord.Discord;

public record User(
    Snowflake Id,
    string Username,
    string Discriminator,
    string? DisplayName,
    string? Avatar,
    string? Banner,
    int? AccentColor,
    string? Locale,
    bool Bot,
    bool System = false
)
{
    public string Tag => Discriminator == "0" ? Username : $"{Username}#{Discriminator}";

    private string AvatarExt => Avatar?.StartsWith("a_") == true ? ".gif" : ".png";
    private string BannerExt => Banner?.StartsWith("a_") == true ? ".gif" : ".png";

    public string AvatarUrl => Avatar == null
        ? $"https://cdn.discordapp.com/embed/avatars/{(Id >> 22) % 6}"
        : $"https://cdn.discordapp.com/avatars/{Id}/{Avatar}{AvatarExt}";

    public string? BannerUrl => Banner == null ? null : $"https://cdn.discordapp.com/banners/{Id}/{Banner}{BannerExt}";
}