#if UNITY_EDITOR

using System;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

namespace FishNet.Editing.PrefabCollectionGenerator
{
	internal sealed class PrefabCollectionGeneratorConfigurationsz
	{
		#region Types.
		public enum SearchScopeType : byte
		{
			EntireProject = 0,
			SpecificFolders = 1
		}
		#endregion

		//#region Public.
		///// <summary>
		///// True if prefab generation is enabled.
		///// </summary>
		//public bool Enabled;
		///// <summary>
		///// True to rebuild all prefabs during any change. False to only check changed prefabs.
		///// </summary>
		//public bool FullRebuild;
		///// <summary>
		///// True to log results to console.
		///// </summary>
		//public bool LogToConsole;
		///// <summary>
		///// True to automatically save assets when default prefabs change.
		///// </summary>
		//public bool SaveChanges;
		///// <summary>
		///// Path where prefabs file is created.
		///// </summary>
		//public string AssetPath;
		///// <summary>
		///// How to search for files.
		///// </summary>
		//public SearchScopeType SearchScope = SearchScopeType.EntireProject;
		///// <summary>
		///// Folders to exclude when using SearchScopeType.SpecificFolders.
		///// </summary>
		//public List<string> ExcludedFolders = new List<string>();
		///// <summary>
		///// Folders to include when using SearchScopeType.SpecificFolders.
		///// </summary>
		//public List<string> IncludedFolders = new List<string>();
		//#endregion

		//#region Private.
		///// <summary>
		///// Library folder for project. Presumably where files are saved, but this is changing. This is going away in favor of FN config. //fnconfig.
		///// </summary>
		//private static string DirectoryPath => Path.Combine(Path.GetDirectoryName(Application.dataPath), "Library");
		///// <summary>
		///// Full path of settings file. This is going away in favor of FN config. //fnconfig.
		///// </summary>
		//private static string FilePath => Path.Combine(DirectoryPath, $"FishNet.Runtime.Editor.PrefabObjects.Generation.{nameof(Settings)}.json");
  //      #endregion

  //      public Settings()
		//{
		//	Enabled = true;
		//	LogToConsole = true;
		//	FullRebuild = false;
		//	SaveChanges = true;
		//	SearchScope = SearchScopeType.EntireProject;

		//	AssetPath = $"Assets{Path.DirectorySeparatorChar}FishNet{Path.DirectorySeparatorChar}Runtime{Path.DirectorySeparatorChar}DefaultPrefabObjects.asset";
		//}

		//public void Save()
		//{
		//	//Create save folder if it doesn't exist. This is going away in favor of FN config. //fnconfig.
		//	if (!Directory.Exists(DirectoryPath))
		//		Directory.CreateDirectory(DirectoryPath);

		//	File.WriteAllText(FilePath, JsonUtility.ToJson(this));
		//}

		//public static Settings Load()
		//{
		//	try
		//	{
		//		if (File.Exists(FilePath))
		//			return JsonUtility.FromJson<Settings>(File.ReadAllText(FilePath));
		//	}
		//	catch (Exception ex)
		//	{
		//		Debug.LogError($"An error has occurred when loading the prefab collection generator settings: {ex}");
		//	}

		//	return new Settings();
		//}
	}
}

#endif