o
    LDi                     @   s   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZ dZdZdZd	Zed
dG dd dZG dd deZdS )    )	AwaitableCallable)	dataclass)Any)BaseMiddleware)ChatChatBoostSourcePremiumInaccessibleMessageTelegramObjectUpdateUserevent_contextevent_from_user
event_chatevent_thread_idT)frozenc                   @   sz   e Zd ZU dZedB ed< dZedB ed< dZe	dB ed< dZ
edB ed< ede	dB fddZede	dB fd	d
ZdS )EventContextNchatuser	thread_idbusiness_connection_idreturnc                 C      | j r| j jS d S N)r   idself r   w/var/www/www-root/data/www/77.83.87.30/venv/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/user_context.pyuser_id      zEventContext.user_idc                 C   r   r   )r   r   r   r   r   r   chat_id!   r    zEventContext.chat_id)__name__
__module____qualname__r   r   __annotations__r   r   r   intr   strpropertyr   r!   r   r   r   r   r      s   
 r   c                   @   s\   e Zd Zdeeeeef gee f dedeeef defddZ	e
dedefddZd	S )
UserContextMiddlewarehandlereventdatar   c                    sx   t |tsd}t|| j|d }|t< |jd ur |j|t< |jd ur*|j|t< |j	d ur4|j	|t
< |||I d H S )Nz3UserContextMiddleware got an unexpected event type!)r+   )
isinstancer   RuntimeErrorresolve_event_contextEVENT_CONTEXT_KEYr   EVENT_FROM_USER_KEYr   EVENT_CHAT_KEYr   EVENT_THREAD_ID_KEY)r   r*   r+   r,   msgr   r   r   r   __call__'   s   






zUserContextMiddleware.__call__c                 C   s  |j rt|j j|j j|j jr|j jdS ddS |jr0t|jj|jj|jjr,|jjdS ddS |jr:t|jjdS |jrDt|jjdS |j	rNt|j	jdS |j
rXt|j
jdS |jr|jj }|rt|j|jjt|tsr|jrr|jndt|ts}|jdS ddS t|jjdS |jrt|jjdS |jrt|jjdS |jrt|jj|jjdS |jrt|jj|jjdS |jrt|jj|jjdS |jrt|jj|jjdS |jrt|jj|jjdS |jrt|jjdS |jrt|jjjtrt|jj|jjjjdS t|jjdS |jrt|jjdS |jrt|jj|jjdS |jr-t|jj|jj dS |j!rHt|j!j|j!j|j!jrA|j!jnd|j!jdS |j"rct|j"j|j"j|j"jr\|j"jnd|j"jdS |j#rnt|j#jdS t S )	zC
        Resolve chat and user instance from Update object
        N)r   r   r   )r   )r   )r   r   r   r   )r   r   )r   r   )r   r   )$messager   r   	from_useris_topic_messagemessage_thread_idedited_messagechannel_postedited_channel_postinline_querychosen_inline_resultcallback_queryr-   r	   r   shipping_querypre_checkout_querypoll_answer
voter_chatr   my_chat_memberchat_memberchat_join_requestmessage_reactionmessage_reaction_count
chat_boostboostsourcer   removed_chat_boostdeleted_business_messagesbusiness_connectionr   business_messageedited_business_messagepurchased_paid_media)clsr+   callback_query_messager   r   r   r/   <   s   	


z+UserContextMiddleware.resolve_event_contextN)r"   r#   r$   r   r
   dictr'   r   r   r5   classmethodr   r   r/   r   r   r   r   r)   &   s    

r)   N)collections.abcr   r   dataclassesr   typingr   #aiogram.dispatcher.middlewares.baser   aiogram.typesr   r   r	   r
   r   r   r0   r1   r2   r3   r   r)   r   r   r   r   <module>   s     	