/**
 * Account and Transaction API SpecificationLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

import { lazy, object, optional, Schema, string } from '../schema';
import {
  CreditorReference,
  creditorReferenceSchema,
} from './creditorReference';

export interface Reference {
  creditorName: string;
  creditorReference?: CreditorReference;
  debtorName?: string;
  debtorReference?: CreditorReference;
}

export const referenceSchema: Schema<Reference> = object({
  creditorName: ['CreditorName', string()],
  creditorReference: [
    'CreditorReference',
    optional(lazy(() => creditorReferenceSchema)),
  ],
  debtorName: ['DebtorName', optional(string())],
  debtorReference: [
    'DebtorReference',
    optional(lazy(() => creditorReferenceSchema)),
  ],
});
