package com.suno.android.common_data.mappers.clips enum class ClipStatus( val value: String, ) { Submitted("submitted"), Queued("queued"), Running("running"), Streaming("streaming"), Complete("complete"), Error("error"), Unknown("unknown"), ; val isGenerating: Boolean get() = this == Submitted || this == Queued || this == Running val isReady: Boolean get() = this == Streaming || this == Complete val isTerminal: Boolean get() = this == Complete || this == Error companion object { private val stringToEnumMap = entries.associateBy { it.value.lowercase() } fun fromString( value: String?, ): ClipStatus = value?.lowercase()?.let { stringToEnumMap[it] } ?: Unknown } }