
    F˝i                         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
       G d d             Z G d de      Zy)    )	AwaitableCallable)	dataclass)Any)BaseMiddleware)ChatChatBoostSourcePremiumInaccessibleMessageTelegramObjectUpdateUserevent_contextevent_from_user
event_chatevent_thread_idT)frozenc                       e Zd ZU dZedz  ed<   dZedz  ed<   dZe	dz  ed<   dZ
edz  ed<   ede	dz  fd       Zede	dz  fd       Zy)	EventContextNchatuser	thread_idbusiness_connection_idreturnc                 J    | j                   r| j                   j                  S d S N)r   idselfs    d/home/leshdev/mybot/venv/lib/python3.12/site-packages/aiogram/dispatcher/middlewares/user_context.pyuser_idzEventContext.user_id       #yytyy||2d2    c                 J    | j                   r| j                   j                  S d S r   )r   r   r   s    r   chat_idzEventContext.chat_id!   r!   r"   )__name__
__module____qualname__r   r   __annotations__r   r   r   intr   strpropertyr    r$    r"   r   r   r      sw    D$+D$+ IsTz )-C$J-3t 3 3 3t 3 3r"   r   c                   f    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Z	e
dedefd       Zy)UserContextMiddlewarehandlereventdatar   c                 Z  K   t        |t              sd}t        |      | j                  |      x}|t        <   |j
                  |j
                  |t        <   |j                  |j                  |t        <   |j                  |j                  |t        <    |||       d {   S 7 w)Nz3UserContextMiddleware got an unexpected event type!)r0   )
isinstancer   RuntimeErrorresolve_event_contextEVENT_CONTEXT_KEYr   EVENT_FROM_USER_KEYr   EVENT_CHAT_KEYr   EVENT_THREAD_ID_KEY)r   r/   r0   r1   msgr   s         r   __call__zUserContextMiddleware.__call__'   s      %(GCs##262L2LSX2L2YY./ )(5(:(:D$%)#0#5#5D "".(5(?(?D$%UD))))s   B"B+$B)%B+c           	      N   |j                   rgt        |j                   j                  |j                   j                  |j                   j                  r|j                   j
                        S d      S |j                  rgt        |j                  j                  |j                  j                  |j                  j                  r|j                  j
                        S d      S |j                  r t        |j                  j                        S |j                  r t        |j                  j                        S |j                  r t        |j                  j                        S |j                  r t        |j                  j                        S |j                  r|j                  j                   }|rvt        |j                  |j                  j                  t        |t              s|j                  r|j
                  ndt        |t              s|j                        S d      S t        |j                  j                        S |j                  r t        |j                  j                        S |j                   r t        |j                   j                        S |j"                  r5t        |j"                  j$                  |j"                  j&                        S |j(                  r5t        |j(                  j                  |j(                  j                        S |j*                  r5t        |j*                  j                  |j*                  j                        S |j,                  r5t        |j,                  j                  |j,                  j                        S |j.                  r5t        |j.                  j                  |j.                  j&                        S |j0                  r t        |j0                  j                        S |j2                  rt        |j2                  j4                  j6                  t8              rIt        |j2                  j                  |j2                  j4                  j6                  j&                        S t        |j2                  j                        S |j:                  r t        |j:                  j                        S |j<                  r5t        |j<                  j                  |j<                  j                        S |j>                  r5t        |j>                  j&                  |j>                  j@                        S |jB                  rwt        |jB                  j                  |jB                  j                  |jB                  j                  r|jB                  j
                  nd|jB                  j                        S |jD                  rwt        |jD                  j                  |jD                  j                  |jD                  j                  r|jD                  j
                  nd|jD                  j                        S |jF                  r t        |jF                  j                        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_queryr3   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)clsr0   callback_query_messages      r   r5   z+UserContextMiddleware.resolve_event_context<   s]   
 ==]]'']],,7<}}7U7UEMM33	  \`	  ))..))33 ++<< ((::	    U%7%7%<%<==$$U%>%>%C%CDDU%7%7%A%ABB%%U%?%?%I%IJJ%*%9%9%A%A"%#/44--77  **@BUV2CC /@@ "  **@BUV /EE  "   U%9%9%C%CDDU%9%9%C%CDD##U%=%=%G%GHH&&11&&++  ))..))33  U%6%6%;%;%BSBSB]B]^^"",,11,,66  !!++00++00  ''U%A%A%F%FGG %**00779OP#))..))//66;; 
  U%5%5%:%:;;##U%=%=%B%BCC**4499','F'F']']  $$..33','@'@'C'C  !!++00++55 -->> **<<','='='T'T	 	 ((227722<< 44EE 11CC','D'D'['[	 	 %%//99  ~r"   N)r%   r&   r'   r   r   dictr*   r   r   r;   classmethodr   r   r5   r,   r"   r   r.   r.   &   sv    *>4S>:IcNJK* * 38n	*
 
** }& }\ } }r"   r.   N)collections.abcr   r   dataclassesr   typingr   #aiogram.dispatcher.middlewares.baser   aiogram.typesr   r	   r
   r   r   r   r6   r7   r8   r9   r   r.   r,   r"   r   <module>rb      s`    / !  >  $ ' '  $3 3 3TN Tr"   