[O] Make measurements from Mi fitness models

This commit is contained in:
Azalea Gui
2023-01-24 21:51:35 -05:00
parent c1778af5a3
commit b2623cece4
@@ -2,8 +2,11 @@
package org.hydev.wearsync.mi
import com.influxdb.annotations.Column
import com.influxdb.annotations.Measurement
import org.hydev.wearsync.reflectToString
import org.jetbrains.exposed.sql.Table
import java.time.Instant
import java.util.*
object SleepSegment : Table("sleep_segment") {
@@ -14,31 +17,40 @@ object SleepSegment : Table("sleep_segment") {
val value = text("value")
}
@Measurement(name = "mi-sleep-day")
class SleepNight : SleepDaytime()
{
val awake_count: Long = 0
val sleep_awake_duration: Long = 0
val sleep_deep_duration: Long = 0
val sleep_light_duration: Long = 0
val sleep_rem_duration: Long = 0
@Column val awake_count: Long = 0
@Column val sleep_awake_duration: Long = 0
@Column val sleep_deep_duration: Long = 0
@Column val sleep_light_duration: Long = 0
@Column val sleep_rem_duration: Long = 0
override fun toString() = reflectToString()
}
@Measurement(name = "mi-sleep-day")
open class SleepDaytime {
var bedtime: Long = 0
var wake_up_time: Long = 0
var timezone: Long = 0
var duration: Long = 0
@Column lateinit var bedtime: Date
@Column lateinit var wake_up_time: Date
@Column lateinit var timezone: Date
@Column var duration: Long = 0
var items: List<SleepState> = listOf()
var date_time: Long = 0
@Column(timestamp = true)
lateinit var date_time: Instant
override fun toString() = reflectToString()
}
@Measurement(name = "mi-sleep-state")
data class SleepState(
val end_time: Long,
val state: Long,
val start_time: Long
@Column(timestamp = true)
val start_time: Instant,
val end_time: Instant,
@Column
var state: Int,
)