//
//  CfLogPayments.swift
//  ReactNativeCfPayments
//
//  Created by MOIZ HASSAN KHAN on 17/12/23.
//  Copyright © 2023 Facebook. All rights reserved.
//

import Foundation
import CausalFoundrySDKPayments

@objc(CfLogPayments)
class CfLogPayments: NSObject {

   @objc
    func logDeferredPaymentEvent(_ orderId: String, paymentId: String, paymentMethod: String, paymentAction: String, accountBalance: NSNumber, paymentAmount: NSNumber, currency: String, isSuccessful: Bool, updateImmediately: Bool) {
        
        let accountBalancefloatValue = accountBalance.floatValue
        let paymentAmountfloatValue = paymentAmount.floatValue

        CfLogDeferredPaymentEvent()
            .setOrderId(orderId: orderId)
            .setPaymentId(paymentId: paymentId)
            .setPaymentMethod(paymentMethod: paymentMethod)
            .setPaymentAction(action: paymentAction)
            .setAccountBalance(accountBalance: accountBalancefloatValue)
            .setPaymentAmount(paymentAmount: paymentAmountfloatValue)
            .setCurrency(currency: currency)
            .isSuccessful(isSuccessful: isSuccessful)
            .updateImmediately(updateImmediately: updateImmediately)
            .build()
   }
    
    
    @objc
     func logPaymentMethodEvent(_ paymentId: String, orderId: String, paymentMethod: String, paymentAction: String, paymentAmount: NSNumber, currency: String, updateImmediately: Bool) {
         
         let paymentAmountfloatValue = paymentAmount.floatValue

         CfLogPaymentMethodEvent()
             .setPaymentId(paymentId: paymentId)
             .setOrderId(orderId: orderId)
             .setPaymentMethod(paymentMethod: paymentMethod)
             .setPaymentAction(action: paymentAction)
             .setPaymentAmount(paymentAmount: paymentAmountfloatValue)
             .setCurrency(currencyValue: currency)
             .updateImmediately(updateImmediately: updateImmediately)
             .build()
    }
    
   

    @objc
      static func requiresMainQueueSetup() -> Bool {
        return true
      }

}




