using EVCB_OCPP.Packet20.DataTypes;
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 RequestStartTransactionRequest
    {
        /// <summary>
        /// Number of the EVSE on which to start the
        ///transaction.EvseId SHALL be > 0
        /// </summary>
        public int? EvseId { set; get; }

        /// <summary>
        /// Id given by the server to this start request. The
        /// Charging Station might return this in the
        ///  TransactionEventRequest, letting the server know which
        ///transaction was started for this request.Use to start a
        ///transaction.
        /// </summary>
        [Required]
        public int RemoteStartId { set; get; }

        /// <summary>
        /// The identifier that the Charging Station must
        ///use to start a transaction.
        /// </summary>
        [Required]
        public IdTokenType IdToken { set; get; }

        /// <summary>
        /// Charging Profile to be used by the Charging
        ///Station for the requested transaction.
        ///ChargingProfilePurpose MUST be set to TxProfile
        /// </summary>
        public ChargingProfileType ChargingProfile { set; get; }

        /// <summary>
        /// The group identifier that the Charging Station
        /// </summary>
        public IdTokenType GroupIdToken { set; get; }
    }
}
