//
//  TrackPurchaseParameters.swift
//  react-native-firework-sdk
//
//  Created by linjie jiang on 2022/9/27.
//

import Foundation
import FireworkVideo

struct PurchaseProduct: Codable {
    var extProductId: String?
    var price: Double
    var quantity: Int
    var productName: String?
    var sku: String?

    func generateFWLineItem() -> FireworkVideo.LineItem {
        var lineItemSku = extProductId ?? ""
        if let sku = sku, !sku.isEmpty {
            lineItemSku = sku
        }
        return FireworkVideo.LineItem(
            sku: lineItemSku,
            price: price.fwDecimalValue ?? 0,
            quantity: quantity,
            productName: productName
        )
    }
}

struct TrackPurchaseParameters: Codable {
    var orderId: String
    var value: Double?
    var currencyCode: String?
    var countryCode: String?
    var shippingPrice: Double?
    var subtotal: Double?
    var totalDiscounts: Double?
    var products: [PurchaseProduct]?
    var additionalInfo: [String: String]?
}
