#if UNITY_EDITOR
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

namespace Isotopic
{
    [CreateAssetMenu(fileName = "Isotopic Publishing Config", menuName = "ScriptableObjects/Isotopic/Publishing Config")]
    public class PublishingConfig : ScriptableObject
    {
        public IsotopicAccountCredentials AccountCredentials;
        public IsotopicGameCredentials GameCredentials;

        private static PublishingConfig _Instance;
        public static PublishingConfig GetInstance()
        {
            if (_Instance != null) return _Instance;
            var guid = AssetDatabase.FindAssets($"t:{nameof(PublishingConfig)}")[0];
            string assetPath = AssetDatabase.GUIDToAssetPath(guid);

            _Instance = AssetDatabase.LoadAssetAtPath(assetPath, typeof(PublishingConfig)) as PublishingConfig;
            return _Instance;
        }
    }

    [System.Serializable]
    public class IsotopicAccountCredentials
    {
        public string AccountUsername;
        public Password AccountPassword;
    }

    [System.Serializable]
    public class Password
    {
        public string AccountPassword;
    }

    [System.Serializable]
    public class IsotopicGameCredentials
    {
        [Tooltip("Find this in \"game\" field of URL in editing page or store page of your app on Isotopic.")]
        public string AppID;
    }
}
#endif