<?php //b9c143c10178264fbdcc8061448447d1
/** @noinspection all */

namespace Modules\Loan\Entities {

    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Database\Eloquent\Relations\HasMany;
    use Illuminate\Database\Eloquent\Relations\HasOne;
    use Illuminate\Support\Carbon;
    use LaravelIdea\Helper\Modules\Branch\Entities\_IH_Branch_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_ClientRelationship_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_Client_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_Profession_QB;
    use LaravelIdea\Helper\Modules\Client\Entities\_IH_Title_QB;
    use LaravelIdea\Helper\Modules\Core\Entities\_IH_Country_QB;
    use LaravelIdea\Helper\Modules\Core\Entities\_IH_Currency_QB;
    use LaravelIdea\Helper\Modules\Core\Entities\_IH_PaymentDetail_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_Fund_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_Fund_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanApplication_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanApplication_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanChargeOption_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanChargeOption_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanChargeType_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanChargeType_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanCharge_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanCharge_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanCollateralType_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanCollateralType_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanCollateral_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanCollateral_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanCreditCheck_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanCreditCheck_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanDisbursementChannel_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanDisbursementChannel_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanFileType_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanFileType_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanFile_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanFile_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanGuarantor_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanGuarantor_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanHistory_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanHistory_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanLinkedCharge_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanLinkedCharge_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanLinkedCreditCheck_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanLinkedCreditCheck_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanNote_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanNote_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanOfficerHistory_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanOfficerHistory_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanProductLinkedCharge_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanProductLinkedCharge_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanProductLinkedCreditCheck_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanProductLinkedCreditCheck_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanProduct_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanProduct_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanProvisioning_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanProvisioning_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanPurpose_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanPurpose_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanRepaymentSchedule_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanRepaymentSchedule_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanTransactionProcessingStrategy_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanTransactionProcessingStrategy_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanTransactionType_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanTransactionType_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanTransaction_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_LoanTransaction_QB;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_Loan_C;
    use LaravelIdea\Helper\Modules\Loan\Entities\_IH_Loan_QB;
    use LaravelIdea\Helper\Modules\User\Entities\_IH_User_QB;
    use Modules\Branch\Entities\Branch;
    use Modules\Client\Entities\Client;
    use Modules\Client\Entities\ClientRelationship;
    use Modules\Client\Entities\Profession;
    use Modules\Client\Entities\Title;
    use Modules\Core\Entities\Country;
    use Modules\Core\Entities\Currency;
    use Modules\Core\Entities\PaymentDetail;
    use Modules\User\Entities\User;
    
