using RudderSdk.Core.Abstractions;

namespace RudderSdk.Unity
{
  internal class UnityPlanStateStore : IPlanStateStore
  {
    private const string KEY = "liveops_plan_runner_state";

    private readonly IUnityKeyValueStore _store;

    public UnityPlanStateStore(IUnityKeyValueStore store)
    {
      _store = store;
    }

    public string State
    {
      get => _store.GetString(KEY);
      set
      {
        if (string.IsNullOrEmpty(value))
          _store.DeleteKey(KEY);
        else
          _store.SetString(KEY, value);

        _store.Save();
      }
    }
  }
}
