using System;
using UnityEngine;

namespace BilibiliMiniGame
{
    [Serializable]
    public sealed class CheckSceneResult
    {
        [SerializeField] private bool isExist;
        [SerializeField] private string errMsg;

        public bool IsExist => isExist;
        public string ErrorMessage => errMsg;

        internal CheckSceneResult(bool isExist, string errorMessage)
        {
            this.isExist = isExist;
            errMsg = errorMessage;
        }
    }

    [Serializable]
    public sealed class NavigateToSceneResult
    {
        [SerializeField] private string errMsg;

        public string ErrorMessage => errMsg;

        internal NavigateToSceneResult(string errorMessage)
        {
            errMsg = errorMessage;
        }
    }

    [Serializable]
    public sealed class AddShortcutResult
    {
        [SerializeField] private string errMsg;

        public string ErrorMessage => errMsg;

        internal AddShortcutResult(string errorMessage)
        {
            errMsg = errorMessage;
        }
    }

    [Serializable]
    public sealed class CheckShortcutResult
    {
        [SerializeField] private bool isExist;
        [SerializeField] private string errMsg;

        public bool IsExist => isExist;
        public string ErrorMessage => errMsg;

        internal CheckShortcutResult(bool isExist, string errorMessage)
        {
            this.isExist = isExist;
            errMsg = errorMessage;
        }
    }

    [Serializable]
    public sealed class RequestRechargeResult
    {
        [SerializeField] private int code;
        [SerializeField] private string msg;

        public int Code => code;
        public string Msg => msg;

        internal RequestRechargeResult(int code, string msg)
        {
            this.code = code;
            this.msg = msg;
        }
    }
}
