1616 */
1717package com.shub39.grit.core.data
1818
19- import androidx.room3.TypeConverter
20- import kotlin.time.ExperimentalTime
19+ import androidx.room3.ColumnTypeConverter
2120import kotlin.time.Instant
2221import kotlinx.datetime.DayOfWeek
2322import kotlinx.datetime.LocalDate
@@ -29,37 +28,35 @@ import kotlinx.datetime.toLocalDateTime
2928object Converters {
3029 val allDays = dayOfWeekToString(DayOfWeek .entries.toSet())
3130
32- @TypeConverter
31+ @ColumnTypeConverter
3332 fun dayOfWeekToString (value : Set <DayOfWeek >): String {
3433 return value.joinToString(" ," ) { it.name }
3534 }
3635
37- @TypeConverter
36+ @ColumnTypeConverter
3837 fun dayOfWeekFromString (value : String ): Set <DayOfWeek > {
3938 return if (value.isBlank()) emptySet()
4039 else value.split(" ," ).map { DayOfWeek .valueOf(it) }.toSet()
4140 }
4241
43- @OptIn(ExperimentalTime ::class )
44- @TypeConverter
42+ @ColumnTypeConverter
4543 fun dateFromTimestamp (value : Long? ): LocalDateTime ? {
4644 return value?.let {
4745 Instant .fromEpochSeconds(value).toLocalDateTime(TimeZone .currentSystemDefault())
4846 }
4947 }
5048
51- @OptIn(ExperimentalTime ::class )
52- @TypeConverter
49+ @ColumnTypeConverter
5350 fun dateToTimestamp (date : LocalDateTime ? ): Long? {
5451 return date?.toInstant(TimeZone .currentSystemDefault())?.epochSeconds
5552 }
5653
57- @TypeConverter
54+ @ColumnTypeConverter
5855 fun dayFromTimestamp (value : Long ): LocalDate {
5956 return value.let { LocalDate .fromEpochDays(value) }
6057 }
6158
62- @TypeConverter
59+ @ColumnTypeConverter
6360 fun dayToTimestamp (date : LocalDate ): Long {
6461 return date.toEpochDays()
6562 }
0 commit comments