// Copyright © 2022 Olo Inc. All rights reserved.
// This software is made available under the Olo Pay SDK License (See LICENSE.md file)
//
//  DataKeys.swift
//  Plugin
//
//  Created by Justin Anderson on 7/26/22.
//

import Foundation

public class DataKeys {
    // SDK Initialization Keys
    public static let ProductionEnvironmentKey = "productionEnvironment"
    public static let ApplePayMerchantIdKey = "applePayMerchantId"
    public static let ApplePayCompanyLabelKey = "applePayCompanyLabel"
    public static let IsInitializedKey = "isInitialized"
    public static let HybridSdkVersionKey = "version"
    public static let HybridBuildTypeKey = "buildType"
    public static let HybridBuildTypePublicValue = "Public"
    public static let HybridBuildTypeInternalValue = "Internal"
    
    
    // Digital Wallet Payment Method Request Keys
    public static let ApplePayAmountKey = "amount"
    public static let ApplePayCountryCodeKey = "countryCode"
    public static let ApplePayCurrencyCodeKey = "currencyCode"
    
    // Payment Method Keys
    public static let PaymentMethodKey = "paymentMethod"
    public static let IDKey = "id"
    public static let Last4Key = "last4"
    public static let CardTypeKey = "cardType"
    public static let ExpirationMonthKey = "expMonth"
    public static let ExpirationYearKey = "expYear"
    public static let PostalCodeKey = "postalCode"
    public static let CountryCodeKey = "countryCode"
    public static let IsDigitalWalletKey = "isDigitalWallet"
    
    // Payment Method Error Keys
    public static let ErrorMessageKey = "errorMessage"
    public static let DigitalWalletTypeKey = "digitalWalletType"
    public static let DigitalWalletTypeValueKey = "applePay"
    
    // Events
    public static let DigitalWalletReadyEvent = "digitalWalletReadyEvent"
    public static let DigitalWalletIsReadyKey = "isReady"
    
    // Plugin Call Rejection Code Keys
    public static let InvalidParameter = "InvalidParameter"
    public static let MissingParameterErrorCode = "MissingParameter"
    public static let UninitializedSdkErrorCode = "SdkUninitialized"
    public static let ApplePayUnsupportedErrorCode = "ApplePayUnsupported"
    
    // Do not rename this key... it maps to an OPError type, but we also
    // use if for some other scenarios in the SDK
    public static let GeneralErrorCode = "generalError"
}
