forked from agzam/vyatsu-schedule
init
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package agzam.vyatsu.data.local
|
||||
|
||||
import agzam.vyatsu.domain.model.Lesson
|
||||
import agzam.vyatsu.domain.model.LessonType
|
||||
import com.squareup.moshi.JsonClass
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class LessonDto(
|
||||
val raw: String = "",
|
||||
val room: String? = null,
|
||||
val group: String? = null,
|
||||
val subgroup: String? = null,
|
||||
val subject: String? = null,
|
||||
val type: String = "",
|
||||
val teacher: String? = null
|
||||
) {
|
||||
fun toDomain(): Lesson = Lesson(
|
||||
raw = raw,
|
||||
room = room?.takeIf { it.isNotBlank() },
|
||||
group = group?.takeIf { it.isNotBlank() },
|
||||
subgroup = subgroup?.takeIf { it.isNotBlank() },
|
||||
subject = subject?.takeIf { it.isNotBlank() },
|
||||
type = runCatching { LessonType.valueOf(type) }.getOrDefault(LessonType.OTHER),
|
||||
teacher = teacher?.takeIf { it.isNotBlank() }
|
||||
)
|
||||
|
||||
companion object {
|
||||
fun fromDomain(l: Lesson): LessonDto = LessonDto(
|
||||
raw = l.raw,
|
||||
room = l.room,
|
||||
group = l.group,
|
||||
subgroup = l.subgroup,
|
||||
subject = l.subject,
|
||||
type = l.type.name,
|
||||
teacher = l.teacher
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user