using System.Text.Json.Serialization;
namespace RecRoomArchive.Models.API.Players
{
///
/// The profile of the player from 2016-2019
///
public class BaseProfile
{
///
/// The unique id of the player
///
[JsonPropertyName(name: "Id")] public ulong Id { get; set; }
///
/// The username of the player. This usually doesn't show up in game until around 2017...
///
[JsonPropertyName(name: "Username")] public string Username { get; set; } = string.Empty;
///
/// The display name of the player, this is what's most commonly used in game and is seen on the players nametag
///
[JsonPropertyName(name: "DisplayName")] public string DisplayName { get; set; } = string.Empty;
///
/// The XP of the player, this determines how much XP is required until the next level up but because this is a local server, who gaf
///
[JsonPropertyName(name: "XP")] public int XP { get; set; } = 0;
///
/// The level of the player, usually in a range from 1-30 or 1-50 depending on your time period
///
[JsonPropertyName(name: "Level")] public int Level { get; set; } = 1;
///
/// The internal reputation of the player, reputation works in mysterious ways so I'm not too sure about this one...
///
[JsonPropertyName(name: "Reputation")] public float Reputation { get; set; } = 1.0f;
///
/// If the player has a verified email on their Rec Room account (which they always will)
///
[JsonPropertyName(name: "Verified")] public bool Verified => RegistrationStatus == RegistrationStatus.Registered;
///
/// If the player is a developer of Rec Room (they always will be)
///
[JsonPropertyName(name: "Developer")] public bool Developer { get; set; } = true;
///
/// The bio of the player, I need to find what build this is added in so I can add it to its model...
///
[JsonPropertyName(name: "Bio")] public string Bio { get; set; } = string.Empty;
///
/// The registration status of the player, determined by if they have an email
///
[JsonPropertyName(name: "RegistrationStatus")] public RegistrationStatus RegistrationStatus { get; set; } = RegistrationStatus.Registered;
///
/// If the local player is allowed to recieve invites (junior restriction?)
///
[JsonPropertyName(name: "CanReceiveInvites")] public bool CanReceiveInvites { get; set; } = true;
///
/// The image name of the player
///
[JsonPropertyName(name: "ProfileImageName")] public string ProfileImageName { get; set; } = "DefaultProfileImage";
///
/// If the player is allowed to recieve invites (junior restriction?)
///
[JsonPropertyName(name: "JuniorProfile")] public bool JuniorProfile { get; set; } = false;
///
/// If the player is forced to only see alt images like a junior player
///
[JsonPropertyName(name: "ForceJuniorImages")] public bool ForceJuniorImages { get; set; } = false;
///
/// If the player is about to become a junior
///
[JsonPropertyName(name: "PendingJunior")] public bool PendingJunior { get; set; } = false;
///
/// If the player has a birthday on their account
///
[JsonPropertyName(name: "HasBirthday")] public bool HasBirthday { get; set; } = true;
///
/// If the player has an email on their account
///
[JsonPropertyName(name: "HasEmail")] public bool HasEmail { get; set; } = true;
///
/// If the player perfers to not matchmake with junior players, can be null
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull), JsonPropertyName(name: "AvoidJuniors")] public bool? AvoidJuniors { get; set; }
}
}