using yawaflua.Discord.Net.Entities.Enums;
namespace yawaflua.Discord.Net.Interfaces.Models;
public interface IUser
{
///
/// the user's id
///
/// User-object
public ulong Id { get; set; }
///
/// the user's username, not unique across the platform
///
/// User-object
public string Username { get; set; }
///
/// the user's display name, if it is set. For bots, this is the application name
///
public string GlobalName { get; set; }
///
/// the user's Discord-tag (Obsolete)
///
/// User-object
public string Discriminator { get; set; }
///
/// the user's avatar hash
///
/// Image formatting
/// User-object
public string? AvatarHash { get; set; }
///
/// the user's banner hash
///
/// Image formatting
/// User-object
/// Available in the User object only if the user has a banner set.
/// https://cdn.discordapp.com/banners/{user.id}/{banner}.png?size=512
public string? Banner { get; set; }
///
/// whether the user belongs to an OAuth2 application
///
/// User-object
public bool? Bot { get; set; }
///
/// whether the user is an Official Discord System user (part of the urgent message system)
///
/// User-object
public bool? System { get; set; }
///
/// whether the user has two factor enabled on their account
///
/// User-object
public bool? MfaEnabled { get; set; }
///
/// the user's banner color encoded as an integer representation of hexadecimal color code
///
/// User-object
public int? AccentColor { get; set; }
///
/// the user's chosen language option
///
/// User-object
public string? Locale { get; set; }
///
/// whether the email on this account has been verified
///
/// User-object
public bool? Verified { get; set; }
///
/// the user's email
///
/// User-object
public string? Email { get; set; }
///
/// the flags on a user's account
///
/// User-object
/// User flags
public UserFlag? Flags { get; set; }
///
/// the type of Nitro subscription on a user's account
///
/// User-object
public PremiumType? PremiumType { get; set; }
///
/// the public flags on a user's account
///
/// User-object
public UserFlag? PublicFlags { get; set; }
///
/// data for the user's avatar decoration
///
/// User-object
public IAvatarDecoration? AvatarDecoration { get; set; }
public string GetAvatarUrl(int size = 128);
public string GetBannerUrl(int size = 128);
}