summaryrefslogtreecommitdiff
path: root/DomainDig/Models.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-22 10:14:30 -0500
committerChristian Cleberg <[email protected]>2026-04-22 10:14:30 -0500
commit9384a668bf36f23f71e25d05b490d1040d308845 (patch)
tree6681f4b262a9414c7fc96148652599215b7973fc /DomainDig/Models.swift
parent7b41195620eadd54d25fa98dcd36735cba906ba3 (diff)
downloaddomain-dig-9384a668bf36f23f71e25d05b490d1040d308845.tar.gz
domain-dig-9384a668bf36f23f71e25d05b490d1040d308845.tar.bz2
domain-dig-9384a668bf36f23f71e25d05b490d1040d308845.zip
feat(v2.8.0): add workflows and repeatable inspection automation
* introduce DomainWorkflow model and persistence * add WorkflowsView and execution flow * support batch inspection via workflows * add workflow-based export (TXT/CSV/JSON) * enable bulk add from history/watchlist * add quick actions for common operations * integrate workflows with tracking and history
Diffstat (limited to 'DomainDig/Models.swift')
-rw-r--r--DomainDig/Models.swift45
1 files changed, 45 insertions, 0 deletions
diff --git a/DomainDig/Models.swift b/DomainDig/Models.swift
index 60e5852..0c2b4c2 100644
--- a/DomainDig/Models.swift
+++ b/DomainDig/Models.swift
@@ -223,6 +223,7 @@ struct DomainChangeSummary: Codable, Equatable {
enum BatchLookupSource: String, Codable {
case manual
case watchlistRefresh
+ case workflow
}
enum BatchLookupStatus: String, Codable {
@@ -276,6 +277,13 @@ struct BatchLookupResult: Identifiable, Codable, Equatable {
self.status = status
self.errorMessage = errorMessage
}
+
+ var hasMeaningfulChange: Bool {
+ quickStatus == "Changed"
+ || quickStatus == "High"
+ || certificateWarningLevel != .none
+ || status == .failed
+ }
}
struct BatchSweepSummary: Identifiable, Equatable {
@@ -289,6 +297,43 @@ struct BatchSweepSummary: Identifiable, Equatable {
let generatedAt: Date
}
+struct DomainWorkflow: Codable, Identifiable, Equatable {
+ let id: UUID
+ var name: String
+ var domains: [String]
+ var createdAt: Date
+ var updatedAt: Date
+ var notes: String?
+
+ init(
+ id: UUID = UUID(),
+ name: String,
+ domains: [String],
+ createdAt: Date = Date(),
+ updatedAt: Date = Date(),
+ notes: String? = nil
+ ) {
+ self.id = id
+ self.name = name
+ self.domains = domains
+ self.createdAt = createdAt
+ self.updatedAt = updatedAt
+ self.notes = notes
+ }
+}
+
+struct WorkflowRunSummary: Identifiable, Equatable {
+ let id = UUID()
+ let workflowID: UUID
+ let workflowName: String
+ let totalDomains: Int
+ let changedDomains: Int
+ let unchangedDomains: Int
+ let warningDomains: Int
+ let results: [BatchLookupResult]
+ let generatedAt: Date
+}
+
enum DataCapability: String, Codable {
case ownershipHistory
case dnsHistory