pinned message in messages history draft

This commit is contained in:
2025-03-27 12:16:26 +03:00
parent f66123ba94
commit 9aa85d40c6
24 changed files with 330 additions and 84 deletions
@@ -1,8 +1,8 @@
package dev.meloda.fast.model.api.data
import dev.meloda.fast.model.api.domain.VkMessage
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import dev.meloda.fast.model.api.domain.VkMessage
@JsonClass(generateAdapter = true)
data class VkMessageData(
@@ -23,7 +23,9 @@ data class VkMessageData(
@Json(name = "action") val action: Action?,
@Json(name = "ttl") val ttl: Int?,
@Json(name = "reply_message") val replyMessage: VkMessageData?,
@Json(name = "update_time") val updateTime: Int?
@Json(name = "update_time") val updateTime: Int?,
@Json(name = "is_pinned") val isPinned: Boolean?,
@Json(name = "pinned_at") val pinnedAt: Int?
) {
@JsonClass(generateAdapter = true)
@@ -72,7 +74,7 @@ fun VkMessageData.asDomain(): VkMessage = VkMessage(
actionConversationMessageId = action?.conversationMessageId,
actionMessage = action?.message,
geoType = geo?.type,
important = important,
isImportant = important,
updateTime = updateTime,
forwards = fwdMessages.orEmpty().map(VkMessageData::asDomain),
attachments = attachments.map(VkAttachmentItemData::toDomain),
@@ -81,4 +83,6 @@ fun VkMessageData.asDomain(): VkMessage = VkMessage(
group = null,
actionUser = null,
actionGroup = null,
pinnedAt = pinnedAt,
isPinned = isPinned == true
)
@@ -41,7 +41,7 @@ data class VkPinnedMessageData(
actionConversationMessageId = action?.conversationMessageId,
actionMessage = action?.message,
geoType = geo?.type,
important = important,
isImportant = important,
updateTime = updateTime,
forwards = forwards.orEmpty().map(VkMessageData::asDomain),
@@ -52,6 +52,7 @@ data class VkPinnedMessageData(
group = null,
actionUser = null,
actionGroup = null,
pinnedAt = null,
isPinned = true,
)
}
@@ -18,8 +18,9 @@ data class VkMessage(
val actionMessage: String?,
val updateTime: Int?,
val important: Boolean = false,
val pinnedAt: Int?,
val isPinned: Boolean,
val isImportant: Boolean = false,
val forwards: List<VkMessage>?,
val attachments: List<VkAttachment>?,
@@ -91,10 +92,12 @@ fun VkMessage.asEntity(): VkMessageEntity = VkMessageEntity(
actionConversationMessageId = actionConversationMessageId,
actionMessage = actionMessage,
updateTime = updateTime,
important = important,
important = isImportant,
forwardIds = forwards.orEmpty().map(VkMessage::id),
// TODO: 05/05/2024, Danil Nikolaev: save attachments
attachments = emptyList(),
replyMessageId = replyMessage?.id,
geoType = geoType
geoType = geoType,
pinnedAt = pinnedAt,
isPinned = isPinned,
)
@@ -25,7 +25,9 @@ data class VkMessageEntity(
val forwardIds: List<Int>?,
val attachments: List<String>?, // TODO: 01/05/2024, Danil Nikolaev: how to store???
val replyMessageId: Int?,
val geoType: String?
val geoType: String?,
val pinnedAt: Int?,
val isPinned: Boolean
)
fun VkMessageEntity.asExternalModel(): VkMessage = VkMessage(
@@ -43,7 +45,7 @@ fun VkMessageEntity.asExternalModel(): VkMessage = VkMessage(
actionConversationMessageId = actionConversationMessageId,
actionMessage = actionMessage,
updateTime = updateTime,
important = important,
isImportant = important,
forwards = emptyList(),//forwards.orEmpty().map(VkMessageEntity::asExternalModel),
// TODO: 05/05/2024, Danil Nikolaev: restore attachments
attachments = attachments.orEmpty().map { VkUnknownAttachment },
@@ -53,4 +55,6 @@ fun VkMessageEntity.asExternalModel(): VkMessage = VkMessage(
group = null,
actionUser = null,
actionGroup = null,
pinnedAt = pinnedAt,
isPinned = isPinned
)