summaryrefslogtreecommitdiff
path: root/DomainDig/Models.swift
diff options
context:
space:
mode:
Diffstat (limited to 'DomainDig/Models.swift')
-rw-r--r--DomainDig/Models.swift63
1 files changed, 63 insertions, 0 deletions
diff --git a/DomainDig/Models.swift b/DomainDig/Models.swift
new file mode 100644
index 0000000..53b3c39
--- /dev/null
+++ b/DomainDig/Models.swift
@@ -0,0 +1,63 @@
+import Foundation
+
+// MARK: - DNS Models
+
+enum DNSRecordType: String, CaseIterable {
+ case A
+ case AAAA
+ case MX
+ case NS
+ case TXT
+ case CNAME
+
+ var queryType: Int {
+ switch self {
+ case .A: return 1
+ case .AAAA: return 28
+ case .MX: return 15
+ case .NS: return 2
+ case .TXT: return 16
+ case .CNAME: return 5
+ }
+ }
+}
+
+struct DNSRecord: Identifiable {
+ let id = UUID()
+ let value: String
+ let ttl: Int
+}
+
+struct DNSSection: Identifiable {
+ let id = UUID()
+ let recordType: DNSRecordType
+ var records: [DNSRecord]
+ var wildcardRecords: [DNSRecord] = []
+ var error: String?
+}
+
+// MARK: - SSL Models
+
+struct SSLCertificateInfo {
+ let commonName: String
+ let subjectAltNames: [String]
+ let issuer: String
+ let validFrom: Date
+ let validUntil: Date
+ let daysUntilExpiry: Int
+ let chainDepth: Int
+}
+
+// MARK: - Cloudflare DNS-over-HTTPS Response
+
+struct CloudflareDNSResponse: Decodable {
+ let Status: Int
+ let Answer: [CloudflareDNSAnswer]?
+
+ struct CloudflareDNSAnswer: Decodable {
+ let name: String
+ let type: Int
+ let TTL: Int
+ let data: String
+ }
+}