/* 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 { FeeTaxSettings } from './fee-tax-settings'; // May contain unused imports in some cases // @ts-ignore import type { GLAccountingRule } from './glaccounting-rule'; // May contain unused imports in some cases // @ts-ignore import type { PeriodIntervalSettings } from './period-interval-settings'; /** * The response representation of the PredefinedFee. Represents a fee with a defined name and a fixed value. */ export interface PredefinedFee { /** * A list of accounting rules defined for this fee. If null, product default rules are selected. */ accountingRules?: Array; amortizationSettings?: PeriodIntervalSettings; /** * The amount of the fee */ amount?: number; /** * Mambu Function name used for the fee calculation */ amountCalculationFunctionName?: string; /** * The amount from which the fee is calculated using percentageAmount */ amountCalculationMethod?: PredefinedFeeAmountCalculationMethodEnum; /** * Shows when a fee should be applied; to be used with monthly deposit fees */ applyDateMethod?: PredefinedFeeApplyDateMethodEnum; /** * Shows the creation date of the fee */ creationDate?: string; /** * The rate of the fee applied to parentSource */ defaultFeeRate?: number; /** * The encoded key of the predefined fee, auto generated, unique */ encodedKey?: string; /** * The type of fee application when disbursement is applied */ feeApplication: PredefinedFeeFeeApplicationEnum; /** * The id of the fee */ id?: string; /** * Indicates if the fee can be included in penalty calculation */ includeInPenalty?: boolean; /** * Indication if the fee bears interest */ interestBearing?: boolean; /** * Shows the last modified date of the fee */ lastModifiedDate?: string; /** * The name of the fee */ name?: string; /** * The amount of the fee in percents applied to percentSource */ percentageAmount?: number; /** * Method to allocate a fee to installments on the schedule */ scheduleAllocationMethod?: PredefinedFeeScheduleAllocationMethodEnum; /** * Indicates the state of the fee */ state: PredefinedFeeStateEnum; taxSettings?: FeeTaxSettings; /** * Shows the event that will trigger a fee */ trigger: PredefinedFeeTriggerEnum; } export const PredefinedFeeAmountCalculationMethodEnum = { Flat: 'FLAT', LoanAmountPercentage: 'LOAN_AMOUNT_PERCENTAGE', RepaymentPrincipalAmountPercentage: 'REPAYMENT_PRINCIPAL_AMOUNT_PERCENTAGE', LoanAmountPercentageNumberOfInstallments: 'LOAN_AMOUNT_PERCENTAGE_NUMBER_OF_INSTALLMENTS', FlatNumberOfInstallments: 'FLAT_NUMBER_OF_INSTALLMENTS', IofPercentageOfDisbursedAmount: 'IOF_PERCENTAGE_OF_DISBURSED_AMOUNT', IofPercentageOfInstallmentPrincipal: 'IOF_PERCENTAGE_OF_INSTALLMENT_PRINCIPAL', IofPercentageOfLateInstallmentPrincipal: 'IOF_PERCENTAGE_OF_LATE_INSTALLMENT_PRINCIPAL', MambuFunction: 'MAMBU_FUNCTION', FeeRateOnOutstandingPrincipal: 'FEE_RATE_ON_OUTSTANDING_PRINCIPAL', } as const; export type PredefinedFeeAmountCalculationMethodEnum = (typeof PredefinedFeeAmountCalculationMethodEnum)[keyof typeof PredefinedFeeAmountCalculationMethodEnum]; export const PredefinedFeeApplyDateMethodEnum = { MonthlyFromActivation: 'MONTHLY_FROM_ACTIVATION', FirstOfEveryMonth: 'FIRST_OF_EVERY_MONTH', } as const; export type PredefinedFeeApplyDateMethodEnum = (typeof PredefinedFeeApplyDateMethodEnum)[keyof typeof PredefinedFeeApplyDateMethodEnum]; export const PredefinedFeeFeeApplicationEnum = { Required: 'REQUIRED', Optional: 'OPTIONAL', } as const; export type PredefinedFeeFeeApplicationEnum = (typeof PredefinedFeeFeeApplicationEnum)[keyof typeof PredefinedFeeFeeApplicationEnum]; export const PredefinedFeeScheduleAllocationMethodEnum = { OnInstallment: 'ON_INSTALLMENT', NoAllocation: 'NO_ALLOCATION', } as const; export type PredefinedFeeScheduleAllocationMethodEnum = (typeof PredefinedFeeScheduleAllocationMethodEnum)[keyof typeof PredefinedFeeScheduleAllocationMethodEnum]; export const PredefinedFeeStateEnum = { Active: 'ACTIVE', Inactive: 'INACTIVE', } as const; export type PredefinedFeeStateEnum = (typeof PredefinedFeeStateEnum)[keyof typeof PredefinedFeeStateEnum]; export const PredefinedFeeTriggerEnum = { Manual: 'MANUAL', ManualPlanned: 'MANUAL_PLANNED', Disbursement: 'DISBURSEMENT', CapitalizedDisbursement: 'CAPITALIZED_DISBURSEMENT', UpfrontDisbursement: 'UPFRONT_DISBURSEMENT', LateRepayment: 'LATE_REPAYMENT', PaymentDue: 'PAYMENT_DUE', PaymentDueAppliedOnDueDates: 'PAYMENT_DUE_APPLIED_ON_DUE_DATES', Arbitrary: 'ARBITRARY', Iof: 'IOF', EarlyRepaymentCharge: 'EARLY_REPAYMENT_CHARGE', FeeIncludedInPmt: 'FEE_INCLUDED_IN_PMT', } as const; export type PredefinedFeeTriggerEnum = (typeof PredefinedFeeTriggerEnum)[keyof typeof PredefinedFeeTriggerEnum];