/**************************************************** 
 文件：RemoteServicesWithAuth.cs
 作者：xosmo_
 邮箱：
 日期：2025/3/31 14:39:5
 功能：
*****************************************************/

using YooAsset;
using System.Collections;
using Stary.Evo;
using UnityEngine.Networking;

public class RemoteServicesWithAuth  : IRemoteServices
{
    private readonly string _defaultHostServer;
    private readonly string _fallbackHostServer;
    private string _authToken;
    private string _authServiceUrl;
    
    public string CurrentToken { get; private set; }

    public RemoteServicesWithAuth(string defaultHostServer, 
        string fallbackHostServer,
        string authToken,
        string authServiceUrl) 
    {
        _defaultHostServer = defaultHostServer;
        _fallbackHostServer = fallbackHostServer;
        _authToken = authToken;
        _authServiceUrl = authServiceUrl;
        RefreshToken();
    }

    private void RefreshToken()
    {
        // 这里实现具体的token刷新逻辑
        CurrentToken = _authToken; // 简单示例直接使用初始token
        // 实际项目应该通过authServiceUrl获取新token
    }

    string IRemoteServices.GetRemoteMainURL(string fileName)
    {
        // 在原始URL后附加鉴权参数
        return $"{_defaultHostServer}/{fileName}?token={CurrentToken}";
    }

    public string GetRemoteFallbackURL(string fileName)
    {
        return $"{_fallbackHostServer}/{fileName}?token={CurrentToken}";
    }

    // UnityWebRequest CreateRequest(string url)
    // {
    //     var request = base.CreateRequest(url);
    //     request.SetRequestHeader("Authorization", $"Bearer {CurrentToken}");
    //     return request;
    // }
}