    /**
     * @property int $id
     * @property string $name
     * @method static _IH_Fund_QB onWriteConnection()
     * @method _IH_Fund_QB newQuery()
     * @method static _IH_Fund_QB on(null|string $connection = null)
     * @method static _IH_Fund_QB query()
     * @method static _IH_Fund_QB with(array|string $relations)
     * @method _IH_Fund_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Fund_C|Fund[] all()
     * @foreignLinks id,\Modules\Loan\Entities\LoanProduct,fund_id|id,\Modules\Loan\Entities\Loan,fund_id
     * @mixin _IH_Fund_QB
     */
    class Fund extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property string $client_type
     * @property int|null $client_id
     * @property int|null $group_id
     * @property int|null $branch_id
     * @property int $currency_id
     * @property int $loan_product_id
     * @property int $loan_transaction_processing_strategy_id
     * @property int $fund_id
     * @property int $loan_purpose_id
     * @property int $loan_officer_id
     * @property int|null $linked_savings_id
     * @property int|null $loan_disbursement_channel_id
     * @property Carbon|null $submitted_on_date
     * @property int|null $submitted_by_user_id
     * @property Carbon|null $approved_on_date
     * @property int|null $approved_by_user_id
     * @property string|null $approved_notes
     * @property Carbon|null $expected_disbursement_date
     * @property Carbon|null $expected_first_payment_date
     * @property Carbon|null $first_payment_date
     * @property Carbon|null $expected_maturity_date
     * @property Carbon|null $disbursed_on_date
     * @property int|null $disbursed_by_user_id
     * @property string|null $disbursed_notes
     * @property Carbon|null $rejected_on_date
     * @property int|null $rejected_by_user_id
     * @property string|null $rejected_notes
     * @property Carbon|null $written_off_on_date
     * @property int|null $written_off_by_user_id
     * @property string|null $written_off_notes
     * @property Carbon|null $closed_on_date
     * @property int|null $closed_by_user_id
     * @property string|null $closed_notes
     * @property Carbon|null $rescheduled_on_date
     * @property int|null $rescheduled_by_user_id
     * @property string|null $rescheduled_notes
     * @property Carbon|null $withdrawn_on_date
     * @property int|null $withdrawn_by_user_id
     * @property string|null $withdrawn_notes
     * @property string|null $external_id
     * @property string|null $account_number
     * @property float $principal
     * @property float|null $applied_amount
     * @property float|null $approved_amount
     * @property float $interest_rate
     * @property int|null $decimals
     * @property int|null $instalment_multiple_of
     * @property int $loan_term
     * @property int $repayment_frequency
     * @property string $repayment_frequency_type
     * @property string $interest_rate_type
     * @property int $enable_balloon_payments
     * @property int $allow_schedule_adjustments
     * @property int $grace_on_principal_paid
     * @property int $grace_on_interest_paid
     * @property int $grace_on_interest_charged
     * @property int $allow_custom_grace_period
     * @property int $allow_topup
     * @property string $interest_methodology
     * @property int $interest_recalculation
     * @property string|null $amortization_method
     * @property string|null $interest_calculation_period_type
     * @property string|null $days_in_year
     * @property string|null $days_in_month
     * @property int $include_in_loan_cycle
     * @property int $lock_guarantee_funds
     * @property int $auto_allocate_overpayments
     * @property int $allow_additional_charges
     * @property int $auto_disburse
     * @property string $status
     * @property float|null $disbursement_charges
     * @property float $principal_disbursed_derived
     * @property float $principal_repaid_derived
     * @property float $principal_written_off_derived
     * @property float $principal_outstanding_derived
     * @property float $interest_disbursed_derived
     * @property float $interest_repaid_derived
     * @property float $interest_written_off_derived
     * @property float $interest_waived_derived
     * @property float $interest_outstanding_derived
     * @property float $fees_disbursed_derived
     * @property float $fees_repaid_derived
     * @property float $fees_written_off_derived
     * @property float $fees_waived_derived
     * @property float $fees_outstanding_derived
     * @property float $penalties_disbursed_derived
     * @property float $penalties_repaid_derived
     * @property float $penalties_written_off_derived
     * @property float $penalties_waived_derived
     * @property float $penalties_outstanding_derived
     * @property float $total_disbursed_derived
     * @property float $total_repaid_derived
     * @property float $total_written_off_derived
     * @property float $total_waived_derived
     * @property float $total_outstanding_derived
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property string|null $classification
     * @property int $deduct_interest_from_principal
     * @property int|null $loan_provisioning_id
     * @property User|null $approved_by
     * @method HasOne|_IH_User_QB approved_by()
     * @property Branch|null $branch
     * @method HasOne|_IH_Branch_QB branch()
     * @property _IH_LoanLinkedCharge_C|LoanLinkedCharge[] $charges
     * @property-read int $charges_count
     * @method HasMany|_IH_LoanLinkedCharge_QB charges()
     * @property Client|null $client
     * @method HasOne|_IH_Client_QB client()
     * @property User|null $closed_by
     * @method HasOne|_IH_User_QB closed_by()
     * @property _IH_LoanCollateral_C|LoanCollateral[] $collateral
     * @property-read int $collateral_count
     * @method HasMany|_IH_LoanCollateral_QB collateral()
     * @property Currency $currency
     * @method HasOne|_IH_Currency_QB currency()
     * @property User|null $disbursed_by
     * @method HasOne|_IH_User_QB disbursed_by()
     * @property _IH_LoanFile_C|LoanFile[] $files
     * @property-read int $files_count
     * @method HasMany|_IH_LoanFile_QB files()
     * @property Fund $fund
     * @method HasOne|_IH_Fund_QB fund()
     * @property _IH_LoanGuarantor_C|LoanGuarantor[] $guarantors
     * @property-read int $guarantors_count
     * @method HasMany|_IH_LoanGuarantor_QB guarantors()
     * @property User $loan_officer
     * @method HasOne|_IH_User_QB loan_officer()
     * @property LoanProduct $loan_product
     * @method HasOne|_IH_LoanProduct_QB loan_product()
     * @property LoanProvisioning|null $loan_provisioning
     * @method HasOne|_IH_LoanProvisioning_QB loan_provisioning()
     * @property LoanPurpose $loan_purpose
     * @method HasOne|_IH_LoanPurpose_QB loan_purpose()
     * @property LoanTransactionProcessingStrategy $loan_transaction_processing_strategy
     * @method HasOne|_IH_LoanTransactionProcessingStrategy_QB loan_transaction_processing_strategy()
     * @property _IH_LoanNote_C|LoanNote[] $notes
     * @property-read int $notes_count
     * @method HasMany|_IH_LoanNote_QB notes()
     * @property User|null $rejected_by
     * @method HasOne|_IH_User_QB rejected_by()
     * @property _IH_LoanRepaymentSchedule_C|LoanRepaymentSchedule[] $repayment_schedules
     * @property-read int $repayment_schedules_count
     * @method HasMany|_IH_LoanRepaymentSchedule_QB repayment_schedules()
     * @property User|null $rescheduled_by
     * @method HasOne|_IH_User_QB rescheduled_by()
     * @property User|null $submitted_by
     * @method HasOne|_IH_User_QB submitted_by()
     * @property _IH_LoanTransaction_C|LoanTransaction[] $transactions
     * @property-read int $transactions_count
     * @method HasMany|_IH_LoanTransaction_QB transactions()
     * @property User|null $withdrawn_by
     * @method HasOne|_IH_User_QB withdrawn_by()
     * @property User|null $written_off_by
     * @method HasOne|_IH_User_QB written_off_by()
     * @method static _IH_Loan_QB onWriteConnection()
     * @method _IH_Loan_QB newQuery()
     * @method static _IH_Loan_QB on(null|string $connection = null)
     * @method static _IH_Loan_QB query()
     * @method static _IH_Loan_QB with(array|string $relations)
     * @method _IH_Loan_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_Loan_C|Loan[] all()
     * @ownLinks client_id,\Modules\Client\Entities\Client,id|branch_id,\Modules\Branch\Entities\Branch,id|currency_id,\Modules\Core\Entities\Currency,id|loan_product_id,\Modules\Loan\Entities\LoanProduct,id|loan_transaction_processing_strategy_id,\Modules\Loan\Entities\LoanTransactionProcessingStrategy,id|fund_id,\Modules\Loan\Entities\Fund,id|loan_purpose_id,\Modules\Loan\Entities\LoanPurpose,id|loan_disbursement_channel_id,\Modules\Loan\Entities\LoanDisbursementChannel,id
     * @foreignLinks id,\Modules\Loan\Entities\LoanCollateral,loan_id|id,\Modules\Loan\Entities\LoanRepaymentSchedule,loan_id|id,\Modules\Loan\Entities\LoanTransaction,loan_id|id,\Modules\Loan\Entities\LoanLinkedCharge,loan_id|id,\Modules\Loan\Entities\LoanLinkedCreditCheck,loan_id|id,\Modules\Loan\Entities\LoanGuarantor,loan_id|id,\Modules\Loan\Entities\LoanOfficerHistory,loan_id|id,\Modules\Loan\Entities\LoanHistory,loan_id|id,\Modules\Loan\Entities\LoanFile,loan_id|id,\Modules\Loan\Entities\LoanNote,loan_id|id,\Modules\Loan\Entities\LoanApplication,loan_id
     * @mixin _IH_Loan_QB
     */
    class Loan extends Model {}
    
