package tenant

import (
	"go.uber.org/zap"

	tenantusecase "codeberg.org/mapleopentech/monorepo/cloud/maplepress-backend/internal/usecase/tenant"
)

// ProvideCreateTenantService creates a new CreateTenantService for dependency injection
func ProvideCreateTenantService(
	validateSlugUC *tenantusecase.ValidateTenantSlugUniqueUseCase,
	createEntityUC *tenantusecase.CreateTenantEntityUseCase,
	saveTenantToRepoUC *tenantusecase.SaveTenantToRepoUseCase,
	logger *zap.Logger,
) CreateTenantService {
	return NewCreateTenantService(
		validateSlugUC,
		createEntityUC,
		saveTenantToRepoUC,
		logger,
	)
}

// ProvideGetTenantService creates a new GetTenantService for dependency injection
func ProvideGetTenantService(
	getUC *tenantusecase.GetTenantUseCase,
	logger *zap.Logger,
) GetTenantService {
	return NewGetTenantService(getUC, logger)
}
