fix: FOREIGN KEY constraint failed

This commit is contained in:
2026-09-03 20:41:03 +03:00
parent ebe1c3c4a3
commit 72e63addb2
2 changed files with 3 additions and 6 deletions
@@ -42,7 +42,7 @@ interface ScheduleDao {
suspend fun trim(groupId: String, keep: Int) suspend fun trim(groupId: String, keep: Int)
@Insert(onConflict = OnConflictStrategy.REPLACE) @Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertDays(days: List<DayEntity>) suspend fun insertDays(days: List<DayEntity>): List<Long>
@Insert(onConflict = OnConflictStrategy.REPLACE) @Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertLessons(lessons: List<LessonEntity>) suspend fun insertLessons(lessons: List<LessonEntity>)
@@ -112,11 +112,8 @@ class ScheduleRepositoryImpl(
private suspend fun replaceDays(scheduleId: Long, days: List<Day>) { private suspend fun replaceDays(scheduleId: Long, days: List<Day>) {
scheduleDao.deleteDaysForSchedule(scheduleId) scheduleDao.deleteDaysForSchedule(scheduleId)
val dayEntities = days.map { DayEntity(scheduleId = scheduleId, date = it.date.toEpochDay()) } val dayEntities = days.map { DayEntity(scheduleId = scheduleId, date = it.date.toEpochDay()) }
val dayIdByDate = mutableMapOf<LocalDate, Long>() val dayIds = scheduleDao.insertDays(dayEntities)
scheduleDao.insertDays(dayEntities) val dayIdByDate = dayEntities.zip(dayIds).associate { (day, id) -> LocalDate.ofEpochDay(day.date) to id }
for (day in dayEntities) {
dayIdByDate[LocalDate.ofEpochDay(day.date)] = day.id
}
val lessons = days.flatMap { day -> val lessons = days.flatMap { day ->
day.intervals.flatMapIndexed { slotIndex, slot -> day.intervals.flatMapIndexed { slotIndex, slot ->
slot.lessons.mapIndexed { lessonIndex, lesson -> slot.lessons.mapIndexed { lessonIndex, lesson ->