Files
forkmessager/client-mobile/chats/di/LocalDatabaseModule.kt
Халимов Рустам 9daa786cfb Заготовка
2026-05-07 23:27:37 +03:00

51 lines
1.5 KiB
Kotlin

package chats.di
import android.content.Context
import androidx.room.Room
import androidx.work.WorkManager
import chats.data.local.dao.ChatDao
import chats.data.local.dao.MessageDao
import chats.data.local.dao.UserProfileDao
import chats.data.local.database.AppDatabase
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
/**
* Hilt модуль для предоставления зависимостей локальной базы данных и WorkManager
*/
@Module
@InstallIn(SingletonComponent::class)
object LocalDatabaseModule {
@Provides
@Singleton
fun provideAppDatabase(@ApplicationContext context: Context): AppDatabase {
return Room.databaseBuilder(
context,
AppDatabase::class.java,
AppDatabase.DATABASE_NAME
)
.fallbackToDestructiveMigration()
.build()
}
@Provides
fun provideMessageDao(database: AppDatabase): MessageDao = database.messageDao()
@Provides
fun provideChatDao(database: AppDatabase): ChatDao = database.chatDao()
@Provides
fun provideUserProfileDao(database: AppDatabase): UserProfileDao = database.userProfileDao()
@Provides
@Singleton
fun provideWorkManager(@ApplicationContext context: Context): WorkManager {
return WorkManager.getInstance(context)
}
}