package eu.kanade.data import com.squareup.sqldelight.ColumnAdapter import eu.kanade.tachiyomi.source.model.UpdateStrategy import java.util.Date val dateAdapter = object : ColumnAdapter { override fun decode(databaseValue: Long): Date = Date(databaseValue) override fun encode(value: Date): Long = value.time } private const val listOfStringsSeparator = ", " val listOfStringsAdapter = object : ColumnAdapter, String> { override fun decode(databaseValue: String) = if (databaseValue.isEmpty()) { listOf() } else { databaseValue.split(listOfStringsSeparator) } override fun encode(value: List) = value.joinToString(separator = listOfStringsSeparator) } val updateStrategyAdapter = object : ColumnAdapter { private val enumValues by lazy { UpdateStrategy.values() } override fun decode(databaseValue: Long): UpdateStrategy = enumValues.getOrElse(databaseValue.toInt()) { UpdateStrategy.ALWAYS_UPDATE } override fun encode(value: UpdateStrategy): Long = value.ordinal.toLong() }