/* 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 { InterestProductSettings } from './interest-product-settings'; // May contain unused imports in some cases // @ts-ignore import type { PMTAdjustmentThreshold } from './pmtadjustment-threshold'; // May contain unused imports in some cases // @ts-ignore import type { ProductInterestRateSettings } from './product-interest-rate-settings'; /** * The interest settings, defines constraints regarding interest that will be used on the loan account crated based on this product. */ export interface ProductInterestSettings { /** * Whether late interest should be accrued, applied and paid */ accrueLateInterest?: boolean; /** * The frequency on which the accrued interest will be added to the principal for interest calculation. It is used only for InterestType.COMPOUNDING_INTEREST */ compoundingFrequency?: ProductInterestSettingsCompoundingFrequencyEnum; /** * The days in year that should be used for loan calculations. */ daysInYear: ProductInterestSettingsDaysInYearEnum; /** * Whether interest from arrears is decoupled from regular interest. (Only accepted or returned if the feature is enabled.) */ decoupleInterestFromArrears?: boolean; indexRateSettings?: InterestProductSettings; /** * The interest application method for a loan account. It shows the method used by the loans defining how the interest gets applied. */ interestApplicationMethod?: ProductInterestSettingsInterestApplicationMethodEnum; /** * The interest balance calculation method for a loan account. Shows the possible methods for obtaining the balance based on which the interest will be calculated for loan repayment. */ interestBalanceCalculationMethod?: ProductInterestSettingsInterestBalanceCalculationMethodEnum; /** * The interest calculation method for a loan account. Shows the different interest calculation methods. */ interestCalculationMethod: ProductInterestSettingsInterestCalculationMethodEnum; /** * Adjustable interest rates settings */ interestRateSettings?: Array; /** * The possible values for how we compute and apply the interest */ interestType?: ProductInterestSettingsInterestTypeEnum; pmtAdjustmentThreshold?: PMTAdjustmentThreshold; /** * Shows whether all the installments should compute the interest based on the actual number of days or based on the defined repayment periodicity. */ scheduleInterestDaysCountMethod: ProductInterestSettingsScheduleInterestDaysCountMethodEnum; } export const ProductInterestSettingsCompoundingFrequencyEnum = { Daily: 'DAILY', SemiAnnually: 'SEMI_ANNUALLY', } as const; export type ProductInterestSettingsCompoundingFrequencyEnum = (typeof ProductInterestSettingsCompoundingFrequencyEnum)[keyof typeof ProductInterestSettingsCompoundingFrequencyEnum]; export const ProductInterestSettingsDaysInYearEnum = { Actual365Fixed: 'ACTUAL_365_FIXED', Actual364: 'ACTUAL_364', Actual360: 'ACTUAL_360', ActualActualIsda: 'ACTUAL_ACTUAL_ISDA', E30360: 'E30_360', Bus252: 'BUS_252', E3042365: 'E30_42_365', } as const; export type ProductInterestSettingsDaysInYearEnum = (typeof ProductInterestSettingsDaysInYearEnum)[keyof typeof ProductInterestSettingsDaysInYearEnum]; export const ProductInterestSettingsInterestApplicationMethodEnum = { AfterDisbursement: 'AFTER_DISBURSEMENT', RepaymentDueDate: 'REPAYMENT_DUE_DATE', FixedDaysOfMonth: 'FIXED_DAYS_OF_MONTH', } as const; export type ProductInterestSettingsInterestApplicationMethodEnum = (typeof ProductInterestSettingsInterestApplicationMethodEnum)[keyof typeof ProductInterestSettingsInterestApplicationMethodEnum]; export const ProductInterestSettingsInterestBalanceCalculationMethodEnum = { OnlyPrincipal: 'ONLY_PRINCIPAL', PrincipalAndInterest: 'PRINCIPAL_AND_INTEREST', PrincipalAndFee: 'PRINCIPAL_AND_FEE', PrincipalInterestAndFee: 'PRINCIPAL_INTEREST_AND_FEE', } as const; export type ProductInterestSettingsInterestBalanceCalculationMethodEnum = (typeof ProductInterestSettingsInterestBalanceCalculationMethodEnum)[keyof typeof ProductInterestSettingsInterestBalanceCalculationMethodEnum]; export const ProductInterestSettingsInterestCalculationMethodEnum = { Flat: 'FLAT', DecliningBalance: 'DECLINING_BALANCE', DecliningBalanceDiscounted: 'DECLINING_BALANCE_DISCOUNTED', EqualInstallments: 'EQUAL_INSTALLMENTS', } as const; export type ProductInterestSettingsInterestCalculationMethodEnum = (typeof ProductInterestSettingsInterestCalculationMethodEnum)[keyof typeof ProductInterestSettingsInterestCalculationMethodEnum]; export const ProductInterestSettingsInterestTypeEnum = { SimpleInterest: 'SIMPLE_INTEREST', CapitalizedInterest: 'CAPITALIZED_INTEREST', CompoundingInterest: 'COMPOUNDING_INTEREST', } as const; export type ProductInterestSettingsInterestTypeEnum = (typeof ProductInterestSettingsInterestTypeEnum)[keyof typeof ProductInterestSettingsInterestTypeEnum]; export const ProductInterestSettingsScheduleInterestDaysCountMethodEnum = { RepaymentPeriodicity: 'REPAYMENT_PERIODICITY', ActualDaysCount: 'ACTUAL_DAYS_COUNT', } as const; export type ProductInterestSettingsScheduleInterestDaysCountMethodEnum = (typeof ProductInterestSettingsScheduleInterestDaysCountMethodEnum)[keyof typeof ProductInterestSettingsScheduleInterestDaysCountMethodEnum];