78 lines
3.2 KiB
Kotlin
78 lines
3.2 KiB
Kotlin
package app.closer.di
|
|
|
|
import app.closer.core.billing.EntitlementChecker
|
|
import app.closer.core.billing.FirestoreEntitlementChecker
|
|
import app.closer.data.local.SettingsDataStore
|
|
import app.closer.data.repository.BucketListRepositoryImpl
|
|
import app.closer.data.repository.CoupleRepositoryImpl
|
|
import app.closer.data.repository.DateMatchRepositoryImpl
|
|
import app.closer.data.repository.DatePlanRepositoryImpl
|
|
import app.closer.domain.repository.BucketListRepository
|
|
import app.closer.domain.repository.DateMatchRepository
|
|
import app.closer.domain.repository.DatePlanRepository
|
|
import app.closer.data.repository.QuestionSessionRepositoryImpl
|
|
import app.closer.data.repository.FirebaseAuthRepositoryImpl
|
|
import app.closer.data.repository.InviteRepositoryImpl
|
|
import app.closer.data.repository.SharedPreferencesLocalAnswerRepository
|
|
import app.closer.data.repository.RoomQuestionRepository
|
|
import app.closer.data.repository.QuestionThreadRepositoryImpl
|
|
import app.closer.data.repository.UserRepositoryImpl
|
|
import app.closer.domain.repository.AuthRepository
|
|
import app.closer.domain.repository.CoupleRepository
|
|
import app.closer.domain.repository.QuestionSessionRepository
|
|
import app.closer.domain.repository.InviteRepository
|
|
import app.closer.domain.repository.LocalAnswerRepository
|
|
import app.closer.domain.repository.QuestionRepository
|
|
import app.closer.domain.repository.QuestionThreadRepository
|
|
import app.closer.domain.repository.SettingsRepository
|
|
import app.closer.domain.repository.UserRepository
|
|
import dagger.Binds
|
|
import dagger.Module
|
|
import dagger.hilt.InstallIn
|
|
import dagger.hilt.components.SingletonComponent
|
|
import javax.inject.Singleton
|
|
|
|
@Module
|
|
@InstallIn(SingletonComponent::class)
|
|
abstract class RepositoryModule {
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindAuthRepository(impl: FirebaseAuthRepositoryImpl): AuthRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindUserRepository(impl: UserRepositoryImpl): UserRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindInviteRepository(impl: InviteRepositoryImpl): InviteRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindCoupleRepository(impl: CoupleRepositoryImpl): CoupleRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindDateMatchRepository(impl: DateMatchRepositoryImpl): DateMatchRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindDatePlanRepository(impl: DatePlanRepositoryImpl): DatePlanRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindBucketListRepository(impl: BucketListRepositoryImpl): BucketListRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindQuestionThreadRepository(impl: QuestionThreadRepositoryImpl): QuestionThreadRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindQuestionRepository(impl: RoomQuestionRepository): QuestionRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindLocalAnswerRepository(impl: SharedPreferencesLocalAnswerRepository): LocalAnswerRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindEntitlementChecker(impl: FirestoreEntitlementChecker): EntitlementChecker
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindSettingsRepository(impl: SettingsDataStore): SettingsRepository
|
|
|
|
@Binds @Singleton
|
|
abstract fun bindQuestionSessionRepository(impl: QuestionSessionRepositoryImpl): QuestionSessionRepository
|
|
}
|