package com.gh.gamecenter.common.syncpage

import androidx.annotation.Keep

@Keep
class SyncDataEntity(
    /**
     * 标识一条数据的唯一ID
     *
     * 与[ISyncAdapterHandler.getSyncData]返回的Pair first一致
     */
    val syncId: String,

    /**
     * 需要同步的字段名
     *
     * 与@SyncPage注解的值一致
     */
    val syncFieldName: String?,

    /**
     * 需要同步的具体内容
     */
    val syncFieldValue: Any?,

    /**
     * 同步完一次是否自动删除
     */
    val remove: Boolean = true,

    /**
     * 是否需要查询同步实体的父级字段
     *
     * 由于反射可能会导致较大的性能消耗，默认关闭，具体按实际情况开启
     */
    val checkInherited: Boolean = false,

    /**
     * 是否需要查询同步实体的嵌套实体内容
     *
     * 由于反射可能会导致较大的性能消耗，默认关闭，具体按实际情况开启
     */
    val checkFieldEntity: Boolean = false
)