package com.suno.android.common_data.billing.models import androidx.compose.runtime.Immutable import kotlinx.collections.immutable.ImmutableList @Immutable data class TierTransitions( val upgrade: ImmutableList, val downgrade: ImmutableList, val crossgrade: ImmutableList, ) @Immutable data class TierTransitionRule( val from: PlanTier, val to: PlanTier, ) /** * Represents a subscription plan tier */ enum class PlanTier( val value: String, ) { Free("free"), Student("student"), Basic("basic"), Pro("pro"), Pro20250501("pro_20250501"), Premier("premier"), ; companion object { fun fromString( value: String, ): PlanTier? = entries.firstOrNull { it.value.equals(value, ignoreCase = true) } } }