
    |Si                        d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	m
Z
mZ ddlmZ  ed       G d	 d
             Z G d de      Zy)z:Wallet-specific hook context for django-hooks integration.    )annotations)	dataclassfield)Decimal)AnyDictOptional)HookRegistryT)frozenc                      e Zd ZU dZded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   dZd
ed<   dZded<    ee      Z	ded<    ee      Z
ded<   dZded<   y)HookContextz
    Immutable context passed to hooks containing transaction details.

    All transaction parameters are frozen to prevent hooks from modifying them.
    Use metadata dict to share data between hooks.
    str	operationintuser_id
point_typer   amountremarkszOptional[int]
trans_typeiidN
to_user_idzOptional[str]to_point_type)default_factoryzDict[str, Any]paramsmetadatazOptional[Decimal]current_balance)__name__
__module____qualname____doc____annotations__r   r   r   dictr   r   r        L/home/cursorai/projects/django-wallet-utils/src/django_wallet_utils/hooks.pyr   r      sv     N LO OL	H !%J$#'M=' #48FN8  %T:Hn: *.O&-r$   r   c                  "     e Zd ZdZ fdZ xZS )WalletHookRegistryz
    Wallet-specific hook registry that extends the base registry.
    
    Adds wallet operations: 'add', 'deduct', 'transfer', and '*' (all)
    c                *    t         |   g d       y )N)adddeducttransfer*)
operations)super__init__)self	__class__s    r%   r/   zWalletHookRegistry.__init__8   s    $FGr$   )r   r   r   r    r/   __classcell__)r1   s   @r%   r'   r'   1   s    H Hr$   r'   N)r    
__future__r   dataclassesr   r   decimalr   typingr   r   r	   django_package_hooksr
   BaseHookRegistryr   r'   r#   r$   r%   <module>r9      sK    @ " (  & & B $ .  .  .FH) Hr$   