// <auto-generated />
//
// To parse this JSON data, add NuGet 'LC.Newtonsoft.Json' then do:
//
//    using TapSDK.Compliance.Localization;
//
//    var ComplianceLocalizationItems = ComplianceLocalizationItems.FromJson(jsonString);

namespace TapSDK.Compliance.Localization
{
    using System;
    using System.Collections.Generic;

    using System.Globalization;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Converters;
	using TapSDK.Core;

    public partial class ComplianceLocalizationItems
    {
        [JsonProperty("items")]
        public Items Items { get; set; }
		public Item Current
		{
			get
			{
				return this.Items.Zhs;	
			}
		}
		public const string PATH = "Config/ComplianceLocalization";
    }

    public partial class Items
    {
        [JsonProperty("Zhs")]
        public Item Zhs { get; set; }

        [JsonProperty("En")]
        public Item En { get; set; }

        [JsonProperty("Id")]
        public Item Id { get; set; }

        [JsonProperty("Ja")]
        public Item Ja { get; set; }

        [JsonProperty("Ko")]
        public Item Ko { get; set; }

        [JsonProperty("Th")]
        public Item Th { get; set; }

        [JsonProperty("Zht")]
        public Item Zht { get; set; }
        
        [JsonProperty("De")]
        public Item De { get; set; }
        
        [JsonProperty("Es")]
        public Item Es { get; set; }
        
        [JsonProperty("Fr")]
        public Item Fr { get; set; }
        
        [JsonProperty("Pt")]
        public Item Pt { get; set; }
        
        [JsonProperty("Ru")]
        public Item Ru { get; set; }
        
        [JsonProperty("Tr")]
        public Item Tr { get; set; }
        
        [JsonProperty("Vi")]
        public Item Vi { get; set; }
    }

    public partial class Item
    {
        [JsonProperty("NetError")]
        public string NetError { get; set; }

        [JsonProperty("NoVerification")]
        public string NoVerification { get; set; }

        [JsonProperty("EnterGame")]
        public string EnterGame { get; set; }

        [JsonProperty("ExitGame")]
        public string ExitGame { get; set; }

        [JsonProperty("Retry")]
        public string Retry { get; set; }
        
        [JsonProperty("OnVerified")]
        public string OnVerified { get; set; }
    }

    public partial class ComplianceLocalizationItems
    {
        public static ComplianceLocalizationItems FromJson(string json) => JsonConvert.DeserializeObject<ComplianceLocalizationItems>(json, TapSDK.Compliance.Localization.Converter.Settings);
    }

    public static class Serialize
    {
        public static string ToJson(this ComplianceLocalizationItems self) => JsonConvert.SerializeObject(self, TapSDK.Compliance.Localization.Converter.Settings);
    }

    internal static class Converter
    {
        public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
        {
            MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
            DateParseHandling = DateParseHandling.None,
            Converters =
            {
                new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
            },
        };
    }
}
