/* 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 { AccountLinkSettings } from './account-link-settings'; // May contain unused imports in some cases // @ts-ignore import type { AccountingSettings } from './accounting-settings'; // May contain unused imports in some cases // @ts-ignore import type { CreditArrangementSettings } from './credit-arrangement-settings'; // May contain unused imports in some cases // @ts-ignore import type { Currency } from './currency'; // May contain unused imports in some cases // @ts-ignore import type { DocumentTemplate } from './document-template'; // May contain unused imports in some cases // @ts-ignore import type { FeesSettings } from './fees-settings'; // May contain unused imports in some cases // @ts-ignore import type { FundingSettings } from './funding-settings'; // May contain unused imports in some cases // @ts-ignore import type { GracePeriodSettings } from './grace-period-settings'; // May contain unused imports in some cases // @ts-ignore import type { InternalControls } from './internal-controls'; // May contain unused imports in some cases // @ts-ignore import type { LoanAmountSettings } from './loan-amount-settings'; // May contain unused imports in some cases // @ts-ignore import type { LoanProductScheduleSettings } from './loan-product-schedule-settings'; // May contain unused imports in some cases // @ts-ignore import type { NewAccountSettings } from './new-account-settings'; // May contain unused imports in some cases // @ts-ignore import type { OffsetSettings } from './offset-settings'; // May contain unused imports in some cases // @ts-ignore import type { PaymentSettings } from './payment-settings'; // May contain unused imports in some cases // @ts-ignore import type { ProductArrearsSettings } from './product-arrears-settings'; // May contain unused imports in some cases // @ts-ignore import type { ProductAvailabilitySettings } from './product-availability-settings'; // May contain unused imports in some cases // @ts-ignore import type { ProductInterestSettings } from './product-interest-settings'; // May contain unused imports in some cases // @ts-ignore import type { ProductPenaltySettings } from './product-penalty-settings'; // May contain unused imports in some cases // @ts-ignore import type { ProductRedrawSettings } from './product-redraw-settings'; // May contain unused imports in some cases // @ts-ignore import type { RevolvingProductCreditBalance } from './revolving-product-credit-balance'; // May contain unused imports in some cases // @ts-ignore import type { SecuritySettings } from './security-settings'; // May contain unused imports in some cases // @ts-ignore import type { TaxSettings } from './tax-settings'; /** * Represents a loan product. */ export interface LoanProduct { accountLinkSettings?: AccountLinkSettings; accountingSettings?: AccountingSettings; /** * `TRUE` if it is possible to adjust the interest for the first repayment when the first repayment period is different than the repayment frequency, `FALSE` otherwise. */ adjustInterestForFirstInstallment?: boolean; /** * TRUE` if it is possible to adjust the total due for the repayment when the repayment period is different than the repayment frequency, `FALSE` otherwise. */ adjustTotalDueForInstallmentsWithDifferentInterval?: boolean; /** * True if advance repayment is allowed; false otherwise. */ allowAdvanceRepayment?: boolean; /** * `TRUE` if an additional payment may be allocated on the account, ignoring the default repayment allocation order, `FALSE` otherwise. */ allowCustomRepaymentAllocation?: boolean; arrearsSettings?: ProductArrearsSettings; availabilitySettings?: ProductAvailabilitySettings; /** * The category of the loan product. */ category?: LoanProductCategoryEnum; /** * The date the loan product was created. */ creationDate?: string; creditArrangementSettings: CreditArrangementSettings; currency?: Currency; /** * The encoded key of the loan product, it is auto generated, and unique. */ encodedKey?: string; feesSettings?: FeesSettings; fundingSettings?: FundingSettings; gracePeriodSettings?: GracePeriodSettings; /** * The ID of the loan product, can be generated and customized, and must be unique. */ id: string; interestSettings?: ProductInterestSettings; internalControls?: InternalControls; /** * The last date the loan product was updated. */ lastModifiedDate?: string; loanAmountSettings?: LoanAmountSettings; /** * The name of the loan product. */ name: string; newAccountSettings?: NewAccountSettings; /** * The notes or description of the loan product. */ notes?: string; offsetSettings?: OffsetSettings; paymentSettings?: PaymentSettings; penaltySettings?: ProductPenaltySettings; redrawSettings?: ProductRedrawSettings; revolvingProductCreditBalance?: RevolvingProductCreditBalance; scheduleSettings?: LoanProductScheduleSettings; securitySettings?: SecuritySettings; /** * The current state of the loan product. */ state?: LoanProductStateEnum; taxSettings?: TaxSettings; /** * The template documents of the loan product. */ templates?: Array; /** * The type of the loan product. */ type: LoanProductTypeEnum; /** * `TRUE` Fee should be part of PMT calculation, `FALSE` otherwise. */ useFeeIncludedInPMT?: boolean; /** * `TRUE` if it is possible to use the interest accrued as total due for the repayment when the repayment period is different than the repayment frequency, `FALSE` otherwise. */ useInterestAccruedAsTotalDueWhenIntervalIsDifferent?: boolean; } export const LoanProductCategoryEnum = { PersonalLending: 'PERSONAL_LENDING', PurchaseFinancing: 'PURCHASE_FINANCING', RetailMortgages: 'RETAIL_MORTGAGES', SmeLending: 'SME_LENDING', Commercial: 'COMMERCIAL', Uncategorized: 'UNCATEGORIZED', } as const; export type LoanProductCategoryEnum = (typeof LoanProductCategoryEnum)[keyof typeof LoanProductCategoryEnum]; export const LoanProductStateEnum = { Active: 'ACTIVE', Inactive: 'INACTIVE', } as const; export type LoanProductStateEnum = (typeof LoanProductStateEnum)[keyof typeof LoanProductStateEnum]; export const LoanProductTypeEnum = { FixedTermLoan: 'FIXED_TERM_LOAN', DynamicTermLoan: 'DYNAMIC_TERM_LOAN', InterestFreeLoan: 'INTEREST_FREE_LOAN', TranchedLoan: 'TRANCHED_LOAN', RevolvingCredit: 'REVOLVING_CREDIT', InterestOnlyEqualInstallments: 'INTEREST_ONLY_EQUAL_INSTALLMENTS', DynamicMortgage: 'DYNAMIC_MORTGAGE', RevolvingCreditCard: 'REVOLVING_CREDIT_CARD', } as const; export type LoanProductTypeEnum = (typeof LoanProductTypeEnum)[keyof typeof LoanProductTypeEnum];