/**
 * PostNL Ecommerce APIsLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

import { number, object, optional, Schema, string } from '../schema';

export interface Amount {
  /** Amount type. Please see [Amount types](#tag/Reference-codes/Amount-types) for the available types. */
  amountType: string;
  /** Name of bank account owner */
  accountName?: string;
  /** BIC number,optional for COD shipments (mandatory for bank account number other than originating in The Netherlands) */
  bIC?: string;
  /** Currency code. only EUR, GBP, USD and CNY are allowed. */
  currency?: string;
  /** IBAN bank account number,mandatory for COD shipments. Dutch IBAN numbers are 18 characters */
  iBAN?: string;
  /** Personal payment reference */
  reference?: string;
  /** Transaction number */
  transactionNumber?: string;
  /** Money value in EUR (unless value Currency is specified for another currency). Value format (N6.2): #####0.00 (2 digits behind decimal dot). Mandatory for COD, Insured products (with the exception of certain productcodes with a standard insured amount). */
  value: number;
}

export const amountSchema: Schema<Amount> = object({
  amountType: ['AmountType', string()],
  accountName: ['AccountName', optional(string())],
  bIC: ['BIC', optional(string())],
  currency: ['Currency', optional(string())],
  iBAN: ['IBAN', optional(string())],
  reference: ['Reference', optional(string())],
  transactionNumber: ['TransactionNumber', optional(string())],
  value: ['Value', number()],
});
