forked from agzam/vyatsu-schedule
refactor: database multi-period schedule storage
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package agzam.vyatsu.data.local
|
||||
|
||||
import agzam.vyatsu.domain.model.LessonType
|
||||
import androidx.room.TypeConverter
|
||||
import java.time.LocalDate
|
||||
import java.time.LocalTime
|
||||
|
||||
class Converters {
|
||||
|
||||
@TypeConverter
|
||||
fun localDateToEpochDay(date: LocalDate?): Long? = date?.toEpochDay()
|
||||
|
||||
@TypeConverter
|
||||
fun epochDayToLocalDate(epochDay: Long?): LocalDate? = epochDay?.let(LocalDate::ofEpochDay)
|
||||
|
||||
@TypeConverter
|
||||
fun localTimeToMinutes(time: LocalTime?): Int? = time?.let { it.hour * 60 + it.minute }
|
||||
|
||||
@TypeConverter
|
||||
fun minutesToLocalTime(minutes: Int?): LocalTime? =
|
||||
minutes?.let { LocalTime.of(it / 60, it % 60) }
|
||||
|
||||
@TypeConverter
|
||||
fun lessonTypeToString(type: LessonType): String = type.name
|
||||
|
||||
@TypeConverter
|
||||
fun stringToLessonType(value: String): LessonType =
|
||||
runCatching { LessonType.valueOf(value) }.getOrDefault(LessonType.OTHER)
|
||||
}
|
||||
Reference in New Issue
Block a user