/**
 * 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 { ChargeData } from './charge-data';
import { CurrencyData } from './currency-data';
import { EnumOptionData } from './enum-option-data';
import { FundData } from './fund-data';
import { LoanProductBorrowerCycleVariationData } from './loan-product-borrower-cycle-variation-data';
import { LoanProductConfigurableAttributes } from './loan-product-configurable-attributes';
import { LoanProductInterestRecalculationData } from './loan-product-interest-recalculation-data';
/**
 *
 * @export
 * @interface LoanProductData
 */
export interface LoanProductData {
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    id?: number;
    /**
     *
     * @type {string}
     * @memberof LoanProductData
     */
    name?: string;
    /**
     *
     * @type {string}
     * @memberof LoanProductData
     */
    description?: string;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    fundId?: number;
    /**
     *
     * @type {string}
     * @memberof LoanProductData
     */
    fundName?: string;
    /**
     *
     * @type {string}
     * @memberof LoanProductData
     */
    startDate?: string;
    /**
     *
     * @type {string}
     * @memberof LoanProductData
     */
    closeDate?: string;
    /**
     *
     * @type {CurrencyData}
     * @memberof LoanProductData
     */
    currency?: CurrencyData;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    principal?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    minPrincipal?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    maxPrincipal?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    numberOfRepayments?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    minNumberOfRepayments?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    maxNumberOfRepayments?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    repaymentEvery?: number;
    /**
     *
     * @type {EnumOptionData}
     * @memberof LoanProductData
     */
    repaymentFrequencyType?: EnumOptionData;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    interestRatePerPeriod?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    minInterestRatePerPeriod?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    maxInterestRatePerPeriod?: number;
    /**
     *
     * @type {EnumOptionData}
     * @memberof LoanProductData
     */
    interestRateFrequencyType?: EnumOptionData;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    annualInterestRate?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    interestRateDifferential?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    minDifferentialLendingRate?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    defaultDifferentialLendingRate?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    maxDifferentialLendingRate?: number;
    /**
     *
     * @type {EnumOptionData}
     * @memberof LoanProductData
     */
    amortizationType?: EnumOptionData;
    /**
     *
     * @type {EnumOptionData}
     * @memberof LoanProductData
     */
    interestType?: EnumOptionData;
    /**
     *
     * @type {EnumOptionData}
     * @memberof LoanProductData
     */
    interestCalculationPeriodType?: EnumOptionData;
    /**
     *
     * @type {boolean}
     * @memberof LoanProductData
     */
    allowPartialPeriodInterestCalcualtion?: boolean;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    inArrearsTolerance?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    transactionProcessingStrategyId?: number;
    /**
     *
     * @type {string}
     * @memberof LoanProductData
     */
    transactionProcessingStrategyName?: string;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    graceOnPrincipalPayment?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    recurringMoratoriumOnPrincipalPeriods?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    graceOnInterestPayment?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    graceOnInterestCharged?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    graceOnArrearsAgeing?: number;
    /**
     *
     * @type {EnumOptionData}
     * @memberof LoanProductData
     */
    daysInMonthType?: EnumOptionData;
    /**
     *
     * @type {EnumOptionData}
     * @memberof LoanProductData
     */
    daysInYearType?: EnumOptionData;
    /**
     *
     * @type {LoanProductInterestRecalculationData}
     * @memberof LoanProductData
     */
    interestRecalculationData?: LoanProductInterestRecalculationData;
    /**
     *
     * @type {Array<LoanProductBorrowerCycleVariationData>}
     * @memberof LoanProductData
     */
    principalVariationsForBorrowerCycle?: Array<LoanProductBorrowerCycleVariationData>;
    /**
     *
     * @type {Array<LoanProductBorrowerCycleVariationData>}
     * @memberof LoanProductData
     */
    interestRateVariationsForBorrowerCycle?: Array<LoanProductBorrowerCycleVariationData>;
    /**
     *
     * @type {Array<LoanProductBorrowerCycleVariationData>}
     * @memberof LoanProductData
     */
    numberOfRepaymentVariationsForBorrowerCycle?: Array<LoanProductBorrowerCycleVariationData>;
    /**
     *
     * @type {Array<FundData>}
     * @memberof LoanProductData
     */
    fundOptions?: Array<FundData>;
    /**
     *
     * @type {Array<EnumOptionData>}
     * @memberof LoanProductData
     */
    repaymentFrequencyTypeOptions?: Array<EnumOptionData>;
    /**
     *
     * @type {Array<EnumOptionData>}
     * @memberof LoanProductData
     */
    interestRateFrequencyTypeOptions?: Array<EnumOptionData>;
    /**
     *
     * @type {Array<EnumOptionData>}
     * @memberof LoanProductData
     */
    amortizationTypeOptions?: Array<EnumOptionData>;
    /**
     *
     * @type {Array<EnumOptionData>}
     * @memberof LoanProductData
     */
    interestTypeOptions?: Array<EnumOptionData>;
    /**
     *
     * @type {Array<EnumOptionData>}
     * @memberof LoanProductData
     */
    interestCalculationPeriodTypeOptions?: Array<EnumOptionData>;
    /**
     *
     * @type {Array<ChargeData>}
     * @memberof LoanProductData
     */
    chargeOptions?: Array<ChargeData>;
    /**
     *
     * @type {boolean}
     * @memberof LoanProductData
     */
    multiDisburseLoan?: boolean;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    outstandingLoanBalance?: number;
    /**
     *
     * @type {LoanProductConfigurableAttributes}
     * @memberof LoanProductData
     */
    getloanProductConfigurableAttributes?: LoanProductConfigurableAttributes;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    minimumGapBetweenInstallments?: number;
    /**
     *
     * @type {number}
     * @memberof LoanProductData
     */
    maximumGapBetweenInstallments?: number;
    /**
     *
     * @type {boolean}
     * @memberof LoanProductData
     */
    interestRecalculationEnabled?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof LoanProductData
     */
    equalAmortization?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof LoanProductData
     */
    compoundingToBePostedAsTransaction?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof LoanProductData
     */
    floatingInterestRateCalculationAllowed?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof LoanProductData
     */
    linkedToFloatingInterestRates?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof LoanProductData
     */
    variableInstallmentsAllowed?: boolean;
}
