60 lines
1.7 KiB
Kotlin
60 lines
1.7 KiB
Kotlin
package com.novayaplaneta.di
|
|
|
|
import android.content.Context
|
|
import androidx.room.Room
|
|
import com.novayaplaneta.data.local.NewPlanetDatabase
|
|
import com.novayaplaneta.data.local.dao.ChatMessageDao
|
|
import com.novayaplaneta.data.local.dao.RewardDao
|
|
import com.novayaplaneta.data.local.dao.ScheduleDao
|
|
import com.novayaplaneta.data.local.dao.TaskDao
|
|
import com.novayaplaneta.data.local.dao.UserDao
|
|
import dagger.Module
|
|
import dagger.Provides
|
|
import dagger.hilt.InstallIn
|
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
import dagger.hilt.components.SingletonComponent
|
|
import javax.inject.Singleton
|
|
|
|
@Module
|
|
@InstallIn(SingletonComponent::class)
|
|
object DatabaseModule {
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideDatabase(@ApplicationContext context: Context): NewPlanetDatabase {
|
|
return Room.databaseBuilder(
|
|
context,
|
|
NewPlanetDatabase::class.java,
|
|
"newplanet_database"
|
|
)
|
|
.fallbackToDestructiveMigration() // Пересоздает БД при изменении схемы (для разработки)
|
|
.build()
|
|
}
|
|
|
|
@Provides
|
|
fun provideUserDao(database: NewPlanetDatabase): UserDao {
|
|
return database.userDao()
|
|
}
|
|
|
|
@Provides
|
|
fun provideScheduleDao(database: NewPlanetDatabase): ScheduleDao {
|
|
return database.scheduleDao()
|
|
}
|
|
|
|
@Provides
|
|
fun provideTaskDao(database: NewPlanetDatabase): TaskDao {
|
|
return database.taskDao()
|
|
}
|
|
|
|
@Provides
|
|
fun provideRewardDao(database: NewPlanetDatabase): RewardDao {
|
|
return database.rewardDao()
|
|
}
|
|
|
|
@Provides
|
|
fun provideChatMessageDao(database: NewPlanetDatabase): ChatMessageDao {
|
|
return database.chatMessageDao()
|
|
}
|
|
}
|
|
|