//
//  BlazePlayerEvent+Extensions.swift
//  blaze-rtn-sdk
//
//  Created by Paz Shmider on 30/05/2024.
//

import Foundation
import BlazeSDK

extension BlazePlayerEvent {
    
    var toReactEventType: String? {
        switch self {
        case .onMomentStart:
            return "OnMomentStart"
        case .onStoryStart:
            return "OnStoryStart"
        }
    }
    
    var toReactEventParams: String? {
        let encodable: Encodable
        switch self {
        case .onMomentStart(let params):
            encodable = params.toReactValue
        case .onStoryStart(let params):
            encodable = params.toReactValue
        }
        
        return encodable.asJsonString
    }
}

struct BlazePlayerEventRTNOnMomentStartParams: Encodable {
    let momentId: String

}

struct BlazePlayerEventRTNOnStoryStartParams: Encodable {
    let storyId: String
}

extension BlazePlayerEvent.OnMomentStartParams {
    var toReactValue: BlazePlayerEventRTNOnMomentStartParams {
        return .init(momentId: momentId)
    }
}

extension BlazePlayerEvent.OnStoryStartParams {
    var toReactValue: BlazePlayerEventRTNOnStoryStartParams {
        return .init(storyId: storyId)
    }
}
