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

import Foundation

public class ErrorCodes {
    // IMPORTANT: THESE STRINGS MAP DIRECTLY TO TYPES DEFINED IN THE NPM PACKAGE TYPESCRIPT INTERFACE. CHANGING
    // THESE REQUIRES CHANGES TO THE TYPESCRIPT INTERFACE AND ANDROID ERROR CODES
    public static let ApiError = "ApiError"  // Stripe API Error
    public static let ApplePayEmptyMerchantId = "ApplePayEmptyMerchantId"
    public static let ApplePayError = "ApplePayError"
    public static let ApplePayTimeout = "ApplePayTimeout"
    public static let ApplePayUnsupported = "ApplePayUnsupported"
    public static let Authentication = "AuthenticationError"  // Stripe API Error
    public static let Cancellation = "CancellationError"  // Stripe API Error
    public static let CardDeclined = "CardDeclined"  // Stripe Card Exception
    public static let Connection = "ConnectionError"  // Stripe API Error
    public static let DigitalWalletUninitialized = "DigitalWalletUninitialized"
    public static let EmptyCompanyLabel = "EmptyCompanyLabel"
    public static let ExpiredCard = "ExpiredCard"  // Stripe Card Exception
    public static let GeneralError = "generalError"  // DO NOT RENAME... it maps to an OPError type
    public static let InvalidCardDetails = "InvalidCardDetails"  // Stripe Card Exception
    public static let InvalidCountryCode = "InvalidCountryCode"
    public static let InvalidCvv = "InvalidCVV"  // Stripe Card Exception
    public static let InvalidExpiration = "InvalidExpiration"  // Stripe Card Exception
    public static let InvalidNumber = "InvalidNumber"  // Stripe Card Exception
    public static let InvalidParameter = "InvalidParameter"
    public static let InvalidPostalCode = "InvalidPostalCode"  // Stripe Card Exception
    public static let InvalidRequest = "InvalidRequest"  // Stripe API Error
    public static let LineItemsTotalMismatch = "LineItemsTotalMismatch"
    public static let MissingParameter = "MissingParameter"
    public static let ProcessingError = "ProcessingError"  // Stripe Card Exception
    public static let SdkUninitialized = "SdkUninitialized"
    public static let UnexpectedError = "UnexpectedError"
    public static let UnknownCard = "UnknownCard"  // Stripe Card Exception
    public static let ViewNotFound = "ViewNotFound"
}