    /**
     * @property int $id
     * @property int|null $branch_id
     * @property int|null $created_by_id
     * @property int $client_id
     * @property int|null $loan_id
     * @property int $loan_product_id
     * @property float $amount
     * @property string $status
     * @property string|null $notes
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property User $approved_by
     * @method HasOne|_IH_User_QB approved_by()
     * @property Branch|null $branch
     * @method HasOne|_IH_Branch_QB branch()
     * @property _IH_LoanLinkedCharge_C|LoanLinkedCharge[] $charges
     * @property-read int $charges_count
     * @method HasMany|_IH_LoanLinkedCharge_QB charges()
     * @property Client $client
     * @method HasOne|_IH_Client_QB client()
     * @property User $closed_by
     * @method HasOne|_IH_User_QB closed_by()
     * @property _IH_LoanCollateral_C|LoanCollateral[] $collateral
     * @property-read int $collateral_count
     * @method HasMany|_IH_LoanCollateral_QB collateral()
     * @property Currency $currency
     * @method HasOne|_IH_Currency_QB currency()
     * @property User $disbursed_by
     * @method HasOne|_IH_User_QB disbursed_by()
     * @property _IH_LoanFile_C|LoanFile[] $files
     * @property-read int $files_count
     * @method HasMany|_IH_LoanFile_QB files()
     * @property Fund $fund
     * @method HasOne|_IH_Fund_QB fund()
     * @property _IH_LoanGuarantor_C|LoanGuarantor[] $guarantors
     * @property-read int $guarantors_count
     * @method HasMany|_IH_LoanGuarantor_QB guarantors()
     * @property User $loan_officer
     * @method HasOne|_IH_User_QB loan_officer()
     * @property LoanProduct $loan_product
     * @method HasOne|_IH_LoanProduct_QB loan_product()
     * @property LoanPurpose $loan_purpose
     * @method HasOne|_IH_LoanPurpose_QB loan_purpose()
     * @property LoanTransactionProcessingStrategy $loan_transaction_processing_strategy
     * @method HasOne|_IH_LoanTransactionProcessingStrategy_QB loan_transaction_processing_strategy()
     * @property-read int $notes_count
     * @method HasMany|_IH_LoanNote_QB notes()
     * @property User $rejected_by
     * @method HasOne|_IH_User_QB rejected_by()
     * @property _IH_LoanRepaymentSchedule_C|LoanRepaymentSchedule[] $repayment_schedules
     * @property-read int $repayment_schedules_count
     * @method HasMany|_IH_LoanRepaymentSchedule_QB repayment_schedules()
     * @property User $rescheduled_by
     * @method HasOne|_IH_User_QB rescheduled_by()
     * @property User $submitted_by
     * @method HasOne|_IH_User_QB submitted_by()
     * @property _IH_LoanTransaction_C|LoanTransaction[] $transactions
     * @property-read int $transactions_count
     * @method HasMany|_IH_LoanTransaction_QB transactions()
     * @property User $withdrawn_by
     * @method HasOne|_IH_User_QB withdrawn_by()
     * @property User $written_off_by
     * @method HasOne|_IH_User_QB written_off_by()
     * @method static _IH_LoanApplication_QB onWriteConnection()
     * @method _IH_LoanApplication_QB newQuery()
     * @method static _IH_LoanApplication_QB on(null|string $connection = null)
     * @method static _IH_LoanApplication_QB query()
     * @method static _IH_LoanApplication_QB with(array|string $relations)
     * @method _IH_LoanApplication_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanApplication_C|LoanApplication[] all()
     * @ownLinks branch_id,\Modules\Branch\Entities\Branch,id|client_id,\Modules\Client\Entities\Client,id|loan_id,\Modules\Loan\Entities\Loan,id|loan_product_id,\Modules\Loan\Entities\LoanProduct,id
     * @mixin _IH_LoanApplication_QB
     */
    class LoanApplication extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int $currency_id
     * @property int $loan_charge_type_id
     * @property int $loan_charge_option_id
     * @property string $name
     * @property float $amount
     * @property float|null $min_amount
     * @property float|null $max_amount
     * @property string $payment_mode
     * @property int|null $schedule
     * @property int|null $schedule_frequency
     * @property string|null $schedule_frequency_type
     * @property int|null $is_penalty
     * @property int $active
     * @property int $allow_override
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property LoanChargeOption $charge_option
     * @method HasOne|_IH_LoanChargeOption_QB charge_option()
     * @property LoanChargeType $charge_type
     * @method HasOne|_IH_LoanChargeType_QB charge_type()
     * @method static _IH_LoanCharge_QB onWriteConnection()
     * @method _IH_LoanCharge_QB newQuery()
     * @method static _IH_LoanCharge_QB on(null|string $connection = null)
     * @method static _IH_LoanCharge_QB query()
     * @method static _IH_LoanCharge_QB with(array|string $relations)
     * @method _IH_LoanCharge_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanCharge_C|LoanCharge[] all()
     * @ownLinks currency_id,\Modules\Core\Entities\Currency,id|loan_charge_type_id,\Modules\Loan\Entities\LoanChargeType,id|loan_charge_option_id,\Modules\Loan\Entities\LoanChargeOption,id
     * @foreignLinks id,\Modules\Loan\Entities\LoanProductLinkedCharge,loan_charge_id|id,\Modules\Loan\Entities\LoanLinkedCharge,loan_charge_id
     * @mixin _IH_LoanCharge_QB
     */
    class LoanCharge extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property string|null $translated_name
     * @property int $active
     * @method static _IH_LoanChargeOption_QB onWriteConnection()
     * @method _IH_LoanChargeOption_QB newQuery()
     * @method static _IH_LoanChargeOption_QB on(null|string $connection = null)
     * @method static _IH_LoanChargeOption_QB query()
     * @method static _IH_LoanChargeOption_QB with(array|string $relations)
     * @method _IH_LoanChargeOption_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanChargeOption_C|LoanChargeOption[] all()
     * @foreignLinks id,\Modules\Loan\Entities\LoanCharge,loan_charge_option_id|id,\Modules\Loan\Entities\LoanLinkedCharge,loan_charge_option_id
     * @mixin _IH_LoanChargeOption_QB
     */
    class LoanChargeOption extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property string|null $translated_name
     * @property int $active
     * @method static _IH_LoanChargeType_QB onWriteConnection()
     * @method _IH_LoanChargeType_QB newQuery()
     * @method static _IH_LoanChargeType_QB on(null|string $connection = null)
     * @method static _IH_LoanChargeType_QB query()
     * @method static _IH_LoanChargeType_QB with(array|string $relations)
     * @method _IH_LoanChargeType_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanChargeType_C|LoanChargeType[] all()
     * @foreignLinks id,\Modules\Loan\Entities\LoanCharge,loan_charge_type_id|id,\Modules\Loan\Entities\LoanLinkedCharge,loan_charge_type_id
     * @mixin _IH_LoanChargeType_QB
     */
    class LoanChargeType extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int $loan_id
     * @property int $loan_collateral_type_id
     * @property string|null $description
     * @property float|null $value
     * @property string|null $link
     * @property string $status
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property LoanCollateralType $collateral_type
     * @method HasOne|_IH_LoanCollateralType_QB collateral_type()
     * @method static _IH_LoanCollateral_QB onWriteConnection()
     * @method _IH_LoanCollateral_QB newQuery()
     * @method static _IH_LoanCollateral_QB on(null|string $connection = null)
     * @method static _IH_LoanCollateral_QB query()
     * @method static _IH_LoanCollateral_QB with(array|string $relations)
     * @method _IH_LoanCollateral_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanCollateral_C|LoanCollateral[] all()
     * @ownLinks loan_id,\Modules\Loan\Entities\Loan,id|loan_collateral_type_id,\Modules\Loan\Entities\LoanCollateralType,id
     * @mixin _IH_LoanCollateral_QB
     */
    class LoanCollateral extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @method static _IH_LoanCollateralType_QB onWriteConnection()
     * @method _IH_LoanCollateralType_QB newQuery()
     * @method static _IH_LoanCollateralType_QB on(null|string $connection = null)
     * @method static _IH_LoanCollateralType_QB query()
     * @method static _IH_LoanCollateralType_QB with(array|string $relations)
     * @method _IH_LoanCollateralType_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanCollateralType_C|LoanCollateralType[] all()
     * @foreignLinks id,\Modules\Loan\Entities\LoanCollateral,loan_collateral_type_id
     * @mixin _IH_LoanCollateralType_QB
     */
    class LoanCollateralType extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property string $name
     * @property string|null $translated_name
     * @property string $security_level
     * @property string $rating_type
     * @property float|null $pass_min_amount
     * @property float|null $pass_max_amount
     * @property float|null $warn_min_amount
     * @property float|null $warn_max_amount
     * @property float|null $fail_min_amount
     * @property float|null $fail_max_amount
     * @property string|null $general_error_msg
     * @property string|null $user_friendly_error_msg
     * @property string|null $general_warning_msg
     * @property string|null $user_friendly_warning_msg
     * @property string|null $general_success_msg
     * @property string|null $user_friendly_success_msg
     * @property int $active
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_LoanCreditCheck_QB onWriteConnection()
     * @method _IH_LoanCreditCheck_QB newQuery()
     * @method static _IH_LoanCreditCheck_QB on(null|string $connection = null)
     * @method static _IH_LoanCreditCheck_QB query()
     * @method static _IH_LoanCreditCheck_QB with(array|string $relations)
     * @method _IH_LoanCreditCheck_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanCreditCheck_C|LoanCreditCheck[] all()
     * @ownLinks created_by_id,\Workbench\App\Models\User,id
     * @foreignLinks id,\Modules\Loan\Entities\LoanProductLinkedCreditCheck,loan_credit_check_id|id,\Modules\Loan\Entities\LoanLinkedCreditCheck,loan_credit_check_id
     * @mixin _IH_LoanCreditCheck_QB
     */
    class LoanCreditCheck extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int $is_system
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_LoanDisbursementChannel_QB onWriteConnection()
     * @method _IH_LoanDisbursementChannel_QB newQuery()
     * @method static _IH_LoanDisbursementChannel_QB on(null|string $connection = null)
     * @method static _IH_LoanDisbursementChannel_QB query()
     * @method static _IH_LoanDisbursementChannel_QB with(array|string $relations)
     * @method _IH_LoanDisbursementChannel_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanDisbursementChannel_C|LoanDisbursementChannel[] all()
     * @foreignLinks id,\Modules\Loan\Entities\LoanProduct,loan_disbursement_channel_id|id,\Modules\Loan\Entities\Loan,loan_disbursement_channel_id
     * @mixin _IH_LoanDisbursementChannel_QB
     */
    class LoanDisbursementChannel extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $loan_id
     * @property string|null $name
     * @property string|null $description
     * @property int|null $size
     * @property string|null $link
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int|null $loan_file_type_id
     * @property string $status
     * @property User|null $created_by
     * @method HasOne|_IH_User_QB created_by()
     * @method static _IH_LoanFile_QB onWriteConnection()
     * @method _IH_LoanFile_QB newQuery()
     * @method static _IH_LoanFile_QB on(null|string $connection = null)
     * @method static _IH_LoanFile_QB query()
     * @method static _IH_LoanFile_QB with(array|string $relations)
     * @method _IH_LoanFile_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanFile_C|LoanFile[] all()
     * @ownLinks loan_id,\Modules\Loan\Entities\Loan,id|loan_file_type_id,\Modules\Loan\Entities\LoanFileType,id
     * @mixin _IH_LoanFile_QB
     */
    class LoanFile extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_LoanFileType_QB onWriteConnection()
     * @method _IH_LoanFileType_QB newQuery()
     * @method static _IH_LoanFileType_QB on(null|string $connection = null)
     * @method static _IH_LoanFileType_QB query()
     * @method static _IH_LoanFileType_QB with(array|string $relations)
     * @method _IH_LoanFileType_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanFileType_C|LoanFileType[] all()
     * @foreignLinks id,\Modules\Loan\Entities\LoanFile,loan_file_type_id
     * @mixin _IH_LoanFileType_QB
     */
    class LoanFileType extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $branch_id
     * @property int|null $loan_id
     * @property int $is_client
     * @property int|null $client_id
     * @property string|null $first_name
     * @property string|null $middle_name
     * @property string|null $last_name
     * @property string|null $gender
     * @property string $status
     * @property string|null $marital_status
     * @property int|null $country_id
     * @property int|null $title_id
     * @property int|null $profession_id
     * @property int|null $client_relationship_id
     * @property string|null $mobile
     * @property string|null $phone
     * @property string|null $email
     * @property Carbon|null $dob
     * @property string|null $address
     * @property string|null $city
     * @property string|null $state
     * @property string|null $zip
     * @property string|null $employer
     * @property string|null $photo
     * @property string|null $notes
     * @property Carbon|null $created_date
     * @property Carbon|null $joined_date
     * @property float|null $guaranteed_amount
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property Client|null $client
     * @method HasOne|_IH_Client_QB client()
     * @property ClientRelationship|null $client_relationship
     * @method HasOne|_IH_ClientRelationship_QB client_relationship()
     * @property Country|null $country
     * @method HasOne|_IH_Country_QB country()
     * @property User|null $created_by
     * @method HasOne|_IH_User_QB created_by()
     * @property Profession|null $profession
     * @method HasOne|_IH_Profession_QB profession()
     * @property Title|null $title
     * @method HasOne|_IH_Title_QB title()
     * @method static _IH_LoanGuarantor_QB onWriteConnection()
     * @method _IH_LoanGuarantor_QB newQuery()
     * @method static _IH_LoanGuarantor_QB on(null|string $connection = null)
     * @method static _IH_LoanGuarantor_QB query()
     * @method static _IH_LoanGuarantor_QB with(array|string $relations)
     * @method _IH_LoanGuarantor_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanGuarantor_C|LoanGuarantor[] all()
     * @ownLinks branch_id,\Modules\Branch\Entities\Branch,id|loan_id,\Modules\Loan\Entities\Loan,id|client_id,\Modules\Client\Entities\Client,id|country_id,\Modules\Core\Entities\Country,id|title_id,\Modules\Client\Entities\Title,id|profession_id,\Modules\Client\Entities\Profession,id|client_relationship_id,\Modules\Client\Entities\ClientRelationship,id
     * @mixin _IH_LoanGuarantor_QB
     */
    class LoanGuarantor extends Model {}
    
