From 7c865b4e0f9b6b914e298a74a341dcd0964a6b22 Mon Sep 17 00:00:00 2001 From: Shcherbatykh Oleg Date: Thu, 12 Feb 2026 16:42:27 +0300 Subject: [PATCH] Fix schedule models, format code --- .../main/java/ru/fincode/tsudesk/MainActivity.kt | 2 +- .../data/mapper/ScheduleDtoToDomainMapper.kt | 8 ++++---- .../feature/schedule/data/remote/ScheduleApi.kt | 3 +-- .../feature/schedule/domain/model/LessonEntity.kt | 12 ++++++++++++ .../feature/schedule/domain/model/ScheduleEntity.kt | 13 +------------ .../feature/schedule/domain/model/ScheduleType.kt | 6 ++++++ .../schedule/domain/usecase/GetScheduleUseCase.kt | 13 ++++--------- 7 files changed, 29 insertions(+), 28 deletions(-) create mode 100644 feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/LessonEntity.kt create mode 100644 feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/ScheduleType.kt diff --git a/app/src/main/java/ru/fincode/tsudesk/MainActivity.kt b/app/src/main/java/ru/fincode/tsudesk/MainActivity.kt index 11c7979..9b37427 100644 --- a/app/src/main/java/ru/fincode/tsudesk/MainActivity.kt +++ b/app/src/main/java/ru/fincode/tsudesk/MainActivity.kt @@ -6,8 +6,8 @@ import androidx.activity.ComponentActivity import androidx.lifecycle.lifecycleScope import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch +import ru.fincode.tsudesk.feature.schedule.domain.model.ScheduleType import ru.fincode.tsudesk.feature.schedule.domain.usecase.GetScheduleUseCase -import ru.fincode.tsudesk.feature.schedule.domain.usecase.GetScheduleUseCase.ScheduleType import javax.inject.Inject @AndroidEntryPoint diff --git a/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/data/mapper/ScheduleDtoToDomainMapper.kt b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/data/mapper/ScheduleDtoToDomainMapper.kt index b1dc026..2515da6 100644 --- a/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/data/mapper/ScheduleDtoToDomainMapper.kt +++ b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/data/mapper/ScheduleDtoToDomainMapper.kt @@ -2,7 +2,7 @@ package ru.fincode.tsudesk.feature.schedule.data.mapper import ru.fincode.tsudesk.feature.schedule.data.remote.model.LessonDto import ru.fincode.tsudesk.feature.schedule.data.remote.model.ScheduleDto -import ru.fincode.tsudesk.feature.schedule.domain.model.Lesson +import ru.fincode.tsudesk.feature.schedule.domain.model.LessonEntity import ru.fincode.tsudesk.feature.schedule.domain.model.ScheduleEntity import javax.inject.Inject @@ -11,11 +11,11 @@ class ScheduleDtoToDomainMapper @Inject constructor() { operator fun invoke(dto: ScheduleDto): ScheduleEntity = ScheduleEntity(lessons = dto.map(::mapLesson)) - private fun mapLesson(item: LessonDto): Lesson = - Lesson( + private fun mapLesson(item: LessonDto): LessonEntity = + LessonEntity( date = item.date.trim(), time = item.time.trim(), - subject = item.discipline.trim(), + name = item.discipline.trim(), typeName = item.typeName.trim(), room = item.room.trim(), teacher = item.teacher.trim(), diff --git a/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/data/remote/ScheduleApi.kt b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/data/remote/ScheduleApi.kt index 8a5b8e1..b775779 100644 --- a/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/data/remote/ScheduleApi.kt +++ b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/data/remote/ScheduleApi.kt @@ -22,7 +22,6 @@ interface ScheduleApi { */ @GET("GetSchedule.php") suspend fun getSchedule( - @Query("search_field") searchField: String, - @Query("search_value") searchValue: String + @Query("search_field") searchField: String, @Query("search_value") searchValue: String ): ScheduleDto } diff --git a/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/LessonEntity.kt b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/LessonEntity.kt new file mode 100644 index 0000000..dbf1294 --- /dev/null +++ b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/LessonEntity.kt @@ -0,0 +1,12 @@ +package ru.fincode.tsudesk.feature.schedule.domain.model + +data class LessonEntity( + val date: String, // "12.01.2026" + val time: String, // "11:00 - 13:55" + val name: String, // discipline + val typeName: String, // "Лекции", "Лабораторные занятия" и т.д. + val room: String, + val teacher: String, + val groupId: String, + val type: String // "lecture" / "lab" / "practice" / "default" +) \ No newline at end of file diff --git a/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/ScheduleEntity.kt b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/ScheduleEntity.kt index 5b85c90..0f47aa7 100644 --- a/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/ScheduleEntity.kt +++ b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/ScheduleEntity.kt @@ -1,18 +1,7 @@ package ru.fincode.tsudesk.feature.schedule.domain.model data class ScheduleEntity( - val lessons: List -) - -data class Lesson( - val date: String, // "12.01.2026" - val time: String, // "11:00 - 13:55" - val subject: String, // discipline - val typeName: String, // "Лекции", "Лабораторные занятия" и т.д. - val room: String, - val teacher: String, - val groupId: String, - val type: String // "lecture" / "lab" / "practice" / "default" + val lessons: List ) diff --git a/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/ScheduleType.kt b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/ScheduleType.kt new file mode 100644 index 0000000..805d53f --- /dev/null +++ b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/model/ScheduleType.kt @@ -0,0 +1,6 @@ +package ru.fincode.tsudesk.feature.schedule.domain.model + +sealed interface ScheduleType { + data class Group(val number: String) : ScheduleType + data class Teacher(val name: String) : ScheduleType +} \ No newline at end of file diff --git a/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/usecase/GetScheduleUseCase.kt b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/usecase/GetScheduleUseCase.kt index acb89e8..9863d5e 100644 --- a/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/usecase/GetScheduleUseCase.kt +++ b/feature/schedule/src/main/java/ru/fincode/tsudesk/feature/schedule/domain/usecase/GetScheduleUseCase.kt @@ -2,20 +2,15 @@ package ru.fincode.tsudesk.feature.schedule.domain.usecase import ru.fincode.tsudesk.core.network.model.NetworkResult import ru.fincode.tsudesk.feature.schedule.domain.model.ScheduleEntity +import ru.fincode.tsudesk.feature.schedule.domain.model.ScheduleType import ru.fincode.tsudesk.feature.schedule.domain.repository.ScheduleRepository import javax.inject.Inject class GetScheduleUseCase @Inject constructor( private val repository: ScheduleRepository ) { - sealed interface ScheduleType { - data class Group(val number: String) : ScheduleType - data class Teacher(val name: String) : ScheduleType + suspend operator fun invoke(type: ScheduleType): NetworkResult = when (type) { + is ScheduleType.Group -> repository.loadScheduleByGroup(type.number) + is ScheduleType.Teacher -> repository.loadScheduleByTeacher(type.name) } - - suspend operator fun invoke(type: ScheduleType): NetworkResult = - when (type) { - is ScheduleType.Group -> repository.loadScheduleByGroup(type.number) - is ScheduleType.Teacher -> repository.loadScheduleByTeacher(type.name) - } }