using System;

namespace MJGameSDK
{
    public class MJGameUser
    {
        private readonly MJGameHttpClient _http;

        public MJGameUser(MJGameHttpClient http)
        {
            _http = http;
        }

        public void GetProfile(Action<MJGameUserProfile> onSuccess, Action<MJGameResult> onError)
        {
            _http.Get<UserProfileResponse>("user/profile",
                response => onSuccess?.Invoke(response.data.profile),
                onError);
        }
    }

    [Serializable]
    public class MJGameUserProfile
    {
        public int id;
        public string steam_id;
        public string nickname;
        public string avatar_url;
        public bool privacy_accepted;
        public string last_login_at;
        public int total_orders;
    }

    [Serializable]
    public class UserProfileResponse : MJGameResponse
    {
        public UserProfileData data;
    }

    [Serializable]
    public class UserProfileData
    {
        public MJGameUserProfile profile;
    }
}
