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

namespace Modules\Savings\Entities {

    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Database\Eloquent\Relations\BelongsTo;
    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_Client_QB;
    use LaravelIdea\Helper\Modules\Core\Entities\_IH_Currency_QB;
    use LaravelIdea\Helper\Modules\Core\Entities\_IH_PaymentDetail_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsChargeOption_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsChargeOption_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsChargeType_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsChargeType_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsCharge_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsCharge_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsFileType_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsFileType_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsFile_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsFile_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsLinkedCharge_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsLinkedCharge_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsProductLinkedCharge_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsProductLinkedCharge_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsProduct_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsProduct_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsTransaction_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_SavingsTransaction_QB;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_Savings_C;
    use LaravelIdea\Helper\Modules\Savings\Entities\_IH_Savings_QB;
    use LaravelIdea\Helper\Modules\User\Entities\_IH_User_QB;
    use Modules\Branch\Entities\Branch;
    use Modules\Client\Entities\Client;
    use Modules\Core\Entities\Currency;
    use Modules\Core\Entities\PaymentDetail;
    use Modules\User\Entities\User;
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int $currency_id
     * @property int|null $savings_officer_id
     * @property int|null $savings_product_id
     * @property string|null $client_type
     * @property int|null $client_id
     * @property int|null $group_id
     * @property int|null $branch_id
     * @property string|null $account_number
     * @property string|null $external_id
     * @property int|null $decimals
     * @property float $interest_rate
     * @property string $interest_rate_type
     * @property string $compounding_period
     * @property string $interest_posting_period_type
     * @property string $interest_calculation_type
     * @property float $balance_derived
     * @property float $total_deposits_derived
     * @property float $total_withdrawals_derived
     * @property float $total_interest_posted_derived
     * @property float $minimum_balance_for_interest_calculation
     * @property int $lockin_period
     * @property string $lockin_type
     * @property float $automatic_opening_balance
     * @property int $allow_overdraft
     * @property float|null $overdraft_limit
     * @property float|null $overdraft_interest_rate
     * @property float|null $minimum_overdraft_for_interest
     * @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 $activated_on_date
     * @property int|null $activated_by_user_id
     * @property string|null $activated_notes
     * @property Carbon|null $rejected_on_date
     * @property int|null $rejected_by_user_id
     * @property string|null $rejected_notes
     * @property Carbon|null $dormant_on_date
     * @property int|null $dormant_by_user_id
     * @property string|null $dormant_notes
     * @property Carbon|null $closed_on_date
     * @property int|null $closed_by_user_id
     * @property string|null $closed_notes
     * @property Carbon|null $inactive_on_date
     * @property int|null $inactive_by_user_id
     * @property string|null $inactive_notes
     * @property Carbon|null $withdrawn_on_date
     * @property int|null $withdrawn_by_user_id
     * @property string|null $withdrawn_notes
     * @property string $status
     * @property Carbon|null $start_interest_posting_date
     * @property Carbon|null $next_interest_posting_date
     * @property Carbon|null $start_interest_calculation_date
     * @property Carbon|null $next_interest_calculation_date
     * @property Carbon|null $last_interest_calculation_date
     * @property Carbon|null $last_interest_posting_date
     * @property float|null $calculated_interest
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property User|null $activated_by
     * @method HasOne|_IH_User_QB activated_by()
     * @property User|null $approved_by
     * @method HasOne|_IH_User_QB approved_by()
     * @property Branch|null $branch
     * @method HasOne|_IH_Branch_QB branch()
     * @property _IH_SavingsLinkedCharge_C|SavingsLinkedCharge[] $charges
     * @property-read int $charges_count
     * @method HasMany|_IH_SavingsLinkedCharge_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 Currency $currency
     * @method HasOne|_IH_Currency_QB currency()
     * @property User|null $dormant_by
     * @method HasOne|_IH_User_QB dormant_by()
     * @property _IH_SavingsFile_C|SavingsFile[] $files
     * @property-read int $files_count
     * @method HasMany|_IH_SavingsFile_QB files()
     * @property User|null $inactive_by
     * @method HasOne|_IH_User_QB inactive_by()
     * @property User|null $rejected_by
     * @method HasOne|_IH_User_QB rejected_by()
     * @property User|null $savings_officer
     * @method HasOne|_IH_User_QB savings_officer()
     * @property SavingsProduct|null $savings_product
     * @method BelongsTo|_IH_SavingsProduct_QB savings_product()
     * @property User|null $submitted_by
     * @method HasOne|_IH_User_QB submitted_by()
     * @property _IH_SavingsTransaction_C|SavingsTransaction[] $transactions
     * @property-read int $transactions_count
     * @method HasMany|_IH_SavingsTransaction_QB transactions()
     * @property User|null $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_Savings_QB onWriteConnection()
     * @method _IH_Savings_QB newQuery()
     * @method static _IH_Savings_QB on(null|string $connection = null)
     * @method static _IH_Savings_QB query()
     * @method static _IH_Savings_QB with(array|string $relations)
     * @method _IH_Savings_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_Savings_C|Savings[] all()
     * @ownLinks currency_id,\Modules\Core\Entities\Currency,id|savings_product_id,\Modules\Savings\Entities\SavingsProduct,id|client_id,\Modules\Client\Entities\Client,id|branch_id,\Modules\Branch\Entities\Branch,id
     * @foreignLinks id,\Modules\Savings\Entities\SavingsLinkedCharge,savings_id|id,\Modules\Savings\Entities\SavingsTransaction,savings_id|id,\Modules\Share\Entities\Share,savings_id|id,\Modules\Savings\Entities\SavingsFile,savings_id
     * @mixin _IH_Savings_QB
     */
    class Savings extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int $currency_id
     * @property int $savings_charge_type_id
     * @property int $savings_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 $schedule
     * @property int|null $schedule_frequency
     * @property string|null $schedule_frequency_type
     * @property int $active
     * @property int $allow_override
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property SavingsChargeOption $charge_option
     * @method HasOne|_IH_SavingsChargeOption_QB charge_option()
     * @property SavingsChargeType $charge_type
     * @method HasOne|_IH_SavingsChargeType_QB charge_type()
     * @method static _IH_SavingsCharge_QB onWriteConnection()
     * @method _IH_SavingsCharge_QB newQuery()
     * @method static _IH_SavingsCharge_QB on(null|string $connection = null)
     * @method static _IH_SavingsCharge_QB query()
     * @method static _IH_SavingsCharge_QB with(array|string $relations)
     * @method _IH_SavingsCharge_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_SavingsCharge_C|SavingsCharge[] all()
     * @ownLinks currency_id,\Modules\Core\Entities\Currency,id|savings_charge_type_id,\Modules\Savings\Entities\SavingsChargeType,id|savings_charge_option_id,\Modules\Savings\Entities\SavingsChargeOption,id|created_by_id,\Workbench\App\Models\User,id
     * @foreignLinks id,\Modules\Savings\Entities\SavingsLinkedCharge,savings_charge_id|id,\Modules\Savings\Entities\SavingsProductLinkedCharge,savings_charge_id
     * @mixin _IH_SavingsCharge_QB
     */
    class SavingsCharge extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property string|null $translated_name
     * @property int $active
     * @method static _IH_SavingsChargeOption_QB onWriteConnection()
     * @method _IH_SavingsChargeOption_QB newQuery()
     * @method static _IH_SavingsChargeOption_QB on(null|string $connection = null)
     * @method static _IH_SavingsChargeOption_QB query()
     * @method static _IH_SavingsChargeOption_QB with(array|string $relations)
     * @method _IH_SavingsChargeOption_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_SavingsChargeOption_C|SavingsChargeOption[] all()
     * @foreignLinks id,\Modules\Savings\Entities\SavingsCharge,savings_charge_option_id|id,\Modules\Savings\Entities\SavingsLinkedCharge,savings_charge_option_id
     * @mixin _IH_SavingsChargeOption_QB
     */
    class SavingsChargeOption extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property string|null $translated_name
     * @property int $active
     * @method static _IH_SavingsChargeType_QB onWriteConnection()
     * @method _IH_SavingsChargeType_QB newQuery()
     * @method static _IH_SavingsChargeType_QB on(null|string $connection = null)
     * @method static _IH_SavingsChargeType_QB query()
     * @method static _IH_SavingsChargeType_QB with(array|string $relations)
     * @method _IH_SavingsChargeType_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_SavingsChargeType_C|SavingsChargeType[] all()
     * @foreignLinks id,\Modules\Savings\Entities\SavingsCharge,savings_charge_type_id|id,\Modules\Savings\Entities\SavingsLinkedCharge,savings_charge_type_id
     * @mixin _IH_SavingsChargeType_QB
     */
    class SavingsChargeType extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $savings_file_type_id
     * @property int|null $savings_id
     * @property string|null $name
     * @property string|null $description
     * @property int|null $size
     * @property string|null $link
     * @property string $status
     * @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_SavingsFile_QB onWriteConnection()
     * @method _IH_SavingsFile_QB newQuery()
     * @method static _IH_SavingsFile_QB on(null|string $connection = null)
     * @method static _IH_SavingsFile_QB query()
     * @method static _IH_SavingsFile_QB with(array|string $relations)
     * @method _IH_SavingsFile_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_SavingsFile_C|SavingsFile[] all()
     * @ownLinks savings_file_type_id,\Modules\Savings\Entities\SavingsFileType,id|savings_id,\Modules\Savings\Entities\Savings,id
     * @mixin _IH_SavingsFile_QB
     */
    class SavingsFile extends Model {}
    
