using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace NCWWA6A0SDK
{
    [System.Serializable]
    public class SDKConfig : ScriptableObject
    {

        public string appsFlyerDevKey;

        public string appsFlyerIosAppleAppId;

        public string appKey;

        public string appSecret;

        public string logReportUrl;

        public string maxAppKey;

        public string splashUnitId;

        public string bannerUnitId;

        public string interUnitId;

        public string videoUnitId;

        public string kwaiAppId;

        public List<string> kwaiVideoUnitId = new();

        public List<string> kwaiInterUnitId = new();

        public string bigoAppId;

        public List<string> bigoVideoUnitId = new();

        public List<string> bigoInterUnitId = new();

        public string bigoSplashUnitId;

        public string toponAppId;

        public string toponAppkey;

        public string toponVideoUnitId;

        public string toponInterUnitId;

        public string admobAppId;

        public string admobVideoUnitId;

        public string admobInterUnitId;

        public string admobSplashUnitId;

        public bool isDebug = false;

        public bool isPrintLog = false;

        public bool isUseAdmobSplash = false;

        private static SDKConfig _instance;

        public static SDKConfig Instance
        {
            get
            {
                if (_instance != null) return _instance;
                _instance = AssetUtils.GetScriptableObject<SDKConfig>(typeof(SDKConfig).Name, "Assets/Resources", false, false);
                return _instance;
            }
            set
            {
                _instance = value;
            }
        }

        public static string AppsFlyerDevKey
        {
            get { return Instance.appsFlyerDevKey; }
        }

        public static string AppsFlyerIosAppleAppId
        {
            get { return Instance.appsFlyerIosAppleAppId; }
        }

        public static string AppKey
        {
            get { return Instance.appKey; }
        }

        public static string AppSecret
        {
            get { return Instance.appSecret; }
        }

        public static string LogReportUrl
        {
            get
            {
                if (!Instance.logReportUrl.StartsWith("http"))
                {
                    return "https://" + Instance.logReportUrl.Replace(" ", ""); ;
                }
                return Instance.logReportUrl.Replace(" ", ""); ;
            }
        }

        public static string MaxAppKey
        {
            get { return Instance.maxAppKey; }
        }

        public static string SplashUnitID
        {
            get { return Instance.splashUnitId; }
        }

        public static string BannerUnitId
        {
            get { return Instance.bannerUnitId; }
        }

        public static string InterUnitId
        {
            get { return Instance.interUnitId; }
        }

        public static string VideoUnitId
        {
            get { return Instance.videoUnitId; }
        }

        public static string KwaiAppId
        {
            get => Instance.kwaiAppId;
            set => Instance.kwaiAppId = value;
        }

        public static List<string> KwaiVideoUnitId
        {
            get => Instance.kwaiVideoUnitId;
            set => Instance.kwaiVideoUnitId = value;
        }

        public static List<string> KwaiInterUnitId
        {
            get => Instance.kwaiInterUnitId;
            set => Instance.kwaiInterUnitId = value;
        }

        public static string BigoAppId
        {
            get => Instance.bigoAppId;
            set => Instance.bigoAppId = value;
        }

        public static List<string> BigoVideoUnitId
        {
            get => Instance.bigoVideoUnitId;
            set => Instance.bigoVideoUnitId = value;
        }

        public static List<string> BigoInterUnitId
        {
            get => Instance.bigoInterUnitId;
            set => Instance.bigoInterUnitId = value;
        }

        public static string BigoSplashUnitId
        {
            get => Instance.bigoSplashUnitId;
            set => Instance.bigoSplashUnitId = value;
        }

        public static string ToponAppId
        {
            get { return Instance.toponAppId; }
        }

        public static string ToponAppkey
        {
            get { return Instance.toponAppkey; }
        }

        public static string ToponVideoUnitId
        {
            get { return Instance.toponVideoUnitId; }
        }

        public static string ToponInterUnitId
        {
            get { return Instance.toponInterUnitId; }
        }

        public static string AdmobAppId
        {
            get => Instance.admobAppId;
            set => Instance.admobAppId = value;
        }

        public static string AdmobVideoUnitId
        {
            get => Instance.admobVideoUnitId;
            set => Instance.admobVideoUnitId = value;
        }

        public static string AdmobSplashUnitId
        {
            get => Instance.admobSplashUnitId;
            set => Instance.admobSplashUnitId = value;
        }

        public static string AdmobInterUnitId
        {
            get => Instance.admobInterUnitId;
            set => Instance.admobInterUnitId = value;
        }

        public static bool IsDebug => Instance.isDebug;

        public static bool IsPrintLog => Instance.isPrintLog;

        public static bool IsUseAdmobSplash => Instance.isUseAdmobSplash;

    }
}

