package com.jishisongfu.duobibi.heartbeat

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/** /register-device body —— 拿到 regId 立刻上报,与心跳解耦避免"鸡生蛋" */
@Serializable
data class RegisterDeviceBody(
    @SerialName("device_id") val deviceId: String,
    @SerialName("reg_id") val regId: String,
    @SerialName("app_version") val appVersion: String,
)

/**
 * /heartbeat body。reg_id 字段每次也带上,后端可在心跳中刷新设备最新 regId
 * (用户卸载重装后 regId 会变)。
 *
 * trigger 是哪个时机发的心跳——用于诊断:实测时若发现"心跳停太快",可看 trigger
 * 分布判断 alarm 是否被 Doze 拦截。
 */
@Serializable
data class HeartbeatBody(
    @SerialName("device_id") val deviceId: String,
    @SerialName("reg_id") val regId: String?,
    @SerialName("a11y_enabled") val a11yEnabled: Boolean,
    @SerialName("floating_enabled") val floatingEnabled: Boolean,
    @SerialName("app_in_foreground") val appInForeground: Boolean,
    @SerialName("trigger") val trigger: String,
    @SerialName("client_ts") val clientTs: Long,
    @SerialName("app_version") val appVersion: String,
)
