// GuruRewardedAd.swift // Base class for rewarded ad implementations // Corresponds to GuruRewardedAd.kt in Android implementation import Foundation import UIKit public struct RewardedShowRequest { public let placement: String? public init(placement: String?) { self.placement = placement } } open class GuruRewardedAd: RelayAd { public let adUnitId: String public let adPlatform: AdPlatform private let name: String public let adType = AdType.Rewarded public init(engineId: Int, adUnitId: String, adPlatform: AdPlatform) { self.adUnitId = adUnitId self.adPlatform = adPlatform self.name = "[RWD-\(adPlatform)]" super.init(engineId: engineId) } // MARK: - Logging Methods public func logInfo(_ message: String) { Logger.i(tag: "RWD-\(adPlatform.name)[\(adUnitId)]", message: message) } public func logWarn(_ message: String) { Logger.w(tag: "RWD-\(adPlatform.name)[\(adUnitId)]", message: message) } public func logDebug(_ message: String) { Logger.d(tag: "RWD-\(adPlatform.name)[\(adUnitId)]", message: message) } public func logError(_ message: String) { Logger.e(tag: "RWD-\(adPlatform.name)[\(adUnitId)]", message: message) } // MARK: - Methods to override open func load() -> Bool { fatalError("Subclass must implement") } open func show(_ request: RewardedShowRequest? = nil) -> Bool { fatalError("Subclass must implement") } open func destroy() -> Bool { fatalError("Subclass must implement") } }