// codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/service/blockedemail/provider.go
package blockedemail

import (
	"go.uber.org/zap"

	"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/config"
	uc_blockedemail "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/blockedemail"
	uc_user "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/user"
)

func ProvideCreateBlockedEmailService(
	cfg *config.Configuration,
	logger *zap.Logger,
	createBlockedEmailUseCase uc_blockedemail.CreateBlockedEmailUseCase,
	userGetByEmailUseCase uc_user.UserGetByEmailUseCase,
) CreateBlockedEmailService {
	return NewCreateBlockedEmailService(cfg, logger, createBlockedEmailUseCase, userGetByEmailUseCase)
}

func ProvideListBlockedEmailsService(
	cfg *config.Configuration,
	logger *zap.Logger,
	listBlockedEmailsUseCase uc_blockedemail.ListBlockedEmailsUseCase,
) ListBlockedEmailsService {
	return NewListBlockedEmailsService(cfg, logger, listBlockedEmailsUseCase)
}

func ProvideDeleteBlockedEmailService(
	cfg *config.Configuration,
	logger *zap.Logger,
	deleteBlockedEmailUseCase uc_blockedemail.DeleteBlockedEmailUseCase,
) DeleteBlockedEmailService {
	return NewDeleteBlockedEmailService(cfg, logger, deleteBlockedEmailUseCase)
}
