using EVCB_OCPP.Packet20.DataTypes;
using EVCB_OCPP.Packet20.DataTypes.EnumTypes;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EVCB_OCPP.Packet20.Messages
{
    public class SendLocalListRequest
    {
        /// <summary>
        /// In case of a full update this is the version
        /// number of the full list.In case of a differential update it is
        ///the version number of the list after the update has been
        ///applied.
        /// </summary>
        [Required]
        public int VersionNumber { set; get; }

        /// <summary>
        /// This contains the type of update (full or
        /// differential) of this request.
        /// </summary>
        [Required]
        [JsonConverter(typeof(StringEnumConverter))]
        public UpdateEnumType UpdateType { set; get; }

        /// <summary>
        /// This contains the Local Authorization List
        ///entries.
        /// </summary>
        public List<AuthorizationData> LocalAuthorizationList { set; get; }
    }
}
