﻿using UnityEditor;
using UnityEngine;

namespace JLGames.RocketDriver.Editor.Infra
{
    public static class ImportPackageUtil
    {
        public static void ImportPackage(ImportPackageItem packageItem, bool log = true)
        {
            if (null == packageItem) return;
            AssetDatabase.ImportPackage(packageItem.PackagePath, packageItem.Interactive);
            if (log) Debug.Log($"Import:[{packageItem.PackagePath}]");
        }

        public static void ImportPackages(ImportPackageItem[] packageItems, bool log = true)
        {
            if (null == packageItems || packageItems.Length == 0) return;
            foreach (var item in packageItems)
            {
                ImportPackage(item, log);
            }
        }

        public static void ImportPackages(ImportSettings settings, bool all = false, bool log = true)
        {
            ImportPackages(settings.Settings, all, log);
        }

        public static void ImportPackages(ImportSettings settings, string itemName, bool log = true)
        {
            ImportPackages(settings.Settings, itemName, log);
        }

        public static void ImportPackages(ImportPackageSettings settings, bool all = false, bool log = true)
        {
            if (all)
                ImportPackages(settings.Packages, log);
            else
                ImportPackage(settings.MainPackage, log);
        }

        public static void ImportPackages(ImportPackageSettings settings, string itemName, bool log = true)
        {
            ImportPackage(settings.GetPackageItem(itemName), log);
        }
    }
}