// <auto-generated />
//
// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
//
//    using QuickType;
//
//    var readerInfo = ReaderInfo.FromJson(jsonString);

namespace QuickType
{
    using System;
    using System.Collections.Generic;

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

    public partial class ReaderInfo
    {
        [JsonProperty("totalAntennas")]
        public long TotalAntennas { get; set; }

        [JsonProperty("totalGPIs")]
        public long TotalGpIs { get; set; }

        [JsonProperty("totalGPOs")]
        public long TotalGpOs { get; set; }

        [JsonProperty("inventorySpeed")]
        public long InventorySpeed { get; set; }

        [JsonProperty("readerTemperature")]
        public long ReaderTemperature { get; set; }

        [JsonProperty("antennaPowersLevel")]
        public long[] AntennaPowersLevel { get; set; }

        [JsonProperty("frequencies")]
        public long[] Frequencies { get; set; }

        [JsonProperty("allProfiles")]
        public long[] AllProfiles { get; set; }

        [JsonProperty("gpiStatus")]
        public GpiStatus[] GpiStatus { get; set; }

        [JsonProperty("gpoStatus")]
        public GpoStatus[] GpoStatus { get; set; }

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

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

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

        [JsonProperty("DESC")]
        public object Desc { get; set; }

        [JsonProperty("RID")]
        public long Rid { get; set; }
    }

    public partial class GpiStatus
    {
        [JsonProperty("port")]
        public long Port { get; set; }

        [JsonProperty("status")]
        public long Status { get; set; }
    }

    public partial class GpoStatus
    {
        [JsonProperty("port")]
        public long Port { get; set; }

        [JsonProperty("status")]
        public bool Status { get; set; }
    }

    public partial class ReaderInfo
    {
        public static ReaderInfo FromJson(string json) => JsonConvert.DeserializeObject<ReaderInfo>(json, QuickType.Converter.Settings);
    }

    public static class Serialize
    {
        public static string ToJson(this ReaderInfo self) => JsonConvert.SerializeObject(self, QuickType.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 }
            },
        };
    }
}