    /**
     * @property int $id
     * @property int $loan_id
     * @property int $created_by_id
     * @property string|null $action
     * @property string|null $user
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_LoanHistory_QB onWriteConnection()
     * @method _IH_LoanHistory_QB newQuery()
     * @method static _IH_LoanHistory_QB on(null|string $connection = null)
     * @method static _IH_LoanHistory_QB query()
     * @method static _IH_LoanHistory_QB with(array|string $relations)
     * @method _IH_LoanHistory_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanHistory_C|LoanHistory[] all()
     * @ownLinks loan_id,\Modules\Loan\Entities\Loan,id
     * @mixin _IH_LoanHistory_QB
     */
    class LoanHistory extends Model {}
    
    /**
     * @property int $id
     * @property int $loan_id
     * @property int $loan_charge_id
     * @property int|null $loan_charge_type_id
     * @property int|null $loan_charge_option_id
     * @property int|null $loan_transaction_id
     * @property string|null $name
     * @property float $amount
     * @property float|null $calculated_amount
     * @property float|null $amount_paid_derived
     * @property float|null $amount_waived_derived
     * @property float|null $amount_written_off_derived
     * @property float|null $amount_outstanding_derived
     * @property int $is_penalty
     * @property int $waived
     * @property int $is_paid
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property LoanCharge $charge
     * @method HasOne|_IH_LoanCharge_QB charge()
     * @property Loan $loan
     * @method HasOne|_IH_Loan_QB loan()
     * @property LoanTransaction|null $transaction
     * @method HasOne|_IH_LoanTransaction_QB transaction()
     * @method static _IH_LoanLinkedCharge_QB onWriteConnection()
     * @method _IH_LoanLinkedCharge_QB newQuery()
     * @method static _IH_LoanLinkedCharge_QB on(null|string $connection = null)
     * @method static _IH_LoanLinkedCharge_QB query()
     * @method static _IH_LoanLinkedCharge_QB with(array|string $relations)
     * @method _IH_LoanLinkedCharge_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanLinkedCharge_C|LoanLinkedCharge[] all()
     * @ownLinks loan_id,\Modules\Loan\Entities\Loan,id|loan_charge_id,\Modules\Loan\Entities\LoanCharge,id|loan_charge_type_id,\Modules\Loan\Entities\LoanChargeType,id|loan_charge_option_id,\Modules\Loan\Entities\LoanChargeOption,id|loan_transaction_id,\Modules\Loan\Entities\LoanTransaction,id
     * @mixin _IH_LoanLinkedCharge_QB
     */
    class LoanLinkedCharge extends Model {}
    
