Files
GLEGram-iOS/submodules/TelegramCore/Sources/TelegramEngine/SecureId/SecureIdIDCardValue.swift
T
Leeksov 4647310322 GLEGram 12.5 — Initial public release
Based on Swiftgram 12.5 (Telegram iOS 12.5).
All GLEGram features ported and organized in GLEGram/ folder.

Features: Ghost Mode, Saved Deleted Messages, Content Protection Bypass,
Font Replacement, Fake Profile, Chat Export, Plugin System, and more.

See CHANGELOG_12.5.md for full details.
2026-04-06 09:48:12 +03:00

70 lines
3.4 KiB
Swift

import Foundation
public struct SecureIdIDCardValue: Equatable {
public var identifier: String
public var expiryDate: SecureIdDate?
public var verificationDocuments: [SecureIdVerificationDocumentReference]
public var translations: [SecureIdVerificationDocumentReference]
public var selfieDocument: SecureIdVerificationDocumentReference?
public var frontSideDocument: SecureIdVerificationDocumentReference?
public var backSideDocument: SecureIdVerificationDocumentReference?
public init(identifier: String, expiryDate: SecureIdDate?, verificationDocuments: [SecureIdVerificationDocumentReference], translations: [SecureIdVerificationDocumentReference], selfieDocument: SecureIdVerificationDocumentReference?, frontSideDocument: SecureIdVerificationDocumentReference?, backSideDocument: SecureIdVerificationDocumentReference?) {
self.identifier = identifier
self.expiryDate = expiryDate
self.verificationDocuments = verificationDocuments
self.translations = translations
self.selfieDocument = selfieDocument
self.frontSideDocument = frontSideDocument
self.backSideDocument = backSideDocument
}
public static func ==(lhs: SecureIdIDCardValue, rhs: SecureIdIDCardValue) -> Bool {
if lhs.identifier != rhs.identifier {
return false
}
if lhs.expiryDate != rhs.expiryDate {
return false
}
if lhs.verificationDocuments != rhs.verificationDocuments {
return false
}
if lhs.translations != rhs.translations {
return false
}
if lhs.selfieDocument != rhs.selfieDocument {
return false
}
if lhs.frontSideDocument != rhs.frontSideDocument {
return false
}
if lhs.backSideDocument != rhs.backSideDocument {
return false
}
return true
}
}
extension SecureIdIDCardValue {
init?(dict: [String: Any], fileReferences: [SecureIdVerificationDocumentReference], translations: [SecureIdVerificationDocumentReference], selfieDocument: SecureIdVerificationDocumentReference?, frontSideDocument: SecureIdVerificationDocumentReference?, backSideDocument: SecureIdVerificationDocumentReference?) {
guard let identifier = dict["document_no"] as? String else {
return nil
}
let expiryDate = (dict["expiry_date"] as? String).flatMap(SecureIdDate.init)
let verificationDocuments: [SecureIdVerificationDocumentReference] = fileReferences
self.init(identifier: identifier, expiryDate: expiryDate, verificationDocuments: verificationDocuments, translations: translations, selfieDocument: selfieDocument, frontSideDocument: frontSideDocument, backSideDocument: backSideDocument)
}
func serialize() -> ([String: Any], [SecureIdVerificationDocumentReference], [SecureIdVerificationDocumentReference], SecureIdVerificationDocumentReference?, SecureIdVerificationDocumentReference?, SecureIdVerificationDocumentReference?) {
var dict: [String: Any] = [:]
dict["document_no"] = self.identifier
if let expiryDate = self.expiryDate {
dict["expiry_date"] = expiryDate.serialize()
}
return (dict, self.verificationDocuments, self.translations, self.selfieDocument, self.frontSideDocument, self.backSideDocument)
}
}