✨ Sync chat from SN
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package dev.solsynth.snConnect.models
|
||||
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import kotlinx.serialization.json.JsonIgnoreUnknownKeys
|
||||
import kotlinx.serialization.json.decodeFromJsonElement
|
||||
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
@JsonIgnoreUnknownKeys
|
||||
@Serializable
|
||||
data class SnChatMessage(
|
||||
val id: String,
|
||||
val type: String = "text",
|
||||
val content: String?,
|
||||
val nonce: String?,
|
||||
@SerialName("members_mentioned") val membersMentioned: List<String>? = emptyList(),
|
||||
@SerialName("edited_at") val editedAt: String?,
|
||||
val attachments: List<SnCloudFile> = emptyList(),
|
||||
// val reactions: List<SnChatReaction> = emptyList(), // Placeholder
|
||||
@SerialName("replied_message_id") val repliedMessageId: String?,
|
||||
@SerialName("forwarded_message_id") val forwardedMessageId: String?,
|
||||
@SerialName("sender_id") val senderId: String,
|
||||
val sender: SnChatMember,
|
||||
@SerialName("chat_room") val chatRoom: SnChatRoom,
|
||||
@SerialName("chat_room_id") val chatRoomId: String,
|
||||
@SerialName("created_at") val createdAt: String,
|
||||
@SerialName("updated_at") val updatedAt: String,
|
||||
@SerialName("deleted_at") val deletedAt: String?,
|
||||
) {
|
||||
companion object {
|
||||
private val json = Json { ignoreUnknownKeys = true }
|
||||
|
||||
fun fromJson(jsonElement: JsonElement): SnChatMessage {
|
||||
return json.decodeFromJsonElement<SnChatMessage>(jsonElement)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user