using EVCB_OCPP.Packet.Messages.SubTypes;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;

namespace EVCB_OCPP.WEBAPI.Models.WebAPI
{
    public class LocalListRequest
    {

        

        [Required]
        public int ListVersion { set; get; }

     
        public List<OCPPAuthorizationData> LocalAuthorizationList { set; get; }

        
        public int? UpdateType { set; get; }

    }

    public class OCPPAuthorizationData
    {
        public OCPPAuthorizationData() { }

        [Required]
        public string IdTag { get; set; }
        public OCPPIdTagInfo IdTagInfo { get; set; }
    }

    public class OCPPIdTagInfo
    {
        public OCPPIdTagInfo() { }

   
        public DateTime? ExpiryDate { get; set; }

        [MaxLength(20)]
        public string ParentIdTag { get; set; }
    
        [Required]
        public AuthorizationStatus Status { get; set; }
    }
}