summaryrefslogtreecommitdiff
path: root/DomainReportExporter.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-07-17 11:18:25 -0500
committerChristian Cleberg <[email protected]>2026-07-20 13:56:41 -0500
commitfd8ca178a379da71f5bb19c461524888cad9447e (patch)
treeadb481e4c7c22e41e919b97ccded0e506083f9b3 /DomainReportExporter.swift
parent2b52ee5520cad3c47d30d513946645366f268762 (diff)
downloaddomain-dig-fd8ca178a379da71f5bb19c461524888cad9447e.tar.gz
domain-dig-fd8ca178a379da71f5bb19c461524888cad9447e.tar.bz2
domain-dig-fd8ca178a379da71f5bb19c461524888cad9447e.zip
v4.8.0: Add scheduled report generation
- ScheduledReportService (@MainActor, headless/storage-backed like DomainMonitoringService): builds the latest report for every tracked domain from persisted history, exports it via DomainReportExporter in the configured format (markdown/PDF/JSON), writes it to a local Documents subdirectory, logs the run, and fires a "Scheduled Report Ready" local notification. - ScheduledReportScheduler mirrors DomainMonitoringScheduler's BGTaskScheduler approach with its own task identifier (net.cleberg.DomainDig.report.schedule, added to Info.plist) and a daily/weekly cadence. - ScheduledReportsView (Settings → Scheduled Reports): enable toggle, cadence and format pickers, "Generate Now", and a log of past reports each shareable via the existing ExportPresenter share sheet. - Gated behind the existing .automatedMonitoring capability (Pro), consistent with monitoring being the other background-automation feature. - Settings/logs persist via UserDefaults (DomainExportFormat is now Codable), not DomainDataPortabilityService backup/restore — this is local automation configuration, not user-authored content, same reasoning as v4.7.0's watchlist saved views.
Diffstat (limited to 'DomainReportExporter.swift')
-rw-r--r--DomainReportExporter.swift2
1 files changed, 1 insertions, 1 deletions
diff --git a/DomainReportExporter.swift b/DomainReportExporter.swift
index 1a04c70..7199d03 100644
--- a/DomainReportExporter.swift
+++ b/DomainReportExporter.swift
@@ -4,7 +4,7 @@ import Foundation
import UIKit
#endif
-enum DomainExportFormat: String, CaseIterable, Identifiable {
+enum DomainExportFormat: String, CaseIterable, Identifiable, Codable {
case text = "txt"
case csv = "csv"
case json = "json"