package inviteemail

import (
	"go.uber.org/zap"

	"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/config"
	dom_user "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/domain/user"
	"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/repo/inviteemailratelimit"
	"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/pkg/emailer/mailgun"
)

// ProvideSendInviteEmailService provides the send invite email service for Wire DI
func ProvideSendInviteEmailService(
	cfg *config.Config,
	logger *zap.Logger,
	userRepo dom_user.Repository,
	rateLimitRepo inviteemailratelimit.Repository,
	emailer mailgun.Emailer,
) SendInviteEmailService {
	return NewSendInviteEmailService(cfg, logger, userRepo, rateLimitRepo, emailer)
}
