
    soj                     $   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZ  G d de          Z  G d de          Z!	 ddedej"        dedede#ddfdZ	dS )    )StrEnum)Update)ContextTypesN)manage)
Prediction)PredictionOption)PredictionOptionUser)User)ListPage)ReservedKeyboardKeys)Screen)Keyboard)get_items_text_keyboard)full_message_sendescape_valid_markdown_charsc                       e Zd ZdZdZdZdS )PredictionRemoveBetReservedKeysz+
    The reserved keys for this screen
    abN)__name__
__module____qualname____doc__PREDICTION_IDPREDICTION_OPTION_ID     D/app/src/chat/private/screens/screen_prediction_detail_remove_bet.pyr   r      s'          Mr   r   c                   r     e Zd Zdef fdZdeddfdZej        fde	e
         fdZdefdZdefd	Z xZS )
PredictionRemoveBetListPage
predictionc                 |    t                                                       t                      | _        || _        dS )z
        Constructor
        N)super__init__r   objectr!   )selfr!   	__class__s     r   r$   z$PredictionRemoveBetListPage.__init__   s3    
 	(8(:(:&0r   	object_idreturnNc                 T    t          j        t           j        |k              | _        d S N)r   getidr%   )r&   r(   s     r   
set_objectz&PredictionRemoveBetListPage.set_object(   s!    &*+;+>)+KLLr   c                 b   | j                                                             t                                        t          j        | j        k    t          j        | j        k    z                                t          j	        
                                                              ||          S )z2Get prediction options that are bet on by the user)r%   selectjoinr	   wherer!   userorder_byr   numberascpaginate)r&   pagelimits      r   	get_itemsz%PredictionRemoveBetListPage.get_items+   s     K  T&''U%0DOC',	9;  X&-113344XdE""		
r   c                 n    t           j                            t          | j        j                            S r+   )phrasesPREDICTION_REMOVE_BET_TEXTformatr   r%   optionr&   s    r   get_item_textz)PredictionRemoveBetListPage.get_item_text9   s-    188'(:;;
 
 	
r   c                     dS )zNo detail screenNr   r@   s    r   get_item_detail_textz0PredictionRemoveBetListPage.get_item_detail_text>   s      r   )r   r   r   r   r$   intr.   r   DEFAULT_LIMITlistr   r:   strrA   rC   __classcell__)r'   s   @r   r    r       s        1: 1 1 1 1 1 1MC MD M M M M %-$: 
 
tDT?U 
 
 
 

s 
 
 
 

c        r   r    Fupdatecontextinbound_keyboardr3   called_from_remove_confirmr)   c                   K   ddl m} t          j        t          j        |                    t
          j                  k              }t          |          }||_        |r*t          j
        |_        |j                                         |                    d          }t          |          dk    st          |          dk    rd|sbt          |          dk    r|d         }	 |||	| |           d{V  |j                                         t!          | |||           d{V  dS t#          ||t
          j        t          j        t(          j                  \  }
}t-          ||
| ||t.          j        g           d{V  dS )aw  
    Manage the prediction detail screen
    :param update: The update
    :param context: The context
    :param inbound_keyboard: The inbound keyboard
    :param user: The user
    :param called_from_remove_confirm: Whether this screen was called from the remove confirm
    screen. If so, the user won't be redirected to the prediction detail screen
    :return: None
    r   )validate_and_delete   N)text_overview)rI   keyboardrK   excluded_keys_from_back_button)Dsrc.chat.private.screens.screen_prediction_detail_remove_bet_confirmrN   r   r,   r-   r   r   r    r3   r    PVT_PREDICTION_DETAIL_REMOVE_BETscreenprevious_screen_listpopr:   lenmanage_prediction_detailr   r   (PVT_PREDICTION_DETAIL_REMOVE_BET_CONFIRMr<   #PREDICTION_REMOVE_BET_LIST_OVERVIEWr   r   PAGE)rI   rJ   rK   r3   rL   rN   r!   prediction_remove_bet_list_pageitemsprediction_optionot_textitems_keyboards               r   r   r   B   s     $      (^)--.M.[\\\ J D_D D# ,0#(! 4"("I-11333+55a88E
5zzQ3u::??3M?u::??27(%%g/@&$OOOOOOOOO-11333&vw8H$OOOOOOOOO5''<7A  G^ )(<(A'B           r   )F)$enumr   src.tg_compatr   src.tg_compat.extr   resources.phrasesr<   1src.chat.private.screens.screen_prediction_detailr   rY   src.model.Predictionr   src.model.PredictionOptionr   src.model.PredictionOptionUserr	   src.model.Userr
   src.model.enums.ListPager   $src.model.enums.ReservedKeyboardKeysr   src.model.enums.Screenr   src.model.pojo.Keyboardr   src.service.list_servicer   src.service.message_servicer   r   r   r    DEFAULT_TYPEboolr   r   r   <module>rs      s                     * * * * * * # # # # # # ` ` ` ` ` ` + + + + + + 7 7 7 7 7 7 ? ? ? ? ? ?       - - - - - - E E E E E E ) ) ) ) ) ) , , , , , , < < < < < < V V V V V V V V    g   " " " " "( " " "T (-< <<&< < 	<
 !%< 
< < < < < <r   