/**
* Shell Data & Reporting APIsLib
*
* This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
*/
import {
boolean,
lazy,
nullable,
number,
object,
optional,
Schema,
string,
} from '../schema.js';
import {
CardDayTimeRestrictions,
cardDayTimeRestrictionsSchema,
} from './cardDayTimeRestrictions.js';
import {
CardUsageRestrictions,
cardUsageRestrictionsSchema,
} from './cardUsageRestrictions.js';
export interface CartTypeAccount {
/** Account Id of the customer. */
accountId?: number | null;
/** Account Number of the customer. */
accountNumber?: string;
/** Whether card type is default or not. */
isDefault?: boolean;
/** Customer Card Type Id in Cards Platform. */
customerCardTypeId?: number;
/** True/False – Whether the card type can be used for card ordering.
Note - IsVisibleToCustomers will be set as ‘false’ when the card type is not active or. configured in MS to be not visible. */
isVisibleToCustomers?: boolean;
/** Default Name to be embossed on the card. */
embossAccountName?: string;
/** Default Purchase category of the card type. */
defaultPurchaseCategoryId?: number;
usageRestrictions?: CardUsageRestrictions;
dayTimeRestrictions?: CardDayTimeRestrictions;
}
export const cartTypeAccountSchema: Schema = lazy(() =>
object({
accountId: ['AccountId', optional(nullable(number()))],
accountNumber: ['AccountNumber', optional(string())],
isDefault: ['IsDefault', optional(boolean())],
customerCardTypeId: ['CustomerCardTypeId', optional(number())],
isVisibleToCustomers: ['IsVisibleToCustomers', optional(boolean())],
embossAccountName: ['EmbossAccountName', optional(string())],
defaultPurchaseCategoryId: [
'DefaultPurchaseCategoryId',
optional(number()),
],
usageRestrictions: [
'UsageRestrictions',
optional(cardUsageRestrictionsSchema),
],
dayTimeRestrictions: [
'DayTimeRestrictions',
optional(cardDayTimeRestrictionsSchema),
],
})
);