//
//  Product.swift
//  react-native-firework-sdk
//
//  Created by Jeff Zheng on 2021/12/30.
//

import Foundation

struct Product: Codable {
    var productId: String
    var name: String?
    var subtitle: String?
    var currency: String?
    var description: String?
    var isAvailable: Bool?
    var mainProductImage: String?
    var isDisabled: Bool?
    var hidePrice: Bool?
    var customCTATitleTranslation: String?
    var hidePrimaryCTA: Bool?
    var customCTATarget: String?
    var customCTAUrl: String?
    var customCTATitle: String?
    var hidden: Bool?
    var units: [ProductUnit]?

    struct ProductUnit: Codable {
        var unitId: String
        var name: String?
        var price: Price?
        var originalPrice: Price?
        var url: String?
        var imageUrl: String?
        var isAvailable: Bool?
        var options: [VariantOption]?
    }

    struct Price: Codable {
        var amount: Double?
        var currencyCode: String?
    }

    struct VariantOption: Codable, Equatable {
        var name: String?
        var value: String?
    }
}
