package notifications

import (
	messaging "github.com/tech/sendico/pkg/messaging/envelope"
	pinternal "github.com/tech/sendico/pkg/messaging/internal/notifications/paymentgateway"
	ch "github.com/tech/sendico/pkg/messaging/notifications/paymentgateway/handler"
	np "github.com/tech/sendico/pkg/messaging/notifications/processor"
	"github.com/tech/sendico/pkg/mlogger"
	"github.com/tech/sendico/pkg/model"
)

func PaymentGatewayIntent(sender string, intent *model.PaymentGatewayIntent) messaging.Envelope {
	return pinternal.NewPaymentGatewayIntentEnvelope(sender, intent)
}

func PaymentGatewayExecution(sender string, exec *model.PaymentGatewayExecution) messaging.Envelope {
	return pinternal.NewPaymentGatewayExecutionEnvelope(sender, exec)
}

func NewPaymentGatewayIntentProcessor(logger mlogger.Logger, handler ch.PaymentGatewayIntentHandler) np.EnvelopeProcessor {
	return pinternal.NewPaymentGatewayIntentProcessor(logger, handler)
}

func NewPaymentGatewayExecutionProcessor(logger mlogger.Logger, handler ch.PaymentGatewayExecutionHandler) np.EnvelopeProcessor {
	return pinternal.NewPaymentGatewayExecutionProcessor(logger, handler)
}
