package com.suno.android.common_analytics.hooks import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable data class HookClipAnalyticsContext( @SerialName("startTime") val startTimeSecs: Double, @SerialName("endTime") val endTimeSecs: Double, @SerialName("playDuration") val playDurationSecs: Double, @SerialName("clipSessionId") val clipSessionId: String, @SerialName("previousHookSessionId") val previousHookSessionId: String?, @SerialName("volume") val volume: Float, @SerialName("platform") val platform: String, @SerialName("isUserClipOwner") val isUserClipOwner: Boolean, @SerialName("clickSourceUrl") val clickSourceUrl: String?, ) enum class HookClipAnalyticsAction( val actionName: String, ) { // Playback-related events for transitioning between Hook and Clip OpenClipPlayerPlaySong("TapSongPillPlayNewSong"), CloseClipPlayerPauseSong("CloseOmniPlayerPauseSong"), } @Serializable data class HookClipAnalyticsEvent( @SerialName("actionName") val actionName: String, @SerialName("context") val context: HookClipAnalyticsContext, )