summaryrefslogtreecommitdiff
path: root/DomainDig/PremiumAccessService.swift
diff options
context:
space:
mode:
Diffstat (limited to 'DomainDig/PremiumAccessService.swift')
-rw-r--r--DomainDig/PremiumAccessService.swift27
1 files changed, 27 insertions, 0 deletions
diff --git a/DomainDig/PremiumAccessService.swift b/DomainDig/PremiumAccessService.swift
new file mode 100644
index 0000000..698a2d2
--- /dev/null
+++ b/DomainDig/PremiumAccessService.swift
@@ -0,0 +1,27 @@
+import Foundation
+
+enum PremiumAccessService {
+ static let freeTrackedDomainLimit = 3
+
+ static func hasAccess(to capability: PremiumCapability) -> Bool {
+ switch capability {
+ case .unlimitedTrackedDomains,
+ .automatedMonitoring,
+ .pushAlerts,
+ .batchTracking,
+ .advancedExports:
+ return false
+ }
+ }
+
+ static func trackedDomainLimitMessage(currentCount: Int) -> String? {
+ guard currentCount >= freeTrackedDomainLimit, !hasAccess(to: .unlimitedTrackedDomains) else {
+ return nil
+ }
+ return "More tracked domains will be available in a future Pro upgrade."
+ }
+
+ static func canAddTrackedDomain(currentCount: Int) -> Bool {
+ hasAccess(to: .unlimitedTrackedDomains) || currentCount < freeTrackedDomainLimit
+ }
+}