using Ninject;
using VisionBuilder.UI.Common;
using VisionBuilder.UI.Common.Processing;
using VisionBuilder.UI.Common.Services;
using VisionBuilder.UI.Common.ViewModel.Interfaces.UI;
using VisionBuilder.UI.Windows.Settings;

namespace VisionBuilder.UI.Windows;

public static class ModuleExtensions
{
    public static IKernel UseWindowsServices(this IKernel self)
    {
        self.Bind<ISettingsService>().To<WindowsSettingsService>().InSingletonScope();
        self.Bind<ILoadingService>().To<WindowsLoadingService>().InSingletonScope();
        self.Bind<IRecipeSelectionDialogService>().To<WindowsRecipeSelectionDialogService>().InSingletonScope();
        self.Bind<IImagePreviewService>().To<WindowsImagePreviewService>().InSingletonScope();
        self.Bind<IPasswordInputService>().To<WindowsPasswordInputService>().InSingletonScope();
        self.Bind<WindowsUISettings,ISettings>().To<WindowsUISettings>().InSingletonScope();
        return self;
    }
}