/** * Copyright since 2025 Mifos Initiative * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import { OptionData } from './option-data.model'; export interface Currency { code: string; name: string; decimalPlaces?: number; inMultiplesOf?: number; displaySymbol?: string; nameCode?: string; displayLabel?: string; } export interface GLAccount { id: number; name: string; glCode: string; description: string; nameDecorated?: string; disabled: boolean; manualEntriesAllowed: boolean; type: OptionData; usage: OptionData; parentId?: number; } export interface AccountingMapping { id: number; name: string; glCode: string; } export interface ChargeToIncomeAccountMapping { charge: Charge; incomeAccount: AccountingMapping; } export interface PaymentChannelToFundSourceMapping { paymentType: PaymentType; fundSourceAccount: AccountingMapping; } export interface ChargeOffReasonToExpenseAccountMapping { chargeOffReasonCodeValueId?: number; writeOffReasonCodeValueId?: number; expenseAccountId?: number; reasonCodeValue?: CodeValue; writeOffReasonCodeValue?: CodeValue; expenseAccount?: AccountingMapping; } export interface AccountMapping { codeValueId?: number; glAccountId?: number; codeValue?: CodeValue; glAccount?: AccountingMapping; } export interface ClassificationToIncomeAccountMapping { classificationCodeValueId?: number; incomeAccountId?: number; classificationCodeValue?: CodeValue; incomeAccount?: AccountingMapping; } export interface CodeValue { active: boolean; description: string; id: number; mandatory: boolean; name: string; position?: number; } export interface PaymentType { id: number; name: string; isSystemDefined: boolean; } export interface PaymentTypeOption { id: number; name: string; description: string; isCashPayment: boolean; isSystemDefined: boolean; position: number; } export interface Charge { id: number; name: string; active?: boolean; penalty: boolean; freeWithdrawal?: boolean; freeWithdrawalChargeFrequency?: number; restartFrequency?: number; restartFrequencyEnum?: number; isPaymentType?: boolean; currency?: Currency; amount?: number; chargeTimeType?: OptionData; chargeAppliesTo?: OptionData; chargeCalculationType?: OptionData; chargePaymentMode?: OptionData; }