/**
 * Apache Fineract
 * Apache Fineract is a secure, multi-tenanted microfinance platform  The goal of the Apache Fineract API is to empower developers to build apps on top of the Apache Fineract Platform<br>The [reference app](https://cui.fineract.dev) (username: mifos, password: password) works on the same demo tenant as the interactive links in this documentation  - The API is organized around [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) - Find out more about Apache Fineract [here](/fineract-provider/api-docs/apiLive.htm#top) - You can [Try The API From Your Browser](/fineract-provider/api-docs/apiLive.htm#interact) - The Generic Options are available [here](/fineract-provider/api-docs/apiLive.htm#genopts) - Find out more about [Updating Dates and Numbers](/fineract-provider/api-docs/apiLive.htm#dates_and_numbers) - For the Authentication and the Basic of HTTP and HTTPS refer [here](/fineract-provider/api-docs/apiLive.htm#authentication_overview) - Check about ERROR codes [here](/fineract-provider/api-docs/apiLive.htm#errors)  Please refer to the [old documentation](/fineract-provider/api-docs/apiLive.htm) for any documentation queries
 *
 * The version of the OpenAPI document: 1.5.0-66-gffae7d4-dirty
 * Contact: dev@fineract.apache.org
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { GetLoanAccountingMappings } from './get-loan-accounting-mappings';
import { GetLoanFeeToIncomeAccountMappings } from './get-loan-fee-to-income-account-mappings';
import { GetLoanPaymentChannelToFundSourceMappings } from './get-loan-payment-channel-to-fund-source-mappings';
import { GetLoanProductsAccountingRule } from './get-loan-products-accounting-rule';
import { GetLoanProductsAmortizationType } from './get-loan-products-amortization-type';
import { GetLoanProductsCurrency } from './get-loan-products-currency';
import { GetLoanProductsInterestRateFrequencyType } from './get-loan-products-interest-rate-frequency-type';
import { GetLoanProductsInterestTemplateType } from './get-loan-products-interest-template-type';
import { GetLoanProductsPrincipalVariationsForBorrowerCycle } from './get-loan-products-principal-variations-for-borrower-cycle';
import { GetLoanProductsRepaymentFrequencyType } from './get-loan-products-repayment-frequency-type';
import { GetLoansProductsInterestCalculationPeriodType } from './get-loans-products-interest-calculation-period-type';
/**
 * GetLoanProductsProductIdResponse
 * @export
 * @interface GetLoanProductsProductIdResponse
 */
export interface GetLoanProductsProductIdResponse {
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    id?: number;
    /**
     *
     * @type {string}
     * @memberof GetLoanProductsProductIdResponse
     */
    name?: string;
    /**
     *
     * @type {string}
     * @memberof GetLoanProductsProductIdResponse
     */
    shortName?: string;
    /**
     *
     * @type {boolean}
     * @memberof GetLoanProductsProductIdResponse
     */
    includeInBorrowerCycle?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof GetLoanProductsProductIdResponse
     */
    useBorrowerCycle?: boolean;
    /**
     *
     * @type {string}
     * @memberof GetLoanProductsProductIdResponse
     */
    status?: string;
    /**
     *
     * @type {GetLoanProductsCurrency}
     * @memberof GetLoanProductsProductIdResponse
     */
    currency?: GetLoanProductsCurrency;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    principal?: number;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    minPrincipal?: number;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    maxPrincipal?: number;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    numberOfRepayments?: number;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    repaymentEvery?: number;
    /**
     *
     * @type {GetLoanProductsRepaymentFrequencyType}
     * @memberof GetLoanProductsProductIdResponse
     */
    repaymentFrequencyType?: GetLoanProductsRepaymentFrequencyType;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    interestRatePerPeriod?: number;
    /**
     *
     * @type {GetLoanProductsInterestRateFrequencyType}
     * @memberof GetLoanProductsProductIdResponse
     */
    interestRateFrequencyType?: GetLoanProductsInterestRateFrequencyType;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    annualInterestRate?: number;
    /**
     *
     * @type {GetLoanProductsAmortizationType}
     * @memberof GetLoanProductsProductIdResponse
     */
    amortizationType?: GetLoanProductsAmortizationType;
    /**
     *
     * @type {GetLoanProductsInterestTemplateType}
     * @memberof GetLoanProductsProductIdResponse
     */
    interestType?: GetLoanProductsInterestTemplateType;
    /**
     *
     * @type {GetLoansProductsInterestCalculationPeriodType}
     * @memberof GetLoanProductsProductIdResponse
     */
    interestCalculationPeriodType?: GetLoansProductsInterestCalculationPeriodType;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    transactionProcessingStrategyId?: number;
    /**
     *
     * @type {string}
     * @memberof GetLoanProductsProductIdResponse
     */
    transactionProcessingStrategyName?: string;
    /**
     *
     * @type {Array<number>}
     * @memberof GetLoanProductsProductIdResponse
     */
    charges?: Array<number>;
    /**
     *
     * @type {Set<GetLoanProductsPrincipalVariationsForBorrowerCycle>}
     * @memberof GetLoanProductsProductIdResponse
     */
    productsPrincipalVariationsForBorrowerCycle?: Set<GetLoanProductsPrincipalVariationsForBorrowerCycle>;
    /**
     *
     * @type {Array<number>}
     * @memberof GetLoanProductsProductIdResponse
     */
    interestRateVariationsForBorrowerCycle?: Array<number>;
    /**
     *
     * @type {Array<number>}
     * @memberof GetLoanProductsProductIdResponse
     */
    numberOfRepaymentVariationsForBorrowerCycle?: Array<number>;
    /**
     *
     * @type {GetLoanProductsAccountingRule}
     * @memberof GetLoanProductsProductIdResponse
     */
    accountingRule?: GetLoanProductsAccountingRule;
    /**
     *
     * @type {GetLoanAccountingMappings}
     * @memberof GetLoanProductsProductIdResponse
     */
    accountingMappings?: GetLoanAccountingMappings;
    /**
     *
     * @type {Set<GetLoanPaymentChannelToFundSourceMappings>}
     * @memberof GetLoanProductsProductIdResponse
     */
    paymentChannelToFundSourceMappings?: Set<GetLoanPaymentChannelToFundSourceMappings>;
    /**
     *
     * @type {Set<GetLoanFeeToIncomeAccountMappings>}
     * @memberof GetLoanProductsProductIdResponse
     */
    feeToIncomeAccountMappings?: Set<GetLoanFeeToIncomeAccountMappings>;
    /**
     *
     * @type {boolean}
     * @memberof GetLoanProductsProductIdResponse
     */
    multiDisburseLoan?: boolean;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    maxTrancheCount?: number;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    outstandingLoanBalance?: number;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    overdueDaysForNPA?: number;
    /**
     *
     * @type {number}
     * @memberof GetLoanProductsProductIdResponse
     */
    principalThresholdForLastInstalment?: number;
}
