fx-shared-models 0.2.77__tar.gz → 0.2.78__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fx_shared_models-0.2.77/fx_shared_models.egg-info → fx_shared_models-0.2.78}/PKG-INFO +1 -1
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78/fx_shared_models.egg-info}/PKG-INFO +1 -1
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/setup.py +1 -1
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/models.py +14 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/services/commission_cache_service.py +2 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/services/commission_calculator_service.py +32 -11
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/referrals/models.py +12 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/LICENSE +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/MANIFEST.in +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/README.md +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/fx_shared_models.egg-info/SOURCES.txt +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/fx_shared_models.egg-info/dependency_links.txt +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/fx_shared_models.egg-info/requires.txt +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/fx_shared_models.egg-info/top_level.txt +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/setup.cfg +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/migrations/0002_remove_account_group_type_account_has_bonus_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/migrations/0003_account_is_archived_account_is_trading_enabled.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/migrations/0004_alter_account_created_at_alter_account_created_by_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/migrations/0005_account_currency.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/migrations/0006_alter_account_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/migrations/0007_alter_account_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/common/base.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/common/mixins.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/common/utils.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/company_ba/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/company_ba/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/company_ba/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/company_ba/migrations/0002_alter_companybankaccount_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/company_ba/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/company_ba/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/constants.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/crypto_wallet/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/crypto_wallet/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/crypto_wallet/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/crypto_wallet/migrations/0002_alter_companycryptowallet_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/crypto_wallet/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/crypto_wallet/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_crypto_wallet/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_crypto_wallet/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_crypto_wallet/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_crypto_wallet/migrations/0002_alter_customercryptowallet_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_crypto_wallet/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_crypto_wallet/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_upi/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_upi/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_upi/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_upi/migrations/0002_alter_customerupi_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_upi/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_upi/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/enums.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0002_alter_customer_email_alter_customer_first_name_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0004_customerauth_two_factor_backup_codes_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0005_customerauth_temp_webauthn_challenge.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0006_customerauth_webauthn_challenge.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0007_customerauth_blocked_customerauth_blocked_at_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0008_customer_email_hash.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0009_remove_customerauth_blocked_by_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0010_customerauth_blocked_by_customerauth_unblocked_by.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0011_customerauth_reset_token_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0012_alter_customer_email_alter_customer_first_name_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0013_alter_customerauth_blocked_by_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/0014_alter_customer_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_campaigns/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_campaigns/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_campaigns/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_campaigns/migrations/0002_alter_emailcampaign_options_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_campaigns/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_campaigns/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_log/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_log/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_log/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_log/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_log/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0002_alter_commissiondistribution_processed_time.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0003_clientibmapping_idx_client_mapping_lookup_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0004_ibonboardingstatus.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0005_ibonboardingstatus_ib_journey_form_submitted_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0006_ibonboardingstatus_creation_source.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0007_ibquestionnaire.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0008_ibcommissionrule_lot_size.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0009_ibcommissionrule_min_volume.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0010_alter_commissiondistribution_rule_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/0011_alter_clientibmapping_agreement_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/model/ib_onboarding.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/model/ib_questionnaire.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/services/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/referrals/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/referrals/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/referrals/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/referrals/migrations/0002_alter_referralreward_payment_gateway_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/referrals/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/services/group_resolver.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0002_rename_is_enabled_systemsetting_is_active.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0003_tradingplatformserver.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0004_tradingplatformserver_connection_timeout_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0005_accountsequence_accounttype.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0006_alter_accounttype_sequence.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0007_remove_accounttype_default_group_type_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0008_paymentgatewayconfig_paymentmethodconfig_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0009_alter_accountsequence_created_at_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0010_alter_paymentgatewayconfig_gateway_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0011_tradingplatformserverlog.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0012_alter_emailcontent_content_sections.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0013_kycrequirementrule.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0014_alter_paymentgatewayconfig_payment_method_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0015_alter_paymentgatewayconfig_payment_method_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0016_alter_emailconfiguration_options_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0017_brokerconfiguration.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/0018_accounttype_demo_auto_deposit_amount.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/account_sequence.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/account_types.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/base.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/broker_config.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/email.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/group_configurations.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/payment_methods.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/trading_platform.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/transaction_configs.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/serializers.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/migrations/0002_alter_deal_id.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/migrations/0003_alter_deal_id.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/migrations/0004_alter_deal_id.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/migrations/0005_deal_idx_deal_position_lookup_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/constants.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/enums.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0002_transaction_mt5_ticket.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0003_alter_transaction_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0004_alter_transaction_created_by.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0005_alter_transaction_status.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0006_transaction_approved_at.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0007_transaction_assigned_user_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0008_alter_transaction_payment_method.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0009_alter_transaction_approved_by_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0010_alter_transaction_payment_method.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0011_alter_transaction_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/0012_transaction_transaction_custome_fb8ec8_idx.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/transactions/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ui_elements/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ui_elements/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ui_elements/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ui_elements/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ui_elements/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/upi_id/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/upi_id/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/upi_id/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/upi_id/migrations/0002_alter_companyupiid_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/upi_id/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/upi_id/models.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/apps.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/managers.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0001_initial.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0002_alter_crmuser_managers.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0003_alter_crmuser_options_alter_crmuser_managers.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0004_alter_crmuser_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0005_remove_crmuser_is_2fa_enabled_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0006_rename_preferred_2fa_method_usersettings_default_2fa_method_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0007_alter_usersettings_options_alter_usersettings_table.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0008_usersettings_temp_webauthn_challenge.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0009_alter_userprofile_profile_picture.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0010_alter_crmuser_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0011_alter_crmuser_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0012_alter_crmuser_managers_usersettings_is_2fa_enabled_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0013_usersettings_is_2fa_enabled_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0014_alter_crmuser_groups_alter_crmuser_user_permissions_and_more.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0015_alter_crmuser_options.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/__init__.py +0 -0
- {fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/models.py +0 -0
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages # Import find_packages
|
|
|
2
2
|
|
|
3
3
|
setup(
|
|
4
4
|
name='fx-shared-models',
|
|
5
|
-
version='0.2.
|
|
5
|
+
version='0.2.78', # Incremented version after adding shared_models/__init__.py
|
|
6
6
|
packages=find_packages(include=['shared_models', 'shared_models.*']), # Find packages under the shared_models directory
|
|
7
7
|
install_requires=[
|
|
8
8
|
'Django>=4.2', # Match the version from requirements.txt if possible
|
|
@@ -33,6 +33,15 @@ class IBHierarchy(BaseModel):
|
|
|
33
33
|
help_text='IB account that receives commissions')
|
|
34
34
|
mt5_login = models.IntegerField(help_text='MT5 login for deal processing')
|
|
35
35
|
|
|
36
|
+
default_agreement = models.ForeignKey(
|
|
37
|
+
'IBAgreement',
|
|
38
|
+
null=True,
|
|
39
|
+
blank=True,
|
|
40
|
+
on_delete=models.SET_NULL,
|
|
41
|
+
related_name='default_for_hierarchies',
|
|
42
|
+
help_text='Default agreement when not specified in client mapping'
|
|
43
|
+
)
|
|
44
|
+
|
|
36
45
|
is_active = models.BooleanField(default=True)
|
|
37
46
|
|
|
38
47
|
def save(self, *args, **kwargs):
|
|
@@ -95,6 +104,11 @@ class ClientIBMapping(BaseModel):
|
|
|
95
104
|
help_text='Default agreement for this client-IB relationship')
|
|
96
105
|
ib_path = models.TextField(help_text='Full path of IBs using customer ids')
|
|
97
106
|
mt5_login = models.IntegerField(help_text="Client's MT5 login", null=True, blank=True)
|
|
107
|
+
agreement_path = models.TextField(
|
|
108
|
+
null=True,
|
|
109
|
+
blank=True,
|
|
110
|
+
help_text='Agreement IDs for each IB level in hierarchy (dot-separated). Empty positions use IB default.'
|
|
111
|
+
)
|
|
98
112
|
|
|
99
113
|
class Meta:
|
|
100
114
|
app_label = 'ib_commission'
|
|
@@ -350,6 +350,7 @@ class CommissionCacheService:
|
|
|
350
350
|
'level': hierarchy.level,
|
|
351
351
|
'mt5_login': hierarchy.mt5_login,
|
|
352
352
|
'is_active': hierarchy.is_active,
|
|
353
|
+
'default_agreement_id': hierarchy.default_agreement_id if hasattr(hierarchy, 'default_agreement_id') else None,
|
|
353
354
|
}
|
|
354
355
|
|
|
355
356
|
# Add ib_account data if exists
|
|
@@ -432,6 +433,7 @@ class CommissionCacheService:
|
|
|
432
433
|
'direct_ib_customer_id': mapping.direct_ib_customer_id,
|
|
433
434
|
'master_ib_customer_id': mapping.master_ib_customer_id,
|
|
434
435
|
'agreement_id': mapping.agreement_id,
|
|
436
|
+
'agreement_path': mapping.agreement_path if hasattr(mapping, 'agreement_path') else None,
|
|
435
437
|
'ib_path': mapping.ib_path,
|
|
436
438
|
'mt5_login': mapping.mt5_login,
|
|
437
439
|
}
|
|
@@ -303,6 +303,15 @@ class CommissionCalculatorService:
|
|
|
303
303
|
# Get all ancestor IB IDs from the path
|
|
304
304
|
path_parts = ib_hierarchy.path.split('.') # Includes the direct IB's ID
|
|
305
305
|
|
|
306
|
+
# Parse agreement_path if available (with backward compatibility check)
|
|
307
|
+
agreement_ids = []
|
|
308
|
+
if hasattr(client_mapping, 'agreement_path') and client_mapping.agreement_path:
|
|
309
|
+
agreement_ids = client_mapping.agreement_path.split('.')
|
|
310
|
+
|
|
311
|
+
# Validate agreement_path structure matches ib_path
|
|
312
|
+
if len(agreement_ids) != len(path_parts):
|
|
313
|
+
logger.warning(f"Agreement path length ({len(agreement_ids)}) doesn't match IB path length ({len(path_parts)}) for client {client_mapping.customer_id}")
|
|
314
|
+
|
|
306
315
|
# Get all relevant IB agreements (cache this if possible)
|
|
307
316
|
ib_agreements = {}
|
|
308
317
|
|
|
@@ -322,18 +331,30 @@ class CommissionCalculatorService:
|
|
|
322
331
|
)
|
|
323
332
|
)
|
|
324
333
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
+
# Build ib_agreements respecting agreement_path
|
|
335
|
+
for i, ib_id in enumerate(path_parts):
|
|
336
|
+
if i < len(agreement_ids) and agreement_ids[i]:
|
|
337
|
+
# Use specified agreement from agreement_path
|
|
338
|
+
member = next((m for m in agreement_members
|
|
339
|
+
if str(m.customer_id) == ib_id
|
|
340
|
+
and str(m.agreement_id) == agreement_ids[i]), None)
|
|
341
|
+
if member:
|
|
342
|
+
ib_agreements[ib_id] = member.agreement
|
|
343
|
+
else:
|
|
344
|
+
logger.warning(f"Agreement {agreement_ids[i]} not found for IB {ib_id}, skipping this IB")
|
|
334
345
|
else:
|
|
335
|
-
#
|
|
336
|
-
|
|
346
|
+
# Try to use default agreement from IBHierarchy
|
|
347
|
+
hierarchy = IBHierarchy.objects.filter(
|
|
348
|
+
customer_id=ib_id, is_active=True
|
|
349
|
+
).first()
|
|
350
|
+
if hierarchy and hasattr(hierarchy, 'default_agreement') and hierarchy.default_agreement:
|
|
351
|
+
ib_agreements[ib_id] = hierarchy.default_agreement
|
|
352
|
+
else:
|
|
353
|
+
# Fallback: use any agreement for this IB (current behavior)
|
|
354
|
+
member = next((m for m in agreement_members
|
|
355
|
+
if str(m.customer_id) == ib_id), None)
|
|
356
|
+
if member:
|
|
357
|
+
ib_agreements[ib_id] = member.agreement
|
|
337
358
|
|
|
338
359
|
# Calculate rule-based distribution for the hierarchy
|
|
339
360
|
distributions = cls._calculate_rule_based_distribution(
|
|
@@ -94,6 +94,18 @@ class ReferralSource(BaseModel):
|
|
|
94
94
|
help_text="Optional: Specific account to receive rewards generated by this code."
|
|
95
95
|
)
|
|
96
96
|
|
|
97
|
+
# IB hierarchy tracking for agreement path
|
|
98
|
+
ib_path = models.TextField(
|
|
99
|
+
null=True,
|
|
100
|
+
blank=True,
|
|
101
|
+
help_text='Full IB hierarchy path (dot-separated customer IDs) at time of code generation'
|
|
102
|
+
)
|
|
103
|
+
agreement_path = models.TextField(
|
|
104
|
+
null=True,
|
|
105
|
+
blank=True,
|
|
106
|
+
help_text='Agreement IDs for each IB level (dot-separated) at time of code generation'
|
|
107
|
+
)
|
|
108
|
+
|
|
97
109
|
# Status & Stats
|
|
98
110
|
is_active = models.BooleanField(default=True)
|
|
99
111
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/fx_shared_models.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/accounts/migrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/company_ba/migrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_crypto_wallet/__init__.py
RENAMED
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_crypto_wallet/apps.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customer_crypto_wallet/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/customers/migrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_campaigns/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/email_log/migrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ib_commission/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/referrals/migrations/__init__.py
RENAMED
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/services/group_resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/base.py
RENAMED
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/models/email.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/system_settings/serializers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/trading/migrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/ui_elements/migrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/upi_id/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/upi_id/migrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fx_shared_models-0.2.77 → fx_shared_models-0.2.78}/shared_models/users/migrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|