    /**
     * @property int $id
     * @property int $loan_id
     * @property int $loan_credit_check_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_LoanLinkedCreditCheck_QB onWriteConnection()
     * @method _IH_LoanLinkedCreditCheck_QB newQuery()
     * @method static _IH_LoanLinkedCreditCheck_QB on(null|string $connection = null)
     * @method static _IH_LoanLinkedCreditCheck_QB query()
     * @method static _IH_LoanLinkedCreditCheck_QB with(array|string $relations)
     * @method _IH_LoanLinkedCreditCheck_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanLinkedCreditCheck_C|LoanLinkedCreditCheck[] all()
     * @ownLinks loan_id,\Modules\Loan\Entities\Loan,id|loan_credit_check_id,\Modules\Loan\Entities\LoanCreditCheck,id
     * @mixin _IH_LoanLinkedCreditCheck_QB
     */
    class LoanLinkedCreditCheck extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $loan_id
     * @property string|null $name
     * @property string|null $description
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property User|null $created_by
     * @method HasOne|_IH_User_QB created_by()
     * @method static _IH_LoanNote_QB onWriteConnection()
     * @method _IH_LoanNote_QB newQuery()
     * @method static _IH_LoanNote_QB on(null|string $connection = null)
     * @method static _IH_LoanNote_QB query()
     * @method static _IH_LoanNote_QB with(array|string $relations)
     * @method _IH_LoanNote_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanNote_C|LoanNote[] all()
     * @ownLinks loan_id,\Modules\Loan\Entities\Loan,id
     * @mixin _IH_LoanNote_QB
     */
    class LoanNote extends Model {}
    
