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

import { array, boolean, lazy, object, optional, Schema } from '../schema.js';
import { Payers, payersSchema } from './payers.js';

export interface PayerRequest {
  /**
   * List of Payer entity.
   * Optional.
   * Note:
   * •    Max number of payers allowed in the input is 10, if it exceeds in the input it will throw an error.
   * •    This value is configurable. Initial configuration will be 1000 and will change to 10 once SFH changes are integrated.
   */
  payers?: Payers[];
  /** Returns only the high-level basic details of payers. Set this field to ‘true’ when only the basic details are required to get the result quicker. */
  returnBasicDetailsOnly?: boolean;
  /** Include address related fields on the response. Set this field to ‘False’ when Address fields are not required to get the result quicker. */
  includeAddresses?: boolean;
  /** Include the Finance Currency, used for Finance Widget, in the response */
  includeBonusParameters?: boolean;
}

export const payerRequestSchema: Schema<PayerRequest> = lazy(() =>
  object({
    payers: ['Payers', optional(array(payersSchema))],
    returnBasicDetailsOnly: ['ReturnBasicDetailsOnly', optional(boolean())],
    includeAddresses: ['IncludeAddresses', optional(boolean())],
    includeBonusParameters: ['IncludeBonusParameters', optional(boolean())],
  })
);
