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

import { lazy, object, Schema } from '../schema';
import { Amount, amountSchema } from './amount';
import {
  CreditDebitIndicatorEnum,
  creditDebitIndicatorEnumSchema,
} from './creditDebitIndicatorEnum';
import {
  StatementInterestTypeEnum,
  statementInterestTypeEnumSchema,
} from './statementInterestTypeEnum';

/** Set of elements used to provide details of a generic interest amount related to the statement resource. */
export interface StatementInterest {
  /** Amount of money of the cash balance. */
  amount: Amount;
  /** Indicates whether the balance is a credit or a debit balance. Usage: A zero balance is considered to be a credit balance. */
  creditDebitIndicator: CreditDebitIndicatorEnum;
  /** Interest amount type, in a coded form. */
  type: StatementInterestTypeEnum;
}

export const statementInterestSchema: Schema<StatementInterest> = object({
  amount: ['Amount', lazy(() => amountSchema)],
  creditDebitIndicator: [
    'CreditDebitIndicator',
    creditDebitIndicatorEnumSchema,
  ],
  type: ['Type', statementInterestTypeEnumSchema],
});
