2022-04-18 11:05:28 +00:00
|
|
|
package dev.inmo.tgbotapi.webapps
|
|
|
|
|
2023-12-24 13:25:41 +00:00
|
|
|
import dev.inmo.micro_utils.language_codes.IetfLang
|
2022-04-18 11:05:28 +00:00
|
|
|
import dev.inmo.tgbotapi.types.*
|
2022-04-21 18:16:41 +00:00
|
|
|
import dev.inmo.tgbotapi.types.chat.CommonBot
|
|
|
|
import dev.inmo.tgbotapi.types.chat.CommonUser
|
2022-04-18 11:05:28 +00:00
|
|
|
|
|
|
|
external interface WebAppUser {
|
|
|
|
val id: Identifier
|
|
|
|
@JsName(isBotField)
|
|
|
|
val isBot: Boolean?
|
|
|
|
@JsName(firstNameField)
|
|
|
|
val firstName: String
|
|
|
|
@JsName(lastNameField)
|
|
|
|
val lastName: String?
|
|
|
|
@JsName(usernameField)
|
|
|
|
val username: String?
|
|
|
|
@JsName(languageCodeField)
|
|
|
|
val languageCode: String?
|
2022-08-14 15:52:26 +00:00
|
|
|
val is_premium: Boolean?
|
2022-04-18 11:05:28 +00:00
|
|
|
@JsName(photoUrlField)
|
|
|
|
val photoUrl: String?
|
2023-09-22 15:45:28 +00:00
|
|
|
@JsName(addedToAttachmentMenuField)
|
|
|
|
val addedToAttachmentMenu: Boolean?
|
|
|
|
@JsName(allowsWriteToPMField)
|
|
|
|
val allowsWriteToPM: Boolean?
|
2022-04-18 11:05:28 +00:00
|
|
|
}
|
|
|
|
|
2022-08-14 15:52:26 +00:00
|
|
|
val WebAppUser.isPremium
|
|
|
|
get() = is_premium == true
|
|
|
|
|
2022-04-18 11:05:28 +00:00
|
|
|
fun WebAppUser.asUser() = if (isBot == true) {
|
|
|
|
CommonBot(
|
2023-07-01 08:32:58 +00:00
|
|
|
id = UserId(id),
|
|
|
|
firstName = firstName,
|
|
|
|
lastName = lastName ?: "",
|
|
|
|
username = username ?.let(::Username)
|
2022-04-18 11:05:28 +00:00
|
|
|
)
|
|
|
|
} else {
|
|
|
|
CommonUser(
|
2023-07-01 08:32:58 +00:00
|
|
|
id = UserId(id),
|
|
|
|
firstName = firstName,
|
|
|
|
lastName = lastName ?: "",
|
|
|
|
username = username ?.let(::Username),
|
2023-12-24 13:25:41 +00:00
|
|
|
ietfLanguageCode = languageCode ?.let(::IetfLang),
|
2022-08-14 19:21:10 +00:00
|
|
|
isPremium = isPremium
|
2022-04-18 11:05:28 +00:00
|
|
|
)
|
|
|
|
}
|