/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.apache.fineract.portfolio.loanproduct;

import java.math.BigDecimal;

public interface LoanProductConstants {

    String USE_BORROWER_CYCLE_PARAMETER_NAME = "useBorrowerCycle";

    String PRINCIPAL_VARIATIONS_FOR_BORROWER_CYCLE_PARAMETER_NAME = "principalVariationsForBorrowerCycle";
    String INTEREST_RATE_VARIATIONS_FOR_BORROWER_CYCLE_PARAMETER_NAME = "interestRateVariationsForBorrowerCycle";
    String NUMBER_OF_REPAYMENT_VARIATIONS_FOR_BORROWER_CYCLE_PARAMETER_NAME = "numberOfRepaymentVariationsForBorrowerCycle";

    String DEFAULT_VALUE_PARAMETER_NAME = "defaultValue";
    String MIN_VALUE_PARAMETER_NAME = "minValue";
    String MAX_VALUE_PARAMETER_NAME = "maxValue";
    String VALUE_CONDITION_TYPE_PARAM_NAME = "valueConditionType";
    String BORROWER_CYCLE_NUMBER_PARAM_NAME = "borrowerCycleNumber";
    String BORROWER_CYCLE_ID_PARAMETER_NAME = "id";

    String PRINCIPAL_PER_CYCLE_PARAMETER_NAME = "principalPerCycle";
    String MIN_PRINCIPAL_PER_CYCLE_PARAMETER_NAME = "minPrincipalPerCycle";
    String MAX_PRINCIPAL_PER_CYCLE_PARAMETER_NAME = "maxPrincipalPerCycle";
    String PRINCIPAL_VALUE_USAGE_CONDITION_PARAM_NAME = "principalValueUsageCondition";
    String PRINCIPAL_CYCLE_NUMBERS_PARAM_NAME = "principalCycleNumbers";

    String NUMBER_OF_REPAYMENTS_PER_CYCLE_PARAMETER_NAME = "numberOfRepaymentsPerCycle";
    String MIN_NUMBER_OF_REPAYMENTS_PER_CYCLE_PARAMETER_NAME = "minNumberOfRepaymentsPerCycle";
    String MAX_NUMBER_OF_REPAYMENTS_PER_CYCLE_PARAMETER_NAME = "maxNumberOfRepaymentsPerCycle";
    String REPAYMENT_VALUE_USAGE_CONDITION_PARAM_NAME = "repaymentValueUsageCondition";
    String REPAYMENT_CYCLE_NUMBER_PARAM_NAME = "repaymentCycleNumber";

    String INTEREST_RATE_PER_PERIOD_PER_CYCLE_PARAMETER_NAME = "interestRatePerPeriodPerCycle";
    String MIN_INTEREST_RATE_PER_PERIOD_PER_CYCLE_PARAMETER_NAME = "minInterestRatePerPeriodPerCycle";
    String MAX_INTEREST_RATE_PER_PERIOD_PER_CYCLE_PARAMETER_NAME = "maxInterestRatePerPeriodPerCycle";
    String INTEREST_RATE_VALUE_USAGE_CONDITION_PARAM_NAME = "interestRateValueUsageCondition";
    String INTEREST_RATE_CYCLE_NUMBER_PARAM_NAME = "interestRateCycleNumber";

    String PRINCIPAL = "principal";
    String MIN_PRINCIPAL = "minPrincipal";
    String MAX_PRINCIPAL = "maxPrincipalValue";

    String INTEREST_RATE_PER_PERIOD = "interestRatePerPeriod";
    String MIN_INTEREST_RATE_PER_PERIOD = "minInterestRatePerPeriod";
    String MAX_INTEREST_RATE_PER_PERIOD = "maxInterestRatePerPeriod";

    String NUMBER_OF_REPAYMENTS = "numberOfRepayments";
    String MIN_NUMBER_OF_REPAYMENTS = "minNumberOfRepayments";
    String MAX_NUMBER_OF_REPAYMENTS = "maxNumberOfRepayments";

    String VALUE_CONDITION_END_WITH_ERROR = "condition.type.must.end.with.greater.than";
    String VALUE_CONDITION_START_WITH_ERROR = "condition.type.must.start.with.equal";
    String SHORT_NAME = "shortName";

    String MULTI_DISBURSE_LOAN_PARAMETER_NAME = "multiDisburseLoan";
    String MAX_TRANCHE_COUNT_PARAMETER_NAME = "maxTrancheCount";
    String OUTSTANDING_LOAN_BALANCE_PARAMETER_NAME = "outstandingLoanBalance";

    String GRACE_ON_ARREARS_AGEING_PARAMETER_NAME = "graceOnArrearsAgeing";
    String OVERDUE_DAYS_FOR_NPA_PARAMETER_NAME = "overdueDaysForNPA";
    String MINIMUM_DAYS_BETWEEN_DISBURSAL_AND_FIRST_REPAYMENT = "minimumDaysBetweenDisbursalAndFirstRepayment";
    String ACCOUNT_MOVES_OUT_OF_NPA_ONLY_ON_ARREARS_COMPLETION_PARAM_NAME = "accountMovesOutOfNPAOnlyOnArrearsCompletion";

