/**
* Shell Data & Reporting APIsLib
*
* This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
*/
import {
array,
boolean,
lazy,
nullable,
number,
object,
optional,
Schema,
string,
} from '../schema.js';
import { CartTypeAccount, cartTypeAccountSchema } from './cartTypeAccount.js';
import {
PurchaseCategories,
purchaseCategoriesSchema,
} from './purchaseCategories.js';
export interface CardTypeResponseCustomerCardTypesItems {
/** Card Type Id in Cards Platform. */
cardTypeId?: number;
/** Token type identifier. */
tokenTypeId?: number;
/** Card Type Name. */
cardTypeName?: string;
/** Token Type Name. */
tokenTypeName?: string;
/** PAN Length. */
pANLength?: number;
/** Default Expiry period. */
expiryPeriod?: number;
/** True/False – Whether it is a National Card type or not. */
isNational?: boolean;
/** True/False – Whether it is an International Card type or not. */
isInternational?: boolean;
/** True/False – Wether it is a CRT Card type or not. */
isCRT?: boolean;
/** True/False – Whether it is it a Fleet Card typeor not. */
isFleet?: boolean;
/** True/False – Whether it is only allowed in Shell Stations or not. */
isShellSitesOnly?: boolean;
/** True/False – Whether this card type is allowed in partner Stations. */
isPartnerSitesIncluded?: boolean;
/** True/False – Whether the cards of this card type can have PIN. */
canHavePIN?: boolean;
/** True/False - Whether it is a Virtual Card type or not. */
isVirtual?: boolean;
/** Whether card type is active or not. */
isActive?: boolean;
/** Whether card type is available for download. */
isCardAvailableForDownload?: boolean | null;
/** ISO currency code of the country. */
colCoCurrencyCode?: string;
/** Currency symbol of the country. */
colCoCurrencySymbol?: string;
/** Is Europay, MasterCard, and Visa Contactless enabled or not. */
eMVContactless?: boolean | null;
/** Whether the card type is enabled for RFID (Radio Frequency Identification) */
rFID?: boolean | null;
/** PIN change supported or not. */
pINChangeSupported?: boolean | null;
/** Whether a PIN is mandatory for the cards of this card type. */
requirePIN?: boolean | null;
/** Whether offline PIN is enabled or not. */
offlinePIN?: boolean | null;
/** Id of the medium type identifier.
Full list below -
1 - Fuel Card
2 - Fuel Card with EV
3 - EV only
4 - Fuel Card and Key Fob
5 - Key Fob
6 - Virtual Card
7 - NPII Token
8 – Smartpay Token */
mediumTypeID?: number;
/** Name of the medium type identifier.
Full list below -
1 - Fuel Card
2 - Fuel Card with EV
3 - EV only
4 - Fuel Card and Key Fob
5 - Key Fob
6 - Virtual Card
7 - NPII Token
8 – Smartpay Token */
mediumType?: string;
/** List of accounts. */
cartTypeAccounts?: CartTypeAccount[];
purchaseCategories?: PurchaseCategories[] | null;
}
export const cardTypeResponseCustomerCardTypesItemsSchema: Schema = lazy(
() =>
object({
cardTypeId: ['CardTypeId', optional(number())],
tokenTypeId: ['TokenTypeId', optional(number())],
cardTypeName: ['CardTypeName', optional(string())],
tokenTypeName: ['TokenTypeName', optional(string())],
pANLength: ['PANLength', optional(number())],
expiryPeriod: ['ExpiryPeriod', optional(number())],
isNational: ['IsNational', optional(boolean())],
isInternational: ['IsInternational', optional(boolean())],
isCRT: ['IsCRT', optional(boolean())],
isFleet: ['IsFleet', optional(boolean())],
isShellSitesOnly: ['IsShellSitesOnly', optional(boolean())],
isPartnerSitesIncluded: ['IsPartnerSitesIncluded', optional(boolean())],
canHavePIN: ['CanHavePIN', optional(boolean())],
isVirtual: ['IsVirtual', optional(boolean())],
isActive: ['IsActive', optional(boolean())],
isCardAvailableForDownload: [
'IsCardAvailableForDownload',
optional(nullable(boolean())),
],
colCoCurrencyCode: ['ColCoCurrencyCode', optional(string())],
colCoCurrencySymbol: ['ColCoCurrencySymbol', optional(string())],
eMVContactless: ['EMVContactless', optional(nullable(boolean()))],
rFID: ['RFID', optional(nullable(boolean()))],
pINChangeSupported: ['PINChangeSupported', optional(nullable(boolean()))],
requirePIN: ['RequirePIN', optional(nullable(boolean()))],
offlinePIN: ['OfflinePIN', optional(nullable(boolean()))],
mediumTypeID: ['MediumTypeID', optional(number())],
mediumType: ['MediumType', optional(string())],
cartTypeAccounts: [
'CartTypeAccounts',
optional(array(cartTypeAccountSchema)),
],
purchaseCategories: [
'PurchaseCategories',
optional(nullable(array(purchaseCategoriesSchema))),
],
})
);