/* tslint:disable */ /* eslint-disable */ /** * loanproducts * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: v2 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ // May contain unused imports in some cases // @ts-ignore import type { DecimalInterval } from './decimal-interval'; // May contain unused imports in some cases // @ts-ignore import type { InterestRateTier } from './interest-rate-tier'; /** * The interest settings, defines constraints regarding interest that will be used on the loan account created based on this product. */ export interface InterestProductSettings { /** * If the product supports this option, specify if the interest should be accrued after the account maturity date */ accrueInterestAfterMaturity?: boolean; /** * Indicator whether the loan product allows negative values for interest rate or interest spread */ allowNegativeInterestRate?: boolean; /** * The encoded key of the interest rate tier, auto generated, unique */ encodedKey?: string; /** * Index rate source key. */ indexSourceKey?: string; /** * The interest change frequency method for a loan account. Shows the possible methods for obtaining the balance based on which the interest will be calculated for loan repayment. */ interestChargeFrequency?: InterestProductSettingsInterestChargeFrequencyEnum; /** * the count of units to apply over the interval */ interestChargeFrequencyCount?: number; interestRate?: DecimalInterval; /** * Interest spread + index interest rate can\'t be more than this amount (valid only for index interest rate products). */ interestRateCeilingValue?: number; /** * Interest spread + index interest rate can\'t be less than this amount (valid only for index interest rate products). */ interestRateFloorValue?: number; /** * Interest rate review frequency unit count */ interestRateReviewCount?: number; /** * The interest rate review unit values. Shows how often is index interest rate reviewed. */ interestRateReviewUnit?: InterestProductSettingsInterestRateReviewUnitEnum; /** * The interest rate review unit values. Shows how often is index interest rate reviewed. */ interestRateSource?: InterestProductSettingsInterestRateSourceEnum; /** * The option for how is the interest rate determined when being accrued for an account */ interestRateTerms?: InterestProductSettingsInterestRateTermsEnum; /** * The list of interest rate tiers available for the current settings instance */ interestRateTiers?: Array; } export const InterestProductSettingsInterestChargeFrequencyEnum = { Annualized: 'ANNUALIZED', EveryMonth: 'EVERY_MONTH', EveryFourWeeks: 'EVERY_FOUR_WEEKS', EveryWeek: 'EVERY_WEEK', EveryDay: 'EVERY_DAY', EveryXDays: 'EVERY_X_DAYS', } as const; export type InterestProductSettingsInterestChargeFrequencyEnum = (typeof InterestProductSettingsInterestChargeFrequencyEnum)[keyof typeof InterestProductSettingsInterestChargeFrequencyEnum]; export const InterestProductSettingsInterestRateReviewUnitEnum = { Days: 'DAYS', Weeks: 'WEEKS', Months: 'MONTHS', } as const; export type InterestProductSettingsInterestRateReviewUnitEnum = (typeof InterestProductSettingsInterestRateReviewUnitEnum)[keyof typeof InterestProductSettingsInterestRateReviewUnitEnum]; export const InterestProductSettingsInterestRateSourceEnum = { FixedInterestRate: 'FIXED_INTEREST_RATE', IndexInterestRate: 'INDEX_INTEREST_RATE', } as const; export type InterestProductSettingsInterestRateSourceEnum = (typeof InterestProductSettingsInterestRateSourceEnum)[keyof typeof InterestProductSettingsInterestRateSourceEnum]; export const InterestProductSettingsInterestRateTermsEnum = { Fixed: 'FIXED', Tiered: 'TIERED', TieredPeriod: 'TIERED_PERIOD', TieredBand: 'TIERED_BAND', } as const; export type InterestProductSettingsInterestRateTermsEnum = (typeof InterestProductSettingsInterestRateTermsEnum)[keyof typeof InterestProductSettingsInterestRateTermsEnum];