From e11b7d29a6aa9e52f63fcb35ee7ed9127850fffe Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Wed, 11 Mar 2026 22:01:24 -0500 Subject: initial commit --- DomainDig/Models.swift | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 DomainDig/Models.swift (limited to 'DomainDig/Models.swift') 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 + } +} -- cgit v1.2.3