package com.suno.android.ui.bottom_sheets.song_actions import com.suno.android.common_core_utils.Id import com.suno.android.common_data.mappers.clips.SongListData import com.suno.android.common_mvi.MviEvent import com.suno.android.ui.screens.create.CreatePromptForm import com.suno.android.ui.screens.create.audio.CreateAudioState // Events sealed class SongActionBottomSheetConsumerEvent( keepEventForAnalytics: Boolean = true, override val trackingName: String? = null, override val metadata: Map? = null, ) : MviEvent( screen = SongActionBottomSheetScreenAnalytics.SCREEN, keepEventForAnalytics = keepEventForAnalytics, trackingName = trackingName, metadata = metadata, ) { data object OnUpgradeClicked : SongActionBottomSheetConsumerEvent() data class OnReusePromptClicked( val formData: CreatePromptForm, ) : SongActionBottomSheetConsumerEvent() data class OnRemixClicked( val songId: Id, ) : SongActionBottomSheetConsumerEvent() data class OnSongRenamed( val song: SongListData, ) : SongActionBottomSheetConsumerEvent() data class OnSongDeleted( val song: SongListData, ) : SongActionBottomSheetConsumerEvent() data class OnSongUndoDeleted( val song: SongListData, ) : SongActionBottomSheetConsumerEvent() data class OnSongReported( val message: String, ) : SongActionBottomSheetConsumerEvent() data class OnSongUndoReported( val message: String, ) : SongActionBottomSheetConsumerEvent() data class OnShowSnackbar( val message: String, ) : SongActionBottomSheetConsumerEvent() data object DismissSongActionsContainerHost : SongActionBottomSheetConsumerEvent() data class NavigateToShareVideo( val songId: Id, ) : SongActionBottomSheetConsumerEvent() data class NavigateToRemix( val songId: Id, val task: CreateAudioState.AudioCreateTask, ) : SongActionBottomSheetConsumerEvent() data class OnRemoveFromPlaylistTapped( val song: SongListData, ) : SongActionBottomSheetConsumerEvent() }