Files
vyatsu-schedule/app/src/main/java/agzam/vyatsu/di/AppContainer.kt
T

46 lines
1.4 KiB
Kotlin
Raw Normal View History

2026-09-02 23:47:00 +03:00
package agzam.vyatsu.di
import agzam.vyatsu.data.local.AppDatabase
import agzam.vyatsu.data.remote.GroupsParser
import agzam.vyatsu.data.remote.VyatsuHttpClient
import agzam.vyatsu.data.repository.GroupRepositoryImpl
import agzam.vyatsu.data.repository.PreferencesRepositoryImpl
import agzam.vyatsu.data.repository.ScheduleRepositoryImpl
import agzam.vyatsu.domain.repository.GroupRepository
import agzam.vyatsu.domain.repository.PreferencesRepository
import agzam.vyatsu.domain.repository.ScheduleRepository
2026-09-06 12:38:00 +03:00
import agzam.vyatsu.update.AppUpdater
2026-09-02 23:47:00 +03:00
import android.content.Context
import androidx.room.Room
class AppContainer(context: Context) {
private val database: AppDatabase = Room.databaseBuilder(
context.applicationContext,
AppDatabase::class.java,
"vyatsu_schedule.db"
)
.fallbackToDestructiveMigration(dropAllTables = true)
.build()
2026-09-02 23:47:00 +03:00
val groupRepository: GroupRepository by lazy {
GroupRepositoryImpl(
groupDao = database.groupDao(),
)
}
val scheduleRepository: ScheduleRepository by lazy {
ScheduleRepositoryImpl(
scheduleDao = database.scheduleDao(),
groupDao = database.groupDao(),
)
}
val preferencesRepository: PreferencesRepository by lazy {
PreferencesRepositoryImpl(database.preferencesDao())
}
2026-09-06 12:38:00 +03:00
val appUpdater: AppUpdater by lazy {
AppUpdater(context.applicationContext, preferencesRepository)
}
2026-09-02 23:47:00 +03:00
}