using System;
using System.Collections.Generic;
using System.Text;
using Wayne.Lib.StateEngine;

namespace SinochemInternetPlusApp.States.BasicMode
{
    static class CONFIGURATION
    {
        // make sure entry point is Init, and exit point is Final
        public static void Config(StateTransitionLookup sl)
        {
            sl.AddTransition<Init, Shared.AuthorizePump>(TransitionType.Init);

            sl.AddTransition<Shared.AuthorizePump, Shared.Fueling>(TransitionType.PumpAuthOk);
            sl.AddTransition<Shared.AuthorizePump, Final>(TransitionType.Timeout);
            sl.AddTransition<Shared.AuthorizePump, Final>(TransitionType.PumpAuthFailed);

            sl.AddTransition<Shared.Fueling, Shared.WaitForPayableTrx>(TransitionType.NozzleReplaced);

            sl.AddTransition<Shared.WaitForPayableTrx, Final>(TransitionType.FuelingDone);
            sl.AddTransition<Shared.WaitForPayableTrx, Final>(TransitionType.Timeout);

            sl.AddTransition<AnyState, Final>(BasicTransitionType.Error);
        }
    }
}