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
|
2026-09-19 19:37:56 +03:00
|
|
|
import agzam.vyatsu.data.repository.TeacherRepositoryImpl
|
|
|
|
|
import agzam.vyatsu.data.repository.TeacherScheduleRepositoryImpl
|
2026-09-02 23:47:00 +03:00
|
|
|
import agzam.vyatsu.domain.repository.GroupRepository
|
|
|
|
|
import agzam.vyatsu.domain.repository.PreferencesRepository
|
|
|
|
|
import agzam.vyatsu.domain.repository.ScheduleRepository
|
2026-09-19 19:37:56 +03:00
|
|
|
import agzam.vyatsu.domain.repository.TeacherRepository
|
|
|
|
|
import agzam.vyatsu.domain.repository.TeacherScheduleRepository
|
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"
|
2026-09-03 19:41:26 +03:00
|
|
|
)
|
|
|
|
|
.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
|
|
|
|
2026-09-19 19:37:56 +03:00
|
|
|
val teacherRepository: TeacherRepository by lazy {
|
|
|
|
|
TeacherRepositoryImpl(teacherDao = database.teacherDao())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
val teacherScheduleRepository: TeacherScheduleRepository by lazy {
|
|
|
|
|
TeacherScheduleRepositoryImpl(
|
|
|
|
|
scheduleDao = database.teacherScheduleDao(),
|
|
|
|
|
teacherDao = database.teacherDao()
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
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
|
|
|
}
|