using Radium.DataExporter.Models.Accounts.Enums;
using Radium.DataExporter.Models.Common.Enums;
using System.Text.Json.Serialization;

namespace Radium.DataExporter.Models.Accounts;

public class Account
{
    [JsonPropertyName(name: "accountId")] public long AccountId { get; set; }

    [JsonPropertyName(name: "username")] public string Username { get; set; } = string.Empty;
    [JsonPropertyName(name: "displayName")] public string DisplayName { get; set; } = string.Empty;

    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    [JsonPropertyName(name: "displayEmoji")] public string? DisplayEmoji { get; set; }

    [JsonPropertyName(name: "profileImage")] public string ProfileImage { get; set; } = "DefaultProfileImage";
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    [JsonPropertyName(name: "bannerImage")] public string? BannerImage { get; set; }

    [JsonPropertyName(name: "isJunior")] public bool? IsJunior { get; set; }

    [JsonPropertyName(name: "platforms")] public PlatformMask Platforms { get; set; }

    [JsonPropertyName(name: "personalPronouns")] public PersonalPronouns PersonalPronouns { get; set; }
    [JsonPropertyName(name: "identityFlags")] public IdentityFlags IdentityFlags { get; set; }

    [JsonPropertyName(name: "createdAt")] public DateTime CreatedAt { get; set; }

    [JsonPropertyName(name: "isMetaPlatformBlocked")] public bool IsMetaPlatformBlocked { get; set; }
}