    /**
     * @property int $id
     * @property string $name
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @method static _IH_SavingsFileType_QB onWriteConnection()
     * @method _IH_SavingsFileType_QB newQuery()
     * @method static _IH_SavingsFileType_QB on(null|string $connection = null)
     * @method static _IH_SavingsFileType_QB query()
     * @method static _IH_SavingsFileType_QB with(array|string $relations)
     * @method _IH_SavingsFileType_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_SavingsFileType_C|SavingsFileType[] all()
     * @foreignLinks id,\Modules\Savings\Entities\SavingsFile,savings_file_type_id
     * @mixin _IH_SavingsFileType_QB
     */
    class SavingsFileType extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int|null $currency_id
     * @property int|null $savings_id
     * @property int|null $savings_charge_id
     * @property int|null $savings_charge_type_id
     * @property int|null $savings_charge_option_id
     * @property int|null $savings_transaction_id
     * @property string|null $name
     * @property float $amount
     * @property float|null $calculated_amount
     * @property float|null $paid_amount
     * @property int $active
     * @property int $waived
     * @property int $is_paid
     * @property Carbon|null $submitted_on
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property SavingsCharge|null $charge
     * @method HasOne|_IH_SavingsCharge_QB charge()
     * @property Savings|null $savings
     * @method BelongsTo|_IH_Savings_QB savings()
     * @method static _IH_SavingsLinkedCharge_QB onWriteConnection()
     * @method _IH_SavingsLinkedCharge_QB newQuery()
     * @method static _IH_SavingsLinkedCharge_QB on(null|string $connection = null)
     * @method static _IH_SavingsLinkedCharge_QB query()
     * @method static _IH_SavingsLinkedCharge_QB with(array|string $relations)
     * @method _IH_SavingsLinkedCharge_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_SavingsLinkedCharge_C|SavingsLinkedCharge[] all()
     * @ownLinks currency_id,\Modules\Core\Entities\Currency,id|savings_id,\Modules\Savings\Entities\Savings,id|savings_charge_id,\Modules\Savings\Entities\SavingsCharge,id|savings_charge_type_id,\Modules\Savings\Entities\SavingsChargeType,id|savings_charge_option_id,\Modules\Savings\Entities\SavingsChargeOption,id|savings_transaction_id,\Modules\Savings\Entities\SavingsTransaction,id
     * @foreignLinks id,\Modules\Savings\Entities\SavingsTransaction,savings_linked_charge_id
     * @mixin _IH_SavingsLinkedCharge_QB
     */
    class SavingsLinkedCharge extends Model {}
    
