import APIClient
import Foundation

public struct CommentsAccessMap: Equatable {
    public static let defaultValue: CommentsAccessMap = .init(accessMap: [:])

    public init(accessMap: [String: Bool]) {
        self.accessMap = accessMap
    }

    // Entity ID (i.e. hookId, clipId, etc.) : Can Access
    private let accessMap: [String: Bool]

    public func areCommentsEnabledOnEntity(_ entityId: String, entityType: CommentEntity.CommentEntityType) -> Bool {
        let cacheKey = "\(entityType.rawValue):\(entityId)"
        guard let access = accessMap[cacheKey] else { return false }
        return access
    }
}
