package model

import android.os.Build
import androidx.annotation.RequiresApi
import androidx.room.Entity
import androidx.room.PrimaryKey
import androidx.room.TypeConverter
import java.time.LocalDateTime
import java.util.Date

//Описание сущности для БД
@Entity
data class TaskEntity(
    @PrimaryKey(autoGenerate = true) var id: Int,
    var name:String,
    var description:String?,
//    val dateTo: Date?,
//    val timeTo: Time?,
    var dateTimeTo: LocalDateTime?,
    var complete: Boolean
)

//class Converters {
//    @TypeConverter
//    fun fromDatestamp(value: Long?): Date? {
//        return value?.let { Date(it) }
//    }
//
//    @TypeConverter
//    fun dateToDatestamp(date: Date?): Long? {
//        return date?.time?.toLong()
//    }
//}

//Конверторы требцется для сложных типов данных,
//т.к. Room не умеет из преобразовывать.
//К таким данным относятся даты, подробнее см. в интернете.
object Converters {
    @RequiresApi(Build.VERSION_CODES.O)
    @TypeConverter
    //Преобразование строки к типу дата-время
    fun toDate(dateString: String?): LocalDateTime? {
        return if (dateString == null) {
            null
        } else {
            LocalDateTime.parse(dateString)
        }
    }

    //Преобразование даты к строке
    @TypeConverter
    fun toDateString(date: LocalDateTime?): String? {
        return date?.toString()
    }
}
