48 lines
1.8 KiB
Kotlin
48 lines
1.8 KiB
Kotlin
package dev.inmo.tgbotapi.types.passport.encrypted_data
|
|
|
|
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
|
import dev.inmo.tgbotapi.types.*
|
|
import dev.inmo.tgbotapi.types.passport.EncryptedData
|
|
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.*
|
|
import kotlinx.serialization.SerialName
|
|
import kotlinx.serialization.Serializable
|
|
|
|
@Serializable(EncryptedElementSerializer::class)
|
|
sealed class TranslatableIDDocument : WithData, WithFrontSide, WithReverseSide, WithSelfie, Translatable
|
|
|
|
@Serializable
|
|
data class DriverLicense(
|
|
@SerialName(dataField)
|
|
@Serializable(Base64BytesToFromStringSerializer::class)
|
|
override val data: EncryptedData,
|
|
@SerialName(frontSideField)
|
|
override val frontSide: PassportFile? = null,
|
|
@SerialName(reverseSideField)
|
|
override val reverseSide: PassportFile? = null,
|
|
@SerialName(selfieField)
|
|
override val selfie: PassportFile? = null,
|
|
@SerialName(translationField)
|
|
override val translations: List<PassportFile> = emptyList(),
|
|
@SerialName(hashField)
|
|
@Serializable(Base64BytesToFromStringSerializer::class)
|
|
override val hash: PassportElementHash
|
|
) : TranslatableIDDocument()
|
|
|
|
@Serializable
|
|
data class IdentityCard(
|
|
@SerialName(dataField)
|
|
@Serializable(Base64BytesToFromStringSerializer::class)
|
|
override val data: EncryptedData,
|
|
@SerialName(frontSideField)
|
|
override val frontSide: PassportFile? = null,
|
|
@SerialName(reverseSideField)
|
|
override val reverseSide: PassportFile? = null,
|
|
@SerialName(selfieField)
|
|
override val selfie: PassportFile? = null,
|
|
@SerialName(translationField)
|
|
override val translations: List<PassportFile> = emptyList(),
|
|
@SerialName(hashField)
|
|
@Serializable(Base64BytesToFromStringSerializer::class)
|
|
override val hash: PassportElementHash
|
|
) : TranslatableIDDocument()
|