mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
62 lines
2.6 KiB
Swift
62 lines
2.6 KiB
Swift
import Postbox
|
|
|
|
public struct ExportedInvitation: PostboxCoding, Equatable {
|
|
public let link: String
|
|
public let isPermanent: Bool
|
|
public let isRevoked: Bool
|
|
public let adminId: PeerId
|
|
public let date: Int32
|
|
public let expireDate: Int32?
|
|
public let usageLimit: Int32?
|
|
public let count: Int32?
|
|
|
|
public init(link: String, isPermanent: Bool, isRevoked: Bool, adminId: PeerId, date: Int32, expireDate: Int32?, usageLimit: Int32?, count: Int32?) {
|
|
self.link = link
|
|
self.isPermanent = isPermanent
|
|
self.isRevoked = isRevoked
|
|
self.adminId = adminId
|
|
self.date = date
|
|
self.expireDate = expireDate
|
|
self.usageLimit = usageLimit
|
|
self.count = count
|
|
}
|
|
|
|
public init(decoder: PostboxDecoder) {
|
|
self.link = decoder.decodeStringForKey("l", orElse: "")
|
|
self.isPermanent = decoder.decodeBoolForKey("permanent", orElse: false)
|
|
self.isRevoked = decoder.decodeBoolForKey("revoked", orElse: false)
|
|
self.adminId = PeerId(decoder.decodeInt64ForKey("adminId", orElse: 0))
|
|
self.date = decoder.decodeInt32ForKey("date", orElse: 0)
|
|
self.expireDate = decoder.decodeOptionalInt32ForKey("expireDate")
|
|
self.usageLimit = decoder.decodeOptionalInt32ForKey("usageLimit")
|
|
self.count = decoder.decodeOptionalInt32ForKey("count")
|
|
}
|
|
|
|
public func encode(_ encoder: PostboxEncoder) {
|
|
encoder.encodeString(self.link, forKey: "l")
|
|
encoder.encodeBool(self.isPermanent, forKey: "permanent")
|
|
encoder.encodeBool(self.isRevoked, forKey: "revoked")
|
|
encoder.encodeInt64(self.adminId.toInt64(), forKey: "adminId")
|
|
encoder.encodeInt32(self.date, forKey: "date")
|
|
if let expireDate = self.expireDate {
|
|
encoder.encodeInt32(expireDate, forKey: "expireDate")
|
|
} else {
|
|
encoder.encodeNil(forKey: "expireDate")
|
|
}
|
|
if let usageLimit = self.usageLimit {
|
|
encoder.encodeInt32(usageLimit, forKey: "usageLimit")
|
|
} else {
|
|
encoder.encodeNil(forKey: "usageLimit")
|
|
}
|
|
if let count = self.count {
|
|
encoder.encodeInt32(count, forKey: "count")
|
|
} else {
|
|
encoder.encodeNil(forKey: "count")
|
|
}
|
|
}
|
|
|
|
public static func ==(lhs: ExportedInvitation, rhs: ExportedInvitation) -> Bool {
|
|
return lhs.link == rhs.link && lhs.isPermanent == rhs.isPermanent && lhs.isRevoked == rhs.isRevoked && lhs.adminId == rhs.adminId && lhs.date == rhs.date && lhs.expireDate == rhs.expireDate && lhs.usageLimit == rhs.usageLimit && lhs.count == rhs.count
|
|
}
|
|
}
|