using Bimix.UI.Mobile.Services;
using Bimix.UI.Shared.Extensions;
using Bimix.UI.Shared.Interfaces;
using Microsoft.Extensions.Logging;
using MudBlazor.Services;
using ZXing.Net.Maui.Controls;

namespace Bimix.UI.Mobile;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .UseBarcodeReader()
            .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); });

        builder.Services.AddMauiBlazorWebView();
        builder.Services.AddMudServices();

        if (DeviceInfo.Platform == DevicePlatform.iOS)
        {
            builder.Services.AddSingleton<IScannerService, ScannerService>();
        }
        else
        {
            builder.Services.AddSingleton<IScannerService, NoOpScannerService>();
        }

        var baseUrl = GetApiBaseUrl();
        builder.Services.AddSharedServices(baseUrl);
        

#if DEBUG
        builder.Services.AddBlazorWebViewDeveloperTools();
        builder.Logging.AddDebug();
#endif
        return builder.Build();
    }
    
    private static string GetApiBaseUrl()
    {
#if IOS
        // iOS symulator - użyj swojego IP
        return "http://192.168.13.44:7142/"; // Zastąp swoim IP
#else
        return "https://localhost:7142/";
#endif
    }

}