// Copyright © 2022 Olo Inc. All rights reserved.
// This software is made available under the Olo Pay SDK License (See LICENSE.md file)
//
//  DataKeys.swift
//  OlopaysdkReactNative
//
//  Created by Justin Anderson on 1/19/23.
//  Copyright © 2023 Facebook. All rights reserved.
//

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"

    // OnCardChange Keys
    public static let InvalidFieldsKey = "invalidFields"
    public static let EmptyFieldsKey = "emptyFields"
    public static let ErrorsKey = "errors"
    public static let EditedFieldsErrorKey = "editedFieldsError"
    public static let AllFieldsErrorKey = "allFieldsError"

    // OnFocusField Keys
    public static let FieldKey = "field"

    //CvvDetailsChangedEvent Keys
    public static let EditedFieldErrorKey = "editedFieldError"
    public static let UneditedFieldErrorKey = "uneditedFieldError"
    
    //Field State Keys
    public static let StateKey = "state"
    public static let IsEmptyKey = "isEmpty"
    public static let isFocusedKey = "isFocused"
    public static let IsValidKey = "isValid"
    public static let WasEditedKey = "wasEdited"
    public static let WasFocusedKey = "wasFocused"
    
    // View Style Keys
    public static let BorderWidthKey = "borderWidth"
    public static let BackgroundColorKey = "backgroundColor"
    public static let BorderColorKey = "borderColor"
    public static let CornerRadiusKey = "cornerRadius"
    public static let CursorColorKey = "cursorColor"
    public static let TextColorKey = "textColor"
    public static let ErrorTextColorKey = "errorTextColor"
    public static let PlaceholderColorKey = "placeholderColor"
    public static let FontSizeKey = "fontSize"
    public static let FontFamilyKey = "fontFamily"
    public static let NumberPlaceholderKey = "number"
    public static let ExpirationPlaceholderKey = "expiration"
    public static let CvvPlaceholderKey = "cvv"
    public static let PostalCodePlaceholderKey = "postalCode"
    public static let CvvTextPaddingLeftInsetKey = "textPaddingLeft"
    public static let CvvTextPaddingRightInsetKey = "textPaddingRight"
    public static let TextAlignKey = "textAlign"
    
    // Events
    public static let DigitalWalletReadyEvent = "digitalWalletReadyEvent"
    public static let DigitalWalletIsReadyKey = "isReady"

    // Component Method Call Rejection Code Keys
    public static let ViewNotFoundErrorCode = "ViewNotFound"
    
    // Error Types
    public static let emptyErrorKey = "emptyError"
    public static let invalidErrorKey = "invalidError"
    
    // Custom Error Message Keys
    public static let unsupportedCardErrorKey = "unsupportedCardError"
    
    // Alignment keys
    public static let AlignmentCenterKey = "center"
    public static let AlignmentRightKey = "right"
}
