import UIKit

/**
    Integration case title template - [IntegrationKind] [AdFormat] [Size]
    [IntegrationKind] - In-App, AdMob, MAX
    [AdFormat] - "Display Banner", "Mrec Banner", "Display Interstitial", "Video Interstitial", "Video Rewarded", "Native"
    [Size] - size of ad, f.e. 320x50
 */

struct IntegrationCaseManager {
    
    static var allCases: [IntegrationCase] = [
        IntegrationCase(
            title: "In-App Display Banner 320x50",
            integrationKind: .inApp,
            adFormat: .displayBanner,
            configurationClosure: {
                InAppDisplayBannerViewController()
            }
        ),
        
        IntegrationCase(
            title: "In-App Mrec Banner 300x250",
            integrationKind: .inApp,
            adFormat: .videoBanner,
            configurationClosure: {
                InAppMrecBannerViewController(adSize: CGSize(width: 300, height: 250))
            }
        ),
        
        IntegrationCase(
            title: "In-App Display Interstitial 320x480",
            integrationKind: .inApp,
            adFormat: .displayInterstitial,
            configurationClosure: {
                InAppDisplayInterstitialViewController()
            }
        ),
        
        IntegrationCase(
            title: "In-App Video Interstitial 320x480",
            integrationKind: .inApp,
            adFormat: .videoInterstitial,
            configurationClosure: {
                InAppVideoInterstitialViewController()
            }
        ),
        
        IntegrationCase(
            title: "In-App Video Rewarded 320x480",
            integrationKind: .inApp,
            adFormat: .videoRewarded,
            configurationClosure: {
                InAppVideoRewardedViewController()
            }
        ),
        
        IntegrationCase(
            title: "In-App Native",
            integrationKind: .inApp,
            adFormat: .native,
            configurationClosure: {
                InAppNativeViewController()
            }
        ),
        
        IntegrationCase(
            title: "AdMob Display Banner 320x50",
            integrationKind: .adMob,
            adFormat: .displayBanner,
            configurationClosure: {
                AdMobDisplayBannerViewController()
            }
        ),
        
        IntegrationCase(
            title: "AdMob Mrec Banner 300x250",
            integrationKind: .adMob,
            adFormat: .videoBanner,
            configurationClosure: {
                AdMobMrecBannerViewController(adSize: CGSize(width: 300, height: 250))
            }
        ),
        
        IntegrationCase(
            title: "AdMob Display Interstitial 320x480",
            integrationKind: .adMob,
            adFormat: .displayInterstitial,
            configurationClosure: {
                AdMobDisplayInterstitialViewController()
            }
        ),
        
        IntegrationCase(
            title: "AdMob Video Interstitial 320x480",
            integrationKind: .adMob,
            adFormat: .videoInterstitial,
            configurationClosure: {
                AdMobVideoInterstitialViewController()
            }
        ),
        
        IntegrationCase(
            title: "AdMob Video Rewarded 320x480",
            integrationKind: .adMob,
            adFormat: .videoRewarded,
            configurationClosure: {
                AdMobVideoRewardedViewController()
            }
        ),
        
        IntegrationCase(
            title: "AdMob Native",
            integrationKind: .adMob,
            adFormat: .native,
            configurationClosure: {
                AdMobNativeViewController()
            }
        ),
        
        IntegrationCase(
            title: "MAX Display Banner 320×50",
            integrationKind: .max,
            adFormat: .displayBanner,
            configurationClosure: {
                MAXDisplayBannerViewController()
            }
        ),
        
        IntegrationCase(
            title: "MAX Mrec Banner 300x250",
            integrationKind: .max,
            adFormat: .videoBanner,
            configurationClosure: {
                MAXMrecBannerViewController(adSize: CGSize(width: 300, height: 250))
            }
        ),
        
        IntegrationCase(
            title: "MAX Display Interstitial 320x480",
            integrationKind: .max,
            adFormat: .displayInterstitial,
            configurationClosure: {
                MAXDisplayInterstitialViewController()
            }
        ),
        
        IntegrationCase(
            title: "MAX Video Interstitial 320x480",
            integrationKind: .max,
            adFormat: .videoInterstitial,
            configurationClosure: {
                MAXVideoInterstitialViewController()
            }
        ),
        
        IntegrationCase(
            title: "MAX Video Rewarded 320x480",
            integrationKind: .max,
            adFormat: .videoRewarded,
            configurationClosure: {
                MAXVideoRewardedViewController()
            }
        ),
        
        IntegrationCase(
            title: "MAX Native",
            integrationKind: .max,
            adFormat: .native,
            configurationClosure: {
                MAXNativeViewController(adSize: CGSize(width: 320, height: 420))
            }
        ),
    ]
}