    /**
     * @property int $id
     * @property int $loan_id
     * @property int $created_by_id
     * @property int $loan_officer_id
     * @property Carbon|null $start_date
     * @property Carbon|null $end_date
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_LoanOfficerHistory_QB onWriteConnection()
     * @method _IH_LoanOfficerHistory_QB newQuery()
     * @method static _IH_LoanOfficerHistory_QB on(null|string $connection = null)
     * @method static _IH_LoanOfficerHistory_QB query()
     * @method static _IH_LoanOfficerHistory_QB with(array|string $relations)
     * @method _IH_LoanOfficerHistory_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanOfficerHistory_C|LoanOfficerHistory[] all()
     * @ownLinks loan_id,\Modules\Loan\Entities\Loan,id
     * @mixin _IH_LoanOfficerHistory_QB
     */
    class LoanOfficerHistory extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int $currency_id
     * @property int|null $loan_disbursement_channel_id
     * @property int $loan_transaction_processing_strategy_id
     * @property int $fund_id
     * @property int|null $fund_source_chart_of_account_id
     * @property int|null $loan_portfolio_chart_of_account_id
     * @property int|null $interest_receivable_chart_of_account_id
     * @property int|null $penalties_receivable_chart_of_account_id
     * @property int|null $fees_receivable_chart_of_account_id
     * @property int|null $fees_chart_of_account_id
     * @property int|null $overpayments_chart_of_account_id
     * @property int|null $suspended_income_chart_of_account_id
     * @property int|null $income_from_interest_chart_of_account_id
     * @property int|null $income_from_penalties_chart_of_account_id
     * @property int|null $income_from_fees_chart_of_account_id
     * @property int|null $income_from_recovery_chart_of_account_id
     * @property int|null $losses_written_off_chart_of_account_id
     * @property int|null $interest_written_off_chart_of_account_id
     * @property string $name
     * @property string|null $short_name
     * @property string|null $description
     * @property int|null $decimals
     * @property int|null $instalment_multiple_of
     * @property float $minimum_principal
     * @property float $default_principal
     * @property float $maximum_principal
     * @property int $minimum_loan_term
     * @property int $default_loan_term
     * @property int $maximum_loan_term
     * @property int $repayment_frequency
     * @property string $repayment_frequency_type
     * @property float $minimum_interest_rate
     * @property float $default_interest_rate
     * @property float $maximum_interest_rate
     * @property string $interest_rate_type
     * @property int $enable_balloon_payments
     * @property int $allow_schedule_adjustments
     * @property int $grace_on_principal_paid
     * @property int $grace_on_interest_paid
     * @property int $grace_on_interest_charged
     * @property int $allow_custom_grace_period
     * @property int $allow_topup
     * @property string $interest_methodology
     * @property int $interest_recalculation
     * @property string|null $amortization_method
     * @property string|null $interest_calculation_period_type
     * @property string|null $days_in_year
     * @property string|null $days_in_month
     * @property int $include_in_loan_cycle
     * @property int $lock_guarantee_funds
     * @property int $auto_allocate_overpayments
     * @property int $allow_additional_charges
     * @property int $auto_disburse
     * @property int $require_linked_savings_account
     * @property float|null $min_amount
     * @property float|null $max_amount
     * @property string|null $accounting_rule
     * @property int $npa_overdue_days
     * @property int $npa_suspend_accrued_income
     * @property int $active
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property int $deduct_interest_from_principal
     * @property int $disallow_interest_rate_adjustment
     * @property int $exclude_weekends
     * @property int $exclude_holidays
     * @property _IH_LoanProductLinkedCharge_C|LoanProductLinkedCharge[] $charges
     * @property-read int $charges_count
     * @method HasMany|_IH_LoanProductLinkedCharge_QB charges()
     * @method static _IH_LoanProduct_QB onWriteConnection()
     * @method _IH_LoanProduct_QB newQuery()
     * @method static _IH_LoanProduct_QB on(null|string $connection = null)
     * @method static _IH_LoanProduct_QB query()
     * @method static _IH_LoanProduct_QB with(array|string $relations)
     * @method _IH_LoanProduct_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanProduct_C|LoanProduct[] all()
     * @ownLinks currency_id,\Modules\Core\Entities\Currency,id|loan_disbursement_channel_id,\Modules\Loan\Entities\LoanDisbursementChannel,id|loan_transaction_processing_strategy_id,\Modules\Loan\Entities\LoanTransactionProcessingStrategy,id|fund_id,\Modules\Loan\Entities\Fund,id
     * @foreignLinks id,\Modules\Loan\Entities\LoanProductLinkedCharge,loan_product_id|id,\Modules\Loan\Entities\Loan,loan_product_id|id,\Modules\Loan\Entities\LoanProductLinkedCreditCheck,loan_product_id|id,\Modules\Communication\Entities\CommunicationCampaign,loan_product_id|id,\Modules\Loan\Entities\LoanApplication,loan_product_id
     * @mixin _IH_LoanProduct_QB
     */
    class LoanProduct extends Model {}
    
