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() } }