using EVCB_OCPP.Packet.Features.Security;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EVCB_OCPP.Packet.Features
{
    public class SecurityProfile : Profile
    {
        public SecurityProfile()
        {
            Name = "Security";

            features.Add(new CertificateSignedFeature());
            features.Add(new DeleteCertificateFeature());
            features.Add(new ExtendedTriggerMessageFeature());
            features.Add(new GetInstalledCertificateIdsFeature());
            features.Add(new GetLogFeature());
            features.Add(new InstallCertificateFeature());
            features.Add(new LogStatusNotificationFeature());
            features.Add(new SecurityEventNotificationFeature());
            features.Add(new SignCertificateFeature());
            features.Add(new SignedFirmwareStatusNotificationFeature());
            features.Add(new SignedUpdateFirmwareFeature());

            actions.Add(Actions.CertificateSigned.ToString());
            actions.Add(Actions.DeleteCertificate.ToString());
            actions.Add(Actions.ExtendedTriggerMessage.ToString());
            actions.Add(Actions.GetInstalledCertificateIds.ToString());
            actions.Add(Actions.GetLog.ToString());
            actions.Add(Actions.InstallCertificate.ToString());
            actions.Add(Actions.LogStatusNotification.ToString());
            actions.Add(Actions.SecurityEventNotification.ToString());
            actions.Add(Actions.SignCertificate.ToString());
            actions.Add(Actions.SignedFirmwareStatusNotification.ToString());
            actions.Add(Actions.SignedUpdateFirmware.ToString());

        }
    }
}
