package com.suno.android.common_data.mappers.hooks import com.suno.android.common_core_utils.model.Url import com.suno.android.common_networking.remote.entities.hooks.RemoteHookDownloadResponse data class HookDownloadResponse( val downloadUrl: Url?, val expiresIn: Int?, val status: DownloadStatus, ) enum class DownloadStatus { PROCESSING, READY, ERROR, ; companion object { fun fromString( status: String, ): DownloadStatus = when (status.lowercase()) { "ready" -> READY "error" -> ERROR else -> PROCESSING } } } // Mapper extension fun RemoteHookDownloadResponse.toHookDownloadResponse(): HookDownloadResponse = HookDownloadResponse( downloadUrl = downloadUrl?.let { Url(it) }, expiresIn = expiresIn, status = DownloadStatus.fromString(status), )