using Inspectron.Epson.PrintServer.Printers.Utils;
using Inspectron.Epson.Templates.Configuration;

namespace Inspectron.Epson.Templates;

public class TemplateReceiptConverterFactory : IReceiptConverterFactory
{
    private readonly TemplateEngine _engine;
    private readonly PrinterProfileRegistry _profileRegistry;

    public TemplateReceiptConverterFactory(TemplateEngine engine, PrinterProfileRegistry profileRegistry)
    {
        _engine = engine ?? throw new ArgumentNullException(nameof(engine));
        _profileRegistry = profileRegistry ?? throw new ArgumentNullException(nameof(profileRegistry));
    }

    public IReceiptConverter Create(int receiptType, byte printerId)
    {
        var profile = _profileRegistry.GetProfile(printerId);
        return new TemplateReceiptConverter(_engine, receiptType, profile);
    }
}