    /**
     * @property int $id
     * @property int|null $created_by_id
     * @property int $currency_id
     * @property int|null $savings_reference_chart_of_account_id
     * @property int|null $overdraft_portfolio_chart_of_account_id
     * @property int|null $savings_control_chart_of_account_id
     * @property int|null $interest_on_savings_chart_of_account_id
     * @property int|null $write_off_savings_chart_of_account_id
     * @property int|null $income_from_fees_chart_of_account_id
     * @property int|null $income_from_penalties_chart_of_account_id
     * @property int|null $income_from_interest_overdraft_chart_of_account_id
     * @property string $name
     * @property string|null $short_name
     * @property string|null $description
     * @property int|null $decimals
     * @property string $savings_category
     * @property int $auto_create
     * @property float $minimum_interest_rate
     * @property float $default_interest_rate
     * @property float $maximum_interest_rate
     * @property string $interest_rate_type
     * @property string $compounding_period
     * @property string $interest_posting_period_type
     * @property string $interest_calculation_type
     * @property float $automatic_opening_balance
     * @property float $minimum_balance_for_interest_calculation
     * @property int $lockin_period
     * @property string $lockin_type
     * @property float $minimum_balance
     * @property int $allow_overdraft
     * @property float|null $overdraft_limit
     * @property float|null $overdraft_interest_rate
     * @property float|null $minimum_overdraft_for_interest
     * @property string|null $days_in_year
     * @property string|null $days_in_month
     * @property string|null $accounting_rule
     * @property int $active
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property _IH_SavingsProductLinkedCharge_C|SavingsProductLinkedCharge[] $charges
     * @property-read int $charges_count
     * @method HasMany|_IH_SavingsProductLinkedCharge_QB charges()
     * @method static _IH_SavingsProduct_QB onWriteConnection()
     * @method _IH_SavingsProduct_QB newQuery()
     * @method static _IH_SavingsProduct_QB on(null|string $connection = null)
     * @method static _IH_SavingsProduct_QB query()
     * @method static _IH_SavingsProduct_QB with(array|string $relations)
     * @method _IH_SavingsProduct_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_SavingsProduct_C|SavingsProduct[] all()
     * @ownLinks currency_id,\Modules\Core\Entities\Currency,id
     * @foreignLinks id,\Modules\Savings\Entities\Savings,savings_product_id|id,\Modules\Savings\Entities\SavingsProductLinkedCharge,savings_product_id
     * @mixin _IH_SavingsProduct_QB
     */
    class SavingsProduct extends Model {}
    
