Creating test database for alias 'default'... .............................../home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/base.py:368: RuntimeWarning: Model 'test_app.customtransaction' was already registered. Reloading models is not advised as it can lead to inconsistencies, most notably with related models. new_class._meta.apps.register_model(new_class._meta.app_label, new_class) ..................EE..........EE...E..EEEEEEEEE.EEEEEEEEEEEEEEEEE...EEEEEEEEEEEEEEEEE...EE ====================================================================== ERROR: test_update_balance_add (test_app.tests.test_wallet_repository.WalletRepositoryBalanceOperationsTests.test_update_balance_add) Test update_balance for adding. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_repository.py", line 80, in test_update_balance_add new_balance = self.repo.update_balance( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_update_balance_negative_allowed (test_app.tests.test_wallet_repository.WalletRepositoryBalanceOperationsTests.test_update_balance_negative_allowed) Test update_balance allows negative balance. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_repository.py", line 102, in test_update_balance_negative_allowed new_balance = self.repo.update_balance( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_accumulation (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_accumulation) Test multiple additions accumulate correctly. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 197, in test_add_point_accumulation self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_decimal_precision (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_decimal_precision) Test decimal precision handling. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 163, in test_add_point_decimal_precision self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_multiple_point_types (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_multiple_point_types) Add points to different point types. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 132, in test_add_point_multiple_point_types self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_standard (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_standard) Standard case: Add points to user wallet. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 52, in test_add_point_standard transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_system_initiated (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_system_initiated) Add points with system initiator (default iid=-100). ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 100, in test_add_point_system_initiated transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_very_large_amount (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_very_large_amount) Edge case: Add very large amount. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 240, in test_add_point_very_large_amount transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_very_small_amount (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_very_small_amount) Edge case: Add very small amount. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 222, in test_add_point_very_small_amount transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_with_extra_data (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_with_extra_data) Add points with extra data in params. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 112, in test_add_point_with_extra_data transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_with_iid (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_with_iid) Add points with initiator ID (user-initiated). ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 87, in test_add_point_with_iid transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_with_transaction_type (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_with_transaction_type) Add points with transaction type constant. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 68, in test_add_point_with_transaction_type transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_zero_amount (test_app.tests.test_wallet_service.WalletServiceAddPointTests.test_add_point_zero_amount) Edge case: Add zero amount. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 209, in test_add_point_zero_amount transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_add_point_custom_field_name (test_app.tests.test_wallet_service.WalletServiceCustomFieldNameTests.test_add_point_custom_field_name) Add points using custom field name. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 828, in test_add_point_custom_field_name transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_deduct_point_allow_negative (test_app.tests.test_wallet_service.WalletServiceDeductPointTests.test_deduct_point_allow_negative) Edge case: Allow negative balance. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 334, in setUp self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_deduct_point_decimal_precision (test_app.tests.test_wallet_service.WalletServiceDeductPointTests.test_deduct_point_decimal_precision) Test decimal precision handling. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 334, in setUp self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_deduct_point_exact_balance (test_app.tests.test_wallet_service.WalletServiceDeductPointTests.test_deduct_point_exact_balance) Edge case: Deduct exact balance. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 334, in setUp self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_deduct_point_insufficient_balance (test_app.tests.test_wallet_service.WalletServiceDeductPointTests.test_deduct_point_insufficient_balance) Error case: Insufficient balance. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 334, in setUp self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_deduct_point_multiple_deductions (test_app.tests.test_wallet_service.WalletServiceDeductPointTests.test_deduct_point_multiple_deductions) Test multiple deductions. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 334, in setUp self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_deduct_point_race_condition_prevention (test_app.tests.test_wallet_service.WalletServiceDeductPointTests.test_deduct_point_race_condition_prevention) Test atomic deduction prevents race conditions. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 334, in setUp self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_deduct_point_standard (test_app.tests.test_wallet_service.WalletServiceDeductPointTests.test_deduct_point_standard) Standard case: Deduct points from wallet. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 334, in setUp self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_deduct_point_with_transaction_type (test_app.tests.test_wallet_service.WalletServiceDeductPointTests.test_deduct_point_with_transaction_type) Deduct points with transaction type constant. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 334, in setUp self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_deduct_point_zero_amount (test_app.tests.test_wallet_service.WalletServiceDeductPointTests.test_deduct_point_zero_amount) Edge case: Deduct zero amount. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 334, in setUp self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_balance_accuracy_after_multiple_operations (test_app.tests.test_wallet_service.WalletServiceEdgeCasesTests.test_balance_accuracy_after_multiple_operations) Test balance accuracy after many operations. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 1069, in test_balance_accuracy_after_multiple_operations self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_empty_extra_data (test_app.tests.test_wallet_service.WalletServiceEdgeCasesTests.test_empty_extra_data) Test with empty extra_data. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 1016, in test_empty_extra_data transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_empty_remarks (test_app.tests.test_wallet_service.WalletServiceEdgeCasesTests.test_empty_remarks) Test with empty remarks. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 991, in test_empty_remarks transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_multiple_concurrent_operations (test_app.tests.test_wallet_service.WalletServiceEdgeCasesTests.test_multiple_concurrent_operations) Test multiple concurrent operations. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 1043, in test_multiple_concurrent_operations self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_no_params (test_app.tests.test_wallet_service.WalletServiceEdgeCasesTests.test_no_params) Test without params parameter. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 1029, in test_no_params transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_none_transaction_type (test_app.tests.test_wallet_service.WalletServiceEdgeCasesTests.test_none_transaction_type) Test with None transaction type. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 1003, in test_none_transaction_type transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_system_user_id (test_app.tests.test_wallet_service.WalletServiceEdgeCasesTests.test_system_user_id) Test using system user ID (-100) for uid. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 964, in test_system_user_id transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_very_long_remarks (test_app.tests.test_wallet_service.WalletServiceEdgeCasesTests.test_very_long_remarks) Test with very long remarks. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 979, in test_very_long_remarks transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_count_transactions (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_count_transactions) Count transactions matching filters. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_by_id (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_by_id) Get a single transaction by ID. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_by_id_not_found (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_by_id_not_found) Get transaction by non-existent ID. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_by_iid (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_by_iid) Get transactions filtered by initiator ID. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_by_point_type (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_by_point_type) Get transactions filtered by point_type. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_by_trans_type (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_by_trans_type) Get transactions filtered by trans_type. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_by_transaction_type_credit (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_by_transaction_type_credit) Get transactions filtered by transaction_type='c'. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_by_transaction_type_debit (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_by_transaction_type_debit) Get transactions filtered by transaction_type='d'. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_by_user_id (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_by_user_id) Get transactions filtered by user_id. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_combined_filters (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_combined_filters) Get transactions with multiple filters. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_date_range (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_date_range) Get transactions filtered by date range. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_date_range_string (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_date_range_string) Get transactions filtered by date range (ISO string format). ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_invalid_point_type (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_invalid_point_type) Error case: Invalid point type in filter. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_invalid_transaction_type (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_invalid_transaction_type) Error case: Invalid transaction_type value. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_ordering (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_ordering) Test that transactions are ordered by creation date (newest first). ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_pagination_limit (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_pagination_limit) Get transactions with limit. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_get_transaction_history_pagination_offset (test_app.tests.test_wallet_service.WalletServiceTransactionHistoryTests.test_get_transaction_history_pagination_offset) Get transactions with offset. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 501, in setUp tid = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_transaction_type_in_transaction_record (test_app.tests.test_wallet_service.WalletServiceTransactionTypesTests.test_transaction_type_in_transaction_record) Test transaction type is stored correctly. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 927, in test_transaction_type_in_transaction_record transaction_id = self.service.add_point( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ====================================================================== ERROR: test_atomic_deduction_prevents_race_condition (test_app.tests.test_wallet_service.WalletServiceRaceConditionTests.test_atomic_deduction_prevents_race_condition) Test that atomic deduction prevents race conditions. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 118, in add_point balance_after = self.repository.update_balance(user_id, point_type, amount_rounded, allow_negative=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/contextlib.py", line 81, in inner return func(*args, **kwds) ^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/repository.py", line 288, in update_balance balance_model.objects.filter(**filter_kwargs).update( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1495, in filter return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1513, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, args, kwargs) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1523, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q child_clause, needed_inner = self.build_filter( ^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cursorai/projects/telegram-earn/sandbox/venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/cursorai/projects/telegram-earn/sandbox/test_app/tests/test_wallet_service.py", line 1106, in setUp self.service.add_point( File "/home/cursorai/projects/telegram-earn/packages/wallet_utils/src/wallet_utils/service.py", line 120, in add_point raise WalletOperationError(f"Error adding user point: {e}") from e wallet_utils.exceptions.WalletOperationError: Error adding user point: Cannot resolve keyword 'user_id' into field. Choices are: credit_balance, crypto_balance, email, id, points, reward_points, username ---------------------------------------------------------------------- Ran 121 tests in 0.422s FAILED (errors=50) Destroying test database for alias 'default'... Found 121 test(s). System check identified no issues (0 silenced).