Updated on 2026-08-14

This commit is contained in:
Tangem 2026-07-07 03:05:46 -07:00
parent e3868e3ecd
commit 576332d67d
24 changed files with 250 additions and 17 deletions

View file

@ -166,7 +166,7 @@ sealed class PaymentAccountStatusValue {
val fiatRate: SerializedBigDecimal?,
val error: Error?,
val virtualAccount: VirtualAccountOnramp?,
val tariffPlan: TangemPayCustomerTariffPlan?,
val tariffPlan: TangemPayTariffPlanState?,
) : PaymentAccountStatusValue() {
val cryptoCurrencyStatus: CryptoCurrencyStatus = CryptoCurrencyStatus(
currency = cryptoCurrency,

View file

@ -1,5 +1,6 @@
package com.tangem.domain.models.account
import com.tangem.domain.models.serialization.SerializedBigDecimal
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import java.util.Locale
@ -11,7 +12,55 @@ data class TangemPayTariffPlan(
@SerialName("name") val name: String,
@SerialName("description_items") val descriptionItems: List<DescriptionItem>,
@SerialName("images") val images: List<Image> = emptyList(),
@SerialName("fees") val fees: List<Fee> = emptyList(),
) {
@Serializable
data class Fee(
@SerialName("type") val type: Type,
@SerialName("amount") val amount: SerializedBigDecimal,
@SerialName("currency") val currency: String,
@SerialName("description") val description: String,
@SerialName("period") val period: Period?,
) {
@Serializable
enum class Type {
@SerialName("FREE")
FREE,
@SerialName("RECURRING")
RECURRING,
@SerialName("UNKNOWN")
UNKNOWN,
;
companion object {
fun fromString(value: String?) = when (value?.uppercase(Locale.US)) {
"FREE" -> FREE
"RECURRING" -> RECURRING
else -> UNKNOWN
}
}
}
@Serializable
enum class Period {
@SerialName("MONTH")
MONTH,
@SerialName("UNKNOWN")
UNKNOWN,
;
companion object {
fun fromString(value: String?) = when (value?.uppercase(Locale.US)) {
"MONTH" -> MONTH
else -> UNKNOWN
}
}
}
}
@Serializable
data class DescriptionItem(
@SerialName("section") val section: Section,

View file

@ -0,0 +1,29 @@
package com.tangem.domain.models.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class TangemPayTariffPlanState(
@SerialName("tariff") val tariff: TangemPayCustomerTariffPlan,
@SerialName("order") val order: Order?,
) {
@Serializable
data class Order(
@SerialName("orderId") val orderId: String,
@SerialName("step") val step: OrderStep,
)
@Serializable
sealed interface OrderStep {
@Serializable
data object Unknown : OrderStep
@Serializable
data class AwaitingDeposit(
@SerialName("fromPlan") val fromPlan: TangemPayTariffPlan,
@SerialName("toPlan") val toPlan: TangemPayTariffPlan,
) : OrderStep
}
}