    /**
     * @property int $id
     * @property int $savings_product_id
     * @property int $savings_charge_id
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property SavingsCharge $charge
     * @method HasOne|_IH_SavingsCharge_QB charge()
     * @method static _IH_SavingsProductLinkedCharge_QB onWriteConnection()
     * @method _IH_SavingsProductLinkedCharge_QB newQuery()
     * @method static _IH_SavingsProductLinkedCharge_QB on(null|string $connection = null)
     * @method static _IH_SavingsProductLinkedCharge_QB query()
     * @method static _IH_SavingsProductLinkedCharge_QB with(array|string $relations)
     * @method _IH_SavingsProductLinkedCharge_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_SavingsProductLinkedCharge_C|SavingsProductLinkedCharge[] all()
     * @ownLinks savings_product_id,\Modules\Savings\Entities\SavingsProduct,id|savings_charge_id,\Modules\Savings\Entities\SavingsCharge,id
     * @mixin _IH_SavingsProductLinkedCharge_QB
     */
    class SavingsProductLinkedCharge extends Model {}
    
    /**
     * @property int $id
     * @property int $savings_id
     * @property int|null $created_by_id
     * @property int|null $branch_id
     * @property int|null $savings_linked_charge_id
     * @property int|null $payment_detail_id
     * @property string|null $name
     * @property float $amount
     * @property float|null $credit
     * @property float|null $debit
     * @property float|null $balance
     * @property int $savings_transaction_type_id
     * @property int $reversed
     * @property int $reversible
     * @property Carbon|null $submitted_on
     * @property Carbon|null $created_on
     * @property string|null $description
     * @property string|null $reference
     * @property string|null $gateway_id
     * @property string|null $payment_gateway_data
     * @property int $online_transaction
     * @property string $status
     * @property Carbon|null $created_at
     * @property Carbon|null $updated_at
     * @property User|null $created_by
     * @method HasOne|_IH_User_QB created_by()
     * @property PaymentDetail|null $payment_detail
     * @method HasOne|_IH_PaymentDetail_QB payment_detail()
     * @property Savings $savings
     * @method HasOne|_IH_Savings_QB savings()
     * @property SavingsLinkedCharge|null $savings_linked_charge
     * @method HasOne|_IH_SavingsLinkedCharge_QB savings_linked_charge()
     * @method static _IH_SavingsTransaction_QB onWriteConnection()
     * @method _IH_SavingsTransaction_QB newQuery()
     * @method static _IH_SavingsTransaction_QB on(null|string $connection = null)
     * @method static _IH_SavingsTransaction_QB query()
     * @method static _IH_SavingsTransaction_QB with(array|string $relations)
     * @method _IH_SavingsTransaction_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_SavingsTransaction_C|SavingsTransaction[] all()
     * @ownLinks savings_id,\Modules\Savings\Entities\Savings,id|branch_id,\Modules\Branch\Entities\Branch,id|savings_linked_charge_id,\Modules\Savings\Entities\SavingsLinkedCharge,id|payment_detail_id,\Modules\Core\Entities\PaymentDetail,id
     * @foreignLinks id,\Modules\Savings\Entities\SavingsLinkedCharge,savings_transaction_id
     * @mixin _IH_SavingsTransaction_QB
     */
    class SavingsTransaction extends Model {}
}