
    zj                    D   d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 erddl
mZ  G d de	      Z G d	 d
e      Z G d de      Z edd       G d d             Z edd       G d d             Z edd       G d d             Zeez  ez  Z	 	 	 	 	 	 	 	 	 	 ddZy)z/Single-call typed Telegram text-edit transport.    )annotations)	dataclass)StrEnum)TYPE_CHECKINGProtocol)Messagec                  $    e Zd Z	 	 	 	 	 	 	 	 ddZy)TelegramTextEditorc                  K   y w)N )selfchat_id
message_idtexts       h/home/cube/projects/richard/.worktrees/nutricoach-v140-impl/gateway/platforms/telegram_edit_transport.pyedit_message_textz$TelegramTextEditor.edit_message_text   s	     s   N)r   intr   r   r   strreturnzMessage | bool)__name__
__module____qualname__r   r       r   r
   r
      s'    +.69	r   r
   c                      e Zd ZdZy)TelegramEditKnownReasonrejectedN)r   r   r   REJECTEDr   r   r   r   r      s    Hr   r   c                      e Zd ZdZdZy)TelegramEditUnknownReasonconnection_losttimeoutN)r   r   r   CONNECTION_LOSTTIMEOUTr   r   r   r   r      s    'OGr   r   T)frozenslotsc                      e Zd ZU ded<   y)TelegramEditDeliveredr   r   Nr   r   r   __annotations__r   r   r   r'   r'      s    Or   r'   c                      e Zd ZU ded<   y)TelegramEditKnownFailurer   reasonNr(   r   r   r   r+   r+   !   s    ##r   r+   c                      e Zd ZU ded<   y)TelegramEditUnknownr   r,   Nr(   r   r   r   r.   r.   &   s    %%r   r.   c               2  K   	 | j                  t        |      t        |      |       d{   }t        |      S 7 # t        $ r}t        |      j                  D ch c]  }|j
                   nc c}w }}d|v rIdt        |      j                         v rt        |      cY d}~S t        t        j                        cY d}~S d|v rt        t        j                        cY d}~S |ddhz  rt        t        j                        cY d}~S  d}~ww xY ww)zACall Telegram exactly once and classify its durable edit outcome.)r   r   r   N
BadRequestznot modifiedTimedOutNetworkErrorTelegramError)r   r   	Exceptiontype__mro__r   r   casefoldr'   r+   r   r   r.   r   r#   r"   )editorr   r   r   _errorkinderror_kindss           r   edit_telegram_textr=   0   s     **LS_4 + 
 
 !,,
  
15e1D1DE1Dt}}1DEE;&U!4!4!66,Z88+,C,L,LMM$&'@'H'HII./::&'@'P'PQQ
s   D)? =? D? 	DDA321D#D$D)DDDD#D$D)DD	DDDDN)
r8   r
   r   r   r   r   r   r   r   TelegramEditOutcome)__doc__
__future__r   dataclassesr   enumr   typingr   r   telegramr   r
   r   r   r'   r+   r.   r>   r=   r   r   r   <module>rE      s    5 " !  *  g  
 $d#  $ $d#$ $ $$ $d#& & $&
 447JJ 
-- - 	-
 - -r   