mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-09-07 00:59:57 +00:00
refactor: replace transactionType
String with TransactionType
enum
This commit is contained in:
@@ -49,7 +49,7 @@ sealed interface TransactionPartner {
|
|||||||
@SerialName(userField)
|
@SerialName(userField)
|
||||||
val user: PreviewUser,
|
val user: PreviewUser,
|
||||||
@SerialName(transactionTypeField)
|
@SerialName(transactionTypeField)
|
||||||
val transactionType: String,
|
val transactionType: TransactionType,
|
||||||
@SerialName(affiliateField)
|
@SerialName(affiliateField)
|
||||||
val affiliate: AffiliateInfo? = null,
|
val affiliate: AffiliateInfo? = null,
|
||||||
@SerialName(invoicePayloadField)
|
@SerialName(invoicePayloadField)
|
||||||
@@ -156,7 +156,7 @@ sealed interface TransactionPartner {
|
|||||||
val paid_media_payload: PaidMediaPayload? = null,
|
val paid_media_payload: PaidMediaPayload? = null,
|
||||||
val gift: Gift? = null,
|
val gift: Gift? = null,
|
||||||
val premium_subscription_duration: Int? = null,
|
val premium_subscription_duration: Int? = null,
|
||||||
val transaction_type: String? = null,
|
val transaction_type: TransactionType? = null,
|
||||||
val request_count: Int? = null,
|
val request_count: Int? = null,
|
||||||
val sponsor_user: PreviewBot? = null,
|
val sponsor_user: PreviewBot? = null,
|
||||||
val commission_per_mille: Int? = null,
|
val commission_per_mille: Int? = null,
|
||||||
|
@@ -0,0 +1,38 @@
|
|||||||
|
package dev.inmo.tgbotapi.types.payments.stars
|
||||||
|
|
||||||
|
import kotlinx.serialization.KSerializer
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.descriptors.PrimitiveKind
|
||||||
|
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
|
||||||
|
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||||
|
import kotlinx.serialization.encoding.Decoder
|
||||||
|
import kotlinx.serialization.encoding.Encoder
|
||||||
|
|
||||||
|
@Serializable(with = TransactionTypeSerializer::class)
|
||||||
|
enum class TransactionType {
|
||||||
|
INVOICE_PAYMENT,
|
||||||
|
PAID_MEDIA_PAYMENT,
|
||||||
|
GIFT_PURCHASE,
|
||||||
|
PREMIUM_PURCHASE,
|
||||||
|
BUSINESS_ACCOUNT_TRANSFER,
|
||||||
|
UNKNOWN
|
||||||
|
}
|
||||||
|
|
||||||
|
private object TransactionTypeSerializer : KSerializer<TransactionType> {
|
||||||
|
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor(
|
||||||
|
serialName = "dev.inmo.tgbotapi.types.payments.stars.TransactionType",
|
||||||
|
kind = PrimitiveKind.STRING
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun deserialize(decoder: Decoder): TransactionType {
|
||||||
|
return try {
|
||||||
|
TransactionType.valueOf(decoder.decodeString())
|
||||||
|
} catch (e: IllegalArgumentException) {
|
||||||
|
TransactionType.UNKNOWN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun serialize(encoder: Encoder, value: TransactionType) {
|
||||||
|
encoder.encodeString(value.name)
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user