package notifications

import (
	"github.com/tech/sendico/pkg/db/account"
	"github.com/tech/sendico/pkg/db/invitation"
	micp "github.com/tech/sendico/pkg/messaging/internal/notifications/invitation"
	mih "github.com/tech/sendico/pkg/messaging/notifications/invitation/handler"
	np "github.com/tech/sendico/pkg/messaging/notifications/processor"
	"github.com/tech/sendico/pkg/mlogger"
	nm "github.com/tech/sendico/pkg/model/notification"
)

func NewInvitationMessageProcessor(
	logger mlogger.Logger,
	handler mih.InvitationHandler,
	db invitation.DB,
	adb account.DB,
	action nm.NotificationAction,
) np.EnvelopeProcessor {
	return micp.NewInvitationMessageProcessor(logger, handler, db, adb, action)
}

func NewInvitationCreatedProcessor(
	logger mlogger.Logger,
	handler mih.InvitationHandler,
	db invitation.DB,
	adb account.DB,
) np.EnvelopeProcessor {
	return NewInvitationMessageProcessor(logger, handler, db, adb, nm.NACreated)
}
