﻿using UnityEditor;

namespace JLGames.RocketDriver.Editor.Infra
{
    public static class BuildBundleConfig
    {
        internal static readonly string BundleRoot = "Builds/Bundles";

        public struct TargetInfo
        {
            public BuildTargetGroup BuildTargetGroup;
            public BuildTarget BuildTarget;
            public string BuildOutDir;
            public BuildAssetBundleOptions Options;

            public string BuildOutPath => $"{BundleRoot}/{BuildOutDir}";
        }

        public static TargetInfo Win64Target =>
            new TargetInfo
            {
                BuildTargetGroup = BuildTargetGroup.Standalone,
                BuildTarget = BuildTarget.StandaloneWindows64,
                BuildOutDir = BuildPlaforms.Win64,
            };

        public static TargetInfo WebglTarget =>
            new TargetInfo
            {
                BuildTargetGroup = BuildTargetGroup.WebGL,
                BuildTarget = BuildTarget.WebGL,
                BuildOutDir = BuildPlaforms.Webgl,
            };

        public static TargetInfo AndroidTarget =>
            new TargetInfo
            {
                BuildTargetGroup = BuildTargetGroup.Android,
                BuildTarget = BuildTarget.Android,
                BuildOutDir = BuildPlaforms.Android,
            };


#if UNITY_EDITOR_OSX
        public static TargetInfo OSXTarget =>
            new TargetInfo
            {
                BuildTargetGroup = BuildTargetGroup.Standalone,
                BuildTarget = BuildTarget.StandaloneOSX,
                BuildOutDir = BuildPlaforms.OSX,
            };

        public static TargetInfo IOSTarget =>
            new TargetInfo
            {
                BuildTargetGroup = BuildTargetGroup.iOS,
                BuildTarget = BuildTarget.iOS,
                BuildOutDir = BuildPlaforms.iOS,
            };
    
        public static TargetInfo[] Targets => new[] {Win64Target, WebglTarget, AndroidTarget, OSXTarget, IOSTarget};
#else
        public static TargetInfo[] Targets => new[] {Win64Target, WebglTarget, AndroidTarget};
#endif
    }
}