    /**
     * @property int $id
     * @property int $loan_product_id
     * @property int $loan_charge_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property LoanCharge $charge
     * @method HasOne|_IH_LoanCharge_QB charge()
     * @method static _IH_LoanProductLinkedCharge_QB onWriteConnection()
     * @method _IH_LoanProductLinkedCharge_QB newQuery()
     * @method static _IH_LoanProductLinkedCharge_QB on(null|string $connection = null)
     * @method static _IH_LoanProductLinkedCharge_QB query()
     * @method static _IH_LoanProductLinkedCharge_QB with(array|string $relations)
     * @method _IH_LoanProductLinkedCharge_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanProductLinkedCharge_C|LoanProductLinkedCharge[] all()
     * @ownLinks loan_product_id,\Modules\Loan\Entities\LoanProduct,id|loan_charge_id,\Modules\Loan\Entities\LoanCharge,id
     * @mixin _IH_LoanProductLinkedCharge_QB
     */
    class LoanProductLinkedCharge extends Model {}
    
    /**
     * @property int $id
     * @property int $loan_product_id
     * @property int $loan_credit_check_id
     * @property int|null $check_order
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_LoanProductLinkedCreditCheck_QB onWriteConnection()
     * @method _IH_LoanProductLinkedCreditCheck_QB newQuery()
     * @method static _IH_LoanProductLinkedCreditCheck_QB on(null|string $connection = null)
     * @method static _IH_LoanProductLinkedCreditCheck_QB query()
     * @method static _IH_LoanProductLinkedCreditCheck_QB with(array|string $relations)
     * @method _IH_LoanProductLinkedCreditCheck_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanProductLinkedCreditCheck_C|LoanProductLinkedCreditCheck[] all()
     * @ownLinks loan_product_id,\Modules\Loan\Entities\LoanProduct,id|loan_credit_check_id,\Modules\Loan\Entities\LoanCreditCheck,id
     * @mixin _IH_LoanProductLinkedCreditCheck_QB
     */
    class LoanProductLinkedCreditCheck extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property int|null $lower_limit
     * @property int|null $upper_limit
     * @property float|null $percentage
     * @property string|null $description
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_LoanProvisioning_QB onWriteConnection()
     * @method _IH_LoanProvisioning_QB newQuery()
     * @method static _IH_LoanProvisioning_QB on(null|string $connection = null)
     * @method static _IH_LoanProvisioning_QB query()
     * @method static _IH_LoanProvisioning_QB with(array|string $relations)
     * @method _IH_LoanProvisioning_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanProvisioning_C|LoanProvisioning[] all()
     * @mixin _IH_LoanProvisioning_QB
     */
    class LoanProvisioning extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @method static _IH_LoanPurpose_QB onWriteConnection()
     * @method _IH_LoanPurpose_QB newQuery()
     * @method static _IH_LoanPurpose_QB on(null|string $connection = null)
     * @method static _IH_LoanPurpose_QB query()
     * @method static _IH_LoanPurpose_QB with(array|string $relations)
     * @method _IH_LoanPurpose_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanPurpose_C|LoanPurpose[] all()
     * @foreignLinks id,\Modules\Loan\Entities\Loan,loan_purpose_id
     * @mixin _IH_LoanPurpose_QB
     */
    class LoanPurpose extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $loan_id
     * @property Carbon|null $paid_by_date
     * @property Carbon|null $from_date
     * @property Carbon $due_date
     * @property int|null $installment
     * @property float $principal
     * @property float $principal_repaid_derived
     * @property float $principal_written_off_derived
     * @property float $interest
     * @property float $interest_repaid_derived
     * @property float $interest_written_off_derived
     * @property float $interest_waived_derived
     * @property float $fees
     * @property float $fees_repaid_derived
     * @property float $fees_written_off_derived
     * @property float $fees_waived_derived
     * @property float $penalties
     * @property float $penalties_repaid_derived
     * @property float $penalties_written_off_derived
     * @property float $penalties_waived_derived
     * @property float $total_due
     * @property string|null $month
     * @property string|null $year
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property Loan|null $loan
     * @method HasOne|_IH_Loan_QB loan()
     * @method static _IH_LoanRepaymentSchedule_QB onWriteConnection()
     * @method _IH_LoanRepaymentSchedule_QB newQuery()
     * @method static _IH_LoanRepaymentSchedule_QB on(null|string $connection = null)
     * @method static _IH_LoanRepaymentSchedule_QB query()
     * @method static _IH_LoanRepaymentSchedule_QB with(array|string $relations)
     * @method _IH_LoanRepaymentSchedule_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanRepaymentSchedule_C|LoanRepaymentSchedule[] all()
     * @ownLinks loan_id,\Modules\Loan\Entities\Loan,id
     * @mixin _IH_LoanRepaymentSchedule_QB
     */
    class LoanRepaymentSchedule extends Model {}
    
