using DocumentOperator.Application.Common.Interfaces;
using DocumentOperator.Infrastructure.Services.PdfProcessing;
using DocumentOperator.Infrastructure.Services.QrCodeProcessing;
using Microsoft.Extensions.DependencyInjection;

namespace DocumentOperator.Infrastructure;

/// <summary>
/// Dependency Injection configuration for Infrastructure Layer
/// </summary>
public static class DependencyInjection
{
    /// <summary>
    /// Registers Infrastructure Layer services (DevExpress, File Storage, etc.)
    /// </summary>
    public static IServiceCollection AddInfrastructure(this IServiceCollection services)
    {
        // PDF Processing Service (DevExpress)
        services.AddScoped<IPdfProcessor, DevExpressPdfProcessor>();

        // Swiss QR Code Processing Service (DevExpress + Codecrete + ZXing)
        services.AddScoped<ISwissQrCodeProcessor, DevExpressSwissQrCodeProcessor>();

        return services;
    }
}
