1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-09-05 16:19:26 +00:00

refactor: merged GiftInfo and UniqueGiftInfo into one sealed interface

This commit is contained in:
bpavuk
2025-04-17 17:38:16 +03:00
parent 29c6bb5dac
commit 09dee188d2
2 changed files with 57 additions and 57 deletions

View File

@@ -10,11 +10,15 @@ import kotlin.jvm.JvmName
@Serializable @Serializable
data class GiftInfo private constructor( sealed interface GiftInfo {
val ownedGiftId: GiftId?
@Serializable
data class Regular(
@SerialName(giftField) @SerialName(giftField)
val gift: Gift, val gift: Gift,
@SerialName(ownedGiftIdField) @SerialName(ownedGiftIdField)
val ownedGiftId: GiftId? = null, override val ownedGiftId: GiftId? = null,
@SerialName(convertStarCountField) @SerialName(convertStarCountField)
val convertStarCount: Int? = null, val convertStarCount: Int? = null,
@SerialName(prepaidUpgradeStarCountField) @SerialName(prepaidUpgradeStarCountField)
@@ -27,7 +31,7 @@ data class GiftInfo private constructor(
val entities: RawMessageEntities = emptyList(), val entities: RawMessageEntities = emptyList(),
@SerialName(isPrivateField) @SerialName(isPrivateField)
val isPrivate: Boolean = false val isPrivate: Boolean = false
) { ) : GiftInfo {
companion object { companion object {
@JvmName("PublicConstructor") @JvmName("PublicConstructor")
operator fun invoke( operator fun invoke(
@@ -40,7 +44,7 @@ data class GiftInfo private constructor(
textSources: TextSourcesList = emptyList(), textSources: TextSourcesList = emptyList(),
position: Int, position: Int,
isPrivate: Boolean = false isPrivate: Boolean = false
) = GiftInfo( ) = Regular(
gift, gift,
ownedGiftId, ownedGiftId,
convertStarCount, convertStarCount,
@@ -51,4 +55,17 @@ data class GiftInfo private constructor(
isPrivate isPrivate
) )
} }
}
@Serializable
data class Unique(
@SerialName(giftField)
val gift: UniqueGift,
@SerialName(originField)
val origin: String? = null,
@SerialName(ownedGiftIdField)
override val ownedGiftId: GiftId? = null,
@SerialName(transferStarCountField)
val transferStarCount: Int? = null
): GiftInfo
} }

View File

@@ -1,17 +0,0 @@
package dev.inmo.tgbotapi.types.gifts
import dev.inmo.tgbotapi.types.*
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class UniqueGiftInfo(
@SerialName(giftField)
val gift: UniqueGift,
@SerialName(originField)
val origin: String? = null,
@SerialName(ownedGiftIdField)
val ownedGiftId: GiftId? = null,
@SerialName(transferStarCountField)
val transferStarCount: Int? = null
)