    /**
     * @property int $id
     * @property int $loan_id
     * @property int|null $created_by_id
     * @property int|null $branch_id
     * @property int|null $payment_detail_id
     * @property string|null $name
     * @property float $amount
     * @property float|null $credit
     * @property float|null $debit
     * @property float $principal_repaid_derived
     * @property float $interest_repaid_derived
     * @property float $fees_repaid_derived
     * @property float $penalties_repaid_derived
     * @property int $loan_transaction_type_id
     * @property int $reversed
     * @property int $reversible
     * @property Carbon|null $submitted_on
     * @property Carbon|null $due_date
     * @property Carbon|null $created_on
     * @property string|null $status
     * @property string|null $reference
     * @property string|null $gateway_id
     * @property string|null $description
     * @property string|null $payment_gateway_data
     * @property int $online_transaction
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property User|null $created_by
     * @method HasOne|_IH_User_QB created_by()
     * @property Loan $loan
     * @method HasOne|_IH_Loan_QB loan()
     * @property PaymentDetail|null $payment_detail
     * @method HasOne|_IH_PaymentDetail_QB payment_detail()
     * @method static _IH_LoanTransaction_QB onWriteConnection()
     * @method _IH_LoanTransaction_QB newQuery()
     * @method static _IH_LoanTransaction_QB on(null|string $connection = null)
     * @method static _IH_LoanTransaction_QB query()
     * @method static _IH_LoanTransaction_QB with(array|string $relations)
     * @method _IH_LoanTransaction_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanTransaction_C|LoanTransaction[] all()
     * @ownLinks loan_id,\Modules\Loan\Entities\Loan,id|branch_id,\Modules\Branch\Entities\Branch,id|payment_detail_id,\Modules\Core\Entities\PaymentDetail,id|loan_transaction_type_id,\Modules\Loan\Entities\LoanTransactionType,id
     * @foreignLinks id,\Modules\Loan\Entities\LoanLinkedCharge,loan_transaction_id
     * @mixin _IH_LoanTransaction_QB
     */
    class LoanTransaction extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property string|null $translated_name
     * @property int $active
     * @method static _IH_LoanTransactionProcessingStrategy_QB onWriteConnection()
     * @method _IH_LoanTransactionProcessingStrategy_QB newQuery()
     * @method static _IH_LoanTransactionProcessingStrategy_QB on(null|string $connection = null)
     * @method static _IH_LoanTransactionProcessingStrategy_QB query()
     * @method static _IH_LoanTransactionProcessingStrategy_QB with(array|string $relations)
     * @method _IH_LoanTransactionProcessingStrategy_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanTransactionProcessingStrategy_C|LoanTransactionProcessingStrategy[] all()
     * @foreignLinks id,\Modules\Loan\Entities\LoanProduct,loan_transaction_processing_strategy_id|id,\Modules\Loan\Entities\Loan,loan_transaction_processing_strategy_id
     * @mixin _IH_LoanTransactionProcessingStrategy_QB
     */
    class LoanTransactionProcessingStrategy extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property string|null $translated_name
     * @property int $active
     * @method static _IH_LoanTransactionType_QB onWriteConnection()
     * @method _IH_LoanTransactionType_QB newQuery()
     * @method static _IH_LoanTransactionType_QB on(null|string $connection = null)
     * @method static _IH_LoanTransactionType_QB query()
     * @method static _IH_LoanTransactionType_QB with(array|string $relations)
     * @method _IH_LoanTransactionType_QB newModelQuery()
     * @method false|int increment(string $column, float|int $amount = 1, array $extra = [])
     * @method false|int decrement(string $column, float|int $amount = 1, array $extra = [])
     * @method static _IH_LoanTransactionType_C|LoanTransactionType[] all()
     * @foreignLinks id,\Modules\Loan\Entities\LoanTransaction,loan_transaction_type_id
     * @mixin _IH_LoanTransactionType_QB
     */
    class LoanTransactionType extends Model {}
}