Swiftgram/submodules/SyncCore/Sources/ReplyThreadMessageAttribute.swift
2020-09-01 22:20:55 +01:00

35 lines
1.2 KiB
Swift

import Foundation
import Postbox
public class ReplyThreadMessageAttribute: MessageAttribute {
public let count: Int32
public let latestUsers: [PeerId]
public let commentsPeerId: PeerId?
public var associatedPeerIds: [PeerId] {
return self.latestUsers
}
public init(count: Int32, latestUsers: [PeerId], commentsPeerId: PeerId?) {
self.count = count
self.latestUsers = latestUsers
self.commentsPeerId = commentsPeerId
}
required public init(decoder: PostboxDecoder) {
self.count = decoder.decodeInt32ForKey("c", orElse: 0)
self.latestUsers = decoder.decodeInt64ArrayForKey("u").map(PeerId.init)
self.commentsPeerId = decoder.decodeOptionalInt64ForKey("cp").flatMap(PeerId.init)
}
public func encode(_ encoder: PostboxEncoder) {
encoder.encodeInt32(self.count, forKey: "c")
encoder.encodeInt64Array(self.latestUsers.map { $0.toInt64() }, forKey: "u")
if let commentsPeerId = self.commentsPeerId {
encoder.encodeInt64(commentsPeerId.toInt64(), forKey: "cp")
} else {
encoder.encodeNil(forKey: "cp")
}
}
}