import Foundation
import StoreKit

struct PurchaseKitProduct: Encodable {
  let id: String
  let name: String
  let price: PurchaseKitPrice
  @Nullable var subscription: PurchaseKitSubscription?
}

@available(iOS 15.0, *)
func parseProduct(_ product: Product) -> PurchaseKitProduct {
  let subscription = parseSubscription(product)

  let price = PurchaseKitPrice(
    value: product.price,
    currency: product.priceFormatStyle.currencyCode,
    localized: product.displayPrice
  )

  return PurchaseKitProduct(
    id: product.id,
    name: product.displayName,
    price: price,
    subscription: subscription
  )
}
