/*           INFINITY CODE          */
/*     https://infinity-code.com    */

using UnityEditor;
using UnityEngine;

namespace InfinityCode.TreeTools.Editors
{
    public static class Links
    {
        public const string assetStore = "https://assetstore.unity.com/packages/tools/terrain/tree-tool-221137";
        public const string changelog = "https://infinity-code.com/products_update/get-changelog.php?asset=Tree%20Tool&from=1.0";
        public const string discord = "https://discord.gg/2XRWwPgZK4";
        public const string documentation = "https://infinity-code.com/documentation/tree-tool.html";
        public const string forum = "https://forum.infinity-code.com";
        public const string homepage = "https://infinity-code.com/assets/tree-tool";
        public const string reviews = assetStore + "/reviews";
        public const string support = "mailto:support@infinity-code.com?subject=Tree%20Tool";
        public const string youtube = "https://www.youtube.com/playlist?list=PL2QU1uhBMew_mR83EYhex5q3uZaMTwg1S"; // TODO Fix this

        public static void Open(string url)
        {
            Application.OpenURL(url);
        }

        public static void OpenAssetStore()
        {
            Open(assetStore);
        }

        public static void OpenChangelog()
        {
            Open(changelog);
        }

        public static void OpenDiscord()
        {
            Open(discord);
        }

        public static void OpenDocumentation()
        {
            OpenDocumentation(null);
        }

        public static void OpenDocumentation(string anchor)
        {
            string url = documentation;
            if (!string.IsNullOrEmpty(anchor)) url += "#" + anchor;
            Open(url);
        }

        public static void OpenForum()
        {
            Open(forum);
        }

        [MenuItem(MenuItems.MENU_PATH + "Homepage", false, MenuOrder.HOMEPAGE)]
        public static void OpenHomepage()
        {
            Open(homepage);
        }

        [MenuItem(MenuItems.MENU_PATH + "Documentation", false, MenuOrder.DOCUMENTATION)]
        public static void OpenLocalDocumentation()
        {
            string url = Utils.assetFolder + "Documentation/Content/Documentation-Content.html";
            Application.OpenURL(url);
        }

        [MenuItem(MenuItems.MENU_PATH + "Rate And Review", false, MenuOrder.RATE_AND_REVIEW)]
        public static void OpenReviews()
        {
            Open(reviews);
        }

        public static void OpenSupport()
        {
            Open(support);
        }

        public static void OpenYouTube()
        {
            Open(youtube);
        }
    }
}