diff options
| author | Christian Cleberg <[email protected]> | 2026-04-22 10:14:30 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-22 10:14:30 -0500 |
| commit | 9384a668bf36f23f71e25d05b490d1040d308845 (patch) | |
| tree | 6681f4b262a9414c7fc96148652599215b7973fc /DomainDig/Models.swift | |
| parent | 7b41195620eadd54d25fa98dcd36735cba906ba3 (diff) | |
| download | domain-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.swift | 45 |
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 |
