using UnityEngine;

namespace BilibiliMiniGame
{
    [AddComponentMenu("Bilibili Mini Game/Bilibili Mini Game SDK")]
    [DisallowMultipleComponent]
    public sealed partial class BilibiliMiniGameSdk : MonoBehaviour
    {
        private const float DefaultTimeoutSeconds = 10f;

        [SerializeField, Min(1f)] private float requestTimeoutSeconds = DefaultTimeoutSeconds;

        public void BL_CancelAllRequests()
        {
            BilibiliMiniGameBridge.BL_CancelOwnerRequests(this);
        }

        internal float BL_ResolveTimeout()
        {
            return requestTimeoutSeconds > 0f ? requestTimeoutSeconds : DefaultTimeoutSeconds;
        }

        private void OnDestroy()
        {
            BL_CancelAllRequests();
        }
    }
}
