package user

import (
	"go.uber.org/zap"

	userusecase "codeberg.org/mapleopentech/monorepo/cloud/maplepress-backend/internal/usecase/user"
)

// ProvideCreateUserService creates a new CreateUserService for dependency injection
func ProvideCreateUserService(
	validateEmailUC *userusecase.ValidateUserEmailUniqueUseCase,
	createEntityUC *userusecase.CreateUserEntityUseCase,
	saveUserToRepoUC *userusecase.SaveUserToRepoUseCase,
	logger *zap.Logger,
) CreateUserService {
	return NewCreateUserService(
		validateEmailUC,
		createEntityUC,
		saveUserToRepoUC,
		logger,
	)
}

// ProvideGetUserService creates a new GetUserService for dependency injection
func ProvideGetUserService(
	getUC *userusecase.GetUserUseCase,
	logger *zap.Logger,
) GetUserService {
	return NewGetUserService(getUC, logger)
}
