package com.suno.android.common_data.mappers.share_asset import com.suno.android.common_core_utils.Id import com.suno.android.common_core_utils.model.Url import com.suno.android.common_data.repos.ShareAsset import com.suno.android.common_networking.remote.entities.RemoteShareAssetResponse fun RemoteShareAssetResponse.asShareAssetStatusOrNull( fallbackId: Id? = null, ): ShareAssetStatus? { val id = this.id?.let { Id(it) } ?: fallbackId ?: return null return when (this.status?.lowercase()) { "complete" -> { ShareAssetStatus.Complete( id = id, url = this.url?.let { Url(it) } ?: return null, ) } else -> { ShareAssetStatus.Rendering(id) } } }