summaryrefslogtreecommitdiff
path: root/DomainDig/PremiumAccessService.swift
blob: 698a2d2f35316d61b0cd7b45fa830b65e449298e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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
    }
}