﻿using UnityEditor.Build;
using UnityEditor.Build.Reporting;

namespace BansheeGz.BGDatabase.Editor
{
    /// <summary>
    /// If database asset was saved with JSON format before building and it was switched to binary format
    /// during build process, switch it back to JSON format
    /// </summary>
    public class BGDatabaseSwitchFormatOnPostBuild : IPostprocessBuildWithReport
    {
        public int callbackOrder => 0;

        public void OnPostprocessBuild(BuildReport report)
        {
            if (!BGRepo.Ok || BGDatabaseSwitchFormatOnPreBuild.OriginalFormat == null) return;
            var originalFormat = BGDatabaseSwitchFormatOnPreBuild.OriginalFormat.Value;
            BGDatabaseSwitchFormatOnPreBuild.OriginalFormat = null;
            var addon = BGRepo.I.Addons.Get<BGAddonSettings>();
            if (addon?.Format != BGAddonSettings.FormatEnum.Binary) return;
            addon.Format = originalFormat;
            BGRepoSaver.SaveAndMarkAsSaved();
        }
    }
}