1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-09-03 23:29:33 +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,45 +10,62 @@ import kotlin.jvm.JvmName
@Serializable
data class GiftInfo private constructor(
@SerialName(giftField)
val gift: Gift,
@SerialName(ownedGiftIdField)
val ownedGiftId: GiftId? = null,
@SerialName(convertStarCountField)
val convertStarCount: Int? = null,
@SerialName(prepaidUpgradeStarCountField)
val prepaidUpgradeStarCount: Int? = null,
@SerialName(canBeUpgradedField)
val canBeUpgraded: Boolean = false,
@SerialName(textField)
val text: String? = null,
@SerialName(entitiesField)
val entities: RawMessageEntities = emptyList(),
@SerialName(isPrivateField)
val isPrivate: Boolean = false
) {
companion object {
@JvmName("PublicConstructor")
operator fun invoke(
gift: Gift,
ownedGiftId: GiftId? = null,
convertStarCount: Int? = null,
prepaidUpgradeStarCount: Int? = null,
canBeUpgraded: Boolean = false,
text: String? = null,
textSources: TextSourcesList = emptyList(),
position: Int,
isPrivate: Boolean = false
) = GiftInfo(
gift,
ownedGiftId,
convertStarCount,
prepaidUpgradeStarCount,
canBeUpgraded,
text,
textSources.toRawMessageEntities(position),
isPrivate
)
sealed interface GiftInfo {
val ownedGiftId: GiftId?
@Serializable
data class Regular(
@SerialName(giftField)
val gift: Gift,
@SerialName(ownedGiftIdField)
override val ownedGiftId: GiftId? = null,
@SerialName(convertStarCountField)
val convertStarCount: Int? = null,
@SerialName(prepaidUpgradeStarCountField)
val prepaidUpgradeStarCount: Int? = null,
@SerialName(canBeUpgradedField)
val canBeUpgraded: Boolean = false,
@SerialName(textField)
val text: String? = null,
@SerialName(entitiesField)
val entities: RawMessageEntities = emptyList(),
@SerialName(isPrivateField)
val isPrivate: Boolean = false
) : GiftInfo {
companion object {
@JvmName("PublicConstructor")
operator fun invoke(
gift: Gift,
ownedGiftId: GiftId? = null,
convertStarCount: Int? = null,
prepaidUpgradeStarCount: Int? = null,
canBeUpgraded: Boolean = false,
text: String? = null,
textSources: TextSourcesList = emptyList(),
position: Int,
isPrivate: Boolean = false
) = Regular(
gift,
ownedGiftId,
convertStarCount,
prepaidUpgradeStarCount,
canBeUpgraded,
text,
textSources.toRawMessageEntities(position),
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
)