    // Interest recalculation related
    String IS_INTEREST_RECALCULATION_ENABLED_PARAMETER_NAME = "isInterestRecalculationEnabled";
    String DAYS_IN_YEAR_TYPE_PARAMETER_NAME = "daysInYearType";
    String DAYS_IN_MONTH_TYPE_PARAMETER_NAME = "daysInMonthType";
    String interestRecalculationCompoundingMethodParameterName = "interestRecalculationCompoundingMethod";
    String rescheduleStrategyMethodParameterName = "rescheduleStrategyMethod";
    String recalculationRestFrequencyTypeParameterName = "recalculationRestFrequencyType";
    String recalculationRestFrequencyIntervalParameterName = "recalculationRestFrequencyInterval";
    String recalculationRestFrequencyWeekdayParamName = "recalculationRestFrequencyDayOfWeekType";
    String recalculationRestFrequencyNthDayParamName = "recalculationRestFrequencyNthDayType";
    String recalculationRestFrequencyOnDayParamName = "recalculationRestFrequencyOnDayType";
    String isArrearsBasedOnOriginalScheduleParamName = "isArrearsBasedOnOriginalSchedule";
    String preClosureInterestCalculationStrategyParamName = "preClosureInterestCalculationStrategy";
    String recalculationCompoundingFrequencyTypeParameterName = "recalculationCompoundingFrequencyType";
    String recalculationCompoundingFrequencyIntervalParameterName = "recalculationCompoundingFrequencyInterval";
    String recalculationCompoundingFrequencyWeekdayParamName = "recalculationCompoundingFrequencyDayOfWeekType";
    String recalculationCompoundingFrequencyNthDayParamName = "recalculationCompoundingFrequencyNthDayType";
    String recalculationCompoundingFrequencyOnDayParamName = "recalculationCompoundingFrequencyOnDayType";
    String isCompoundingToBePostedAsTransactionParamName = "isCompoundingToBePostedAsTransaction";

    // Guarantee related
    String holdGuaranteeFundsParamName = "holdGuaranteeFunds";
    String mandatoryGuaranteeParamName = "mandatoryGuarantee";
    String minimumGuaranteeFromOwnFundsParamName = "minimumGuaranteeFromOwnFunds";
    String minimumGuaranteeFromGuarantorParamName = "minimumGuaranteeFromGuarantor";

    String principalThresholdForLastInstallmentParamName = "principalThresholdForLastInstallment";
    BigDecimal DEFAULT_PRINCIPAL_THRESHOLD_FOR_MULTI_DISBURSE_LOAN = BigDecimal.valueOf(50);
    BigDecimal DEFAULT_PRINCIPAL_THRESHOLD_FOR_SINGLE_DISBURSE_LOAN = BigDecimal.valueOf(0);
    // Fixed installment configuration related
    String canDefineEmiAmountParamName = "canDefineInstallmentAmount";
    String fixedPrincipalPercentagePerInstallmentParamName = "fixedPrincipalPercentagePerInstallment";

    // Loan Configurable Attributes
    String allowAttributeOverridesParamName = "allowAttributeOverrides";
    String amortizationTypeParamName = "amortizationType";
    String interestTypeParamName = "interestType";
    String transactionProcessingStrategyCodeParamName = "transactionProcessingStrategyCode";
    String interestCalculationPeriodTypeParamName = "interestCalculationPeriodType";
    String inArrearsToleranceParamName = "inArrearsTolerance";
    String repaymentEveryParamName = "repaymentEvery";
    String graceOnPrincipalAndInterestPaymentParamName = "graceOnPrincipalAndInterestPayment";
    String allowCompoundingOnEodParamName = "allowCompoundingOnEod";

    // Variable Installments Settings
    String allowVariableInstallmentsParamName = "allowVariableInstallments";
    String minimumGapBetweenInstallments = "minimumGap";
    String maximumGapBetweenInstallments = "maximumGap";

    String ALLOW_PARTIAL_PERIOD_INTEREST_CALCUALTION_PARAM_NAME = "allowPartialPeriodInterestCalcualtion";

    String CAN_USE_FOR_TOPUP = "canUseForTopup";

    String IS_EQUAL_AMORTIZATION_PARAM = "isEqualAmortization";

    String RATES_PARAM_NAME = "rates";

    // Multiple disbursement related
    String installmentAmountInMultiplesOfParamName = "installmentAmountInMultiplesOf";
    String DISALLOW_EXPECTED_DISBURSEMENTS = "disallowExpectedDisbursements";
    String ALLOW_APPROVED_DISBURSED_AMOUNTS_OVER_APPLIED = "allowApprovedDisbursedAmountsOverApplied";
    String OVER_APPLIED_CALCULATION_TYPE = "overAppliedCalculationType";
    String OVER_APPLIED_NUMBER = "overAppliedNumber";
    String DELINQUENCY_BUCKET_PARAM_NAME = "delinquencyBucketId";

    // repayment events related
    String DUE_DAYS_FOR_REPAYMENT_EVENT = "dueDaysForRepaymentEvent";
    String OVER_DUE_DAYS_FOR_REPAYMENT_EVENT = "overDueDaysForRepaymentEvent";

    // down-payment related
    String ENABLE_DOWN_PAYMENT = "enableDownPayment";
    String DISBURSED_AMOUNT_PERCENTAGE_DOWN_PAYMENT = "disbursedAmountPercentageForDownPayment";
    String ENABLE_AUTO_REPAYMENT_DOWN_PAYMENT = "enableAutoRepaymentForDownPayment";
    String REPAYMENT_START_DATE_TYPE = "repaymentStartDateType";

    String ENABLE_INSTALLMENT_LEVEL_DELINQUENCY = "enableInstallmentLevelDelinquency";

    // loan schedule type
    String LOAN_SCHEDULE_TYPE = "loanScheduleType";
    String LOAN_SCHEDULE_PROCESSING_TYPE = "loanScheduleProcessingType";

    // Repayment Strategies
    String ADVANCED_PAYMENT_ALLOCATION_STRATEGY = "advanced-payment-allocation-strategy";

    String FIXED_LENGTH = "fixedLength";
}
