namespace EVCB_OCPP.Packet20.DataTypes.EnumTypes
{
    public enum ReasonEnumType
    {
        /// <summary>
        ///  The transaction was stopped because of the authorization status in the response to a
        /// transactionEventRequest.
        /// </summary>
        DeAuthorized = 1,
        /// <summary>
        ///  Emergency stop button was used.
        /// </summary>
        EmergencyStop,
        /// <summary>
        ///  EV charging session reached a locally enforced maximum energy transfer limit
        /// </summary>
        EnergyLimitReached,
        /// <summary>
        /// Disconnecting of cable, vehicle moved away from inductive charge unit.
        /// </summary>
        EVDisconnected,
        /// <summary>
        ///  A GroundFault has occurred
        /// </summary>
        GroundFault,
        /// <summary>
        ///  A Reset(Immediate) command was received.
        /// </summary>
        ImmediateReset,
        /// <summary>
        /// Stopped locally on request of the EV Driver at the Charging Station. This is a regular termination of a
        /// transaction. Examples: presenting an IdToken tag, pressing a button to stop.
        /// </summary>
        Local,
        /// <summary>
        ///  A local credit limit enforced through the Charging Station has been exceeded.
        /// </summary>
        LocalOutOfCredit,
        /// <summary>
        ///  Any other reason.
        /// </summary>
        Other,
        /// <summary>
        ///  A larger than intended electric current has occurred
        /// </summary>
        OvercurrentFault,
        /// <summary>
        /// Complete loss of power.
        /// </summary>
        PowerLoss,
        /// <summary>
        /// Quality of power too low, e.g. voltage too low/high, phase imbalance, etc.
        /// </summary>
        PowerQuality,
        /// <summary>
        ///  A locally initiated reset/reboot occurred. (for instance watchdog kicked in)
        /// </summary>
        Reboot,
        /// <summary>
        ///  Stopped remotely on request of the CSMS. This is a regular termination of a transaction. Examples:
        ///  termination using a smartphone app, exceeding a(non local) prepaid credit.
        /// </summary>
        Remote,
        /// <summary>
        ///  Electric vehicle has reported reaching a locally enforced maximum battery State of Charge (SOC)
        /// </summary>
        SOCLimitReached,
        /// <summary>
        ///  The transaction was stopped by the EV
        /// </summary>
        StoppedByEV,
        /// <summary>
        ///  EV charging session reached a locally enforced time limit
        /// </summary>
        TimeLimitReached,
        /// <summary>
        ///  EV not connected within timeout
        /// </summary>
        Timeout
    }
}
