package com.blaze.rtnblazesdk.utils import android.util.Log import com.blaze.blazesdk.delegates.models.BlazePlayerEvent import com.blaze.rtnblazesdk.BlazeSdkModule import com.blaze.rtnblazesdk.utils.parsing.GsonSerializable const val KEY_PARAM_PLAYER_EVENT_TYPE = "playerEventType" const val KEY_PARAM_PLAYER_EVENT_PARAMS = "playerEventParams" fun BlazePlayerEvent.toReactEventType(): String? { return when (this) { is BlazePlayerEvent.OnMomentStart -> "OnMomentStart" is BlazePlayerEvent.OnStoryStart -> "OnStoryStart" else -> null } } // Extension function to map BlazePlayerEvent to React event parameters fun BlazePlayerEvent.toReactEventParams(): String? { val serializable: GsonSerializable = when (this) { is BlazePlayerEvent.OnMomentStart -> this.toReactValue() is BlazePlayerEvent.OnStoryStart -> this.toReactValue() } return try { serializable.toJsonString() } catch (e: Throwable) { Log.e(BlazeSdkModule.TAG, "Error extracting params") null } } data class BlazePlayerEventRTNOnMomentStartParams( val momentId: String ) : GsonSerializable data class BlazePlayerEventRTNOnStoryStartParams( val storyId: String ) : GsonSerializable // Extension function to convert OnMomentStartParams to React value fun BlazePlayerEvent.OnMomentStart.toReactValue(): BlazePlayerEventRTNOnMomentStartParams { return BlazePlayerEventRTNOnMomentStartParams( momentId = params.momentId ) } // Extension function to convert OnStoryStartParams to React value fun BlazePlayerEvent.OnStoryStart.toReactValue(): BlazePlayerEventRTNOnStoryStartParams { return BlazePlayerEventRTNOnStoryStartParams( storyId = params.storyId ) }