45 lines
1.7 KiB
Kotlin

package com.longnh15.heimdall.di
import com.longnh15.heimdall.MainViewModel
import com.longnh15.heimdall.data.preferences.PreferenceDataSource
import com.longnh15.heimdall.data.repository.AuthRepositoryImpl
import com.longnh15.heimdall.data.repository.CredentialRepositoryImpl
import com.longnh15.heimdall.data.vault.VaultSessionManagerImpl
import com.longnh15.heimdall.domain.repository.AuthRepository
import com.longnh15.heimdall.domain.repository.CredentialRepository
import com.longnh15.heimdall.domain.vault.VaultSessionManager
import com.longnh15.heimdall.ui.auth.login.LoginViewModel
import com.longnh15.heimdall.ui.onboarding.OnboardingViewModel
import com.longnh15.heimdall.ui.auth.register.RegisterViewModel
import com.longnh15.heimdall.ui.vault.VaultViewModel
import com.longnh15.heimdall.ui.vault.edit.AddEditVaultViewModel
import org.koin.dsl.bind
import org.koin.dsl.module
import org.koin.plugin.module.dsl.single
import org.koin.plugin.module.dsl.viewModel
//@Module
//class AppModule {
// @Single
// fun provideVaultSessionManager(): VaultSessionManager = VaultSessionManagerImpl()
// @Single
// fun bindCredentialRepository(
// localDataSource: LocalDataSource
// ): CredentialRepository = CredentialRepositoryImpl(localDataSource)
//}
val appModule = module {
single<VaultSessionManagerImpl>() bind VaultSessionManager::class
single<CredentialRepositoryImpl>() bind CredentialRepository::class
single<AuthRepositoryImpl>() bind AuthRepository::class
single<PreferenceDataSource>()
viewModel<MainViewModel>()
viewModel<OnboardingViewModel>()
viewModel<VaultViewModel>()
viewModel<AddEditVaultViewModel>()
viewModel<LoginViewModel>()
viewModel<RegisterViewModel>()
}