//
//  SDKInitOptions.swift
//
//  Created by linjie jiang on 2023/3/8.
//

import Foundation
import FireworkVideo

public struct SDKInitOptions: Codable {
    public var videoLaunchBehavior: FWRVideoLaunchBehavior?
    public init(videoLaunchBehavior: FWRVideoLaunchBehavior? = nil) {
        self.videoLaunchBehavior = videoLaunchBehavior
    }
}

public enum FWRVideoLaunchBehavior: String, Codable {
    case `default`, muteOnFirstLaunch
}

extension FWRVideoLaunchBehavior {
    func behavior() -> VideoPlayerContentConfiguration.VideoLaunchBehavior {
        switch self {
        case .muteOnFirstLaunch:
            return .muteOnFirstLaunch
        default:
            return .`default`
        }
    }

    func storyBlockBehavior() -> FireworkVideo.StoryBlockConfiguration.FirstDisplayBehavior {
        switch self {
        case .muteOnFirstLaunch:
            return .`default`
        default:
            return .unmuted
        }
    }

    func playerDeckBehavior() -> FireworkVideo.PlayerDeckItemContentConfiguration.FirstDisplayMuteState {
        switch self {
        case .muteOnFirstLaunch:
            return .muted
        default:
            return .unmuted
        }
    }
}
