
    soj               
           d dl mZ d dlmZ d dlmZ d dl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mZ d dlmZ  G d de          Z dedej!        dededdf
dZ"dS )    )StrEnum)Update)ContextTypesN)phrases)go_to_prediction_detail)
Prediction)PredictionOption)User)Emoji)PredictionStatus)ReservedKeyboardKeys)Keyboard)full_message_sendget_yes_no_keyboardescape_valid_markdown_chars)set_resultsc                   &    e Zd ZdZdZdZdZdZdZdS )&PredictionDetailsSetResultReservedKeysz+
    The reserved keys for this screen
    abcdeN)	__name__
__module____qualname____doc__PREDICTION_IDCORRECT_OPTIONSOPTION_NUMBERNO_CORRECT_OPTIONCONFIRM     D/app/src/chat/private/screens/screen_prediction_detail_set_result.pyr   r      s4          MOMGGGr$   r   updatecontextinbound_keyboarduserreturnc                   K   t          j        t           j        |                    t          j                  k              }|                                t          j        ur%t          |t          j        | |           d{V  dS |                    t          j                  }|g }t          j        |j        vrxt          j        |j        v rN|                    t          j                  }||v r|                    |           n|                    |           t          j        |j        v rg }nt&          j        |j        vrt)          |          dk    rt          j        }n`d}|D ][}t-          j        t,          j        |k    t,          j        |k              }|t          j                            ||j                  z  }\t          j                            |          }	t;          ||dt&          j        t          j        g          g}
t          ||	| ||
           d{V  dS |                    t&          j                  rt-          j         d          !                    t,          j        |k    t,          j        "                    |                    #                                 tI          ||           d{V  t          |t          j%        | d	           d{V  tM          |||| |           d{V S |j        '                    t          j                   |j        '                    t&          j                   d}g }
g }t-          j(                    !                    t,          j        |k              )                    t,          j        *                                          }|j        +                                }t          j        |v r|'                    t          j                   tY          |          D ]\  }}|j        }||v rtZ          j.        nd}|t          j                            |t_          |j                            |z   z  }t          j        |t          j        |i}ta          |tc          |          z   ||
          }|                    |           |dz   td          j3        z  dk    r|dk    r|
                    |           g }t)          |          dk    r|
                    |           t          j        di}t)          |          dk    rtZ          j4        nd}ta          |t          j5        z   ||j        
          }|
                    |g           t          j        di}ta          t          j6        ||j        
          }|
                    |g           t          j7                            t_          |j8                  |          }	t          ||	| |
|           d{V  dS )z
    Manage the prediction detail set result screen
    :param update: The update
    :param context: The context
    :param inbound_keyboard: The inbound keyboard
    :param user: The user
    :return: None
    )r&   r(   Nr    T)r(   add_inbound_key_infokeys_to_exclude)r&   r(   keyboard)
is_correct)r&   
show_alert)infoinbound_info   )r&   r/   r(   )9r   getidget_intr   r   
get_statusr   BETS_CLOSEDr   r   PREDICTION_IN_WRONG_STATUSr   r"   r2   r    removeappendr!   r   len<PREDICTION_SET_RESULT_CONFIRMATION_REQUEST_NO_CORRECT_OPTIONr	   
predictionnumberPREDICTION_TEXT_OPTIONformatoption*PREDICTION_SET_RESULT_CONFIRMATION_REQUESTr   PREVIOUS_SCREENget_boolr&   wherein_executer   PREDICTION_SET_RESULT_SUCCESSr   popselectorder_byasccopy	enumerater   CORRECTr   r   strr   STANDARD_LIST_KEYBOARD_ROW_SIZEENABLED$PVT_KEY_PREDICTION_NO_CORRECT_OPTIONKEY_CONFIRMPREDICTION_SET_RESULTquestion)r&   r'   r(   r)   r?   correct_options_numbersoption_numbercorrect_options_textprediction_optionot_textinline_keyboardoptions_textkeyboard_lineprediction_options'inbound_info_without_not_correct_optionindexcurrent_numbercorrect_emojibutton_infobuttonno_correct_option_emojis                        r%   manageri   $   s      (^##$J$XYY	Z J &6&BBB.-	
 
 
 	
 	
 	
 	
 	
 	
 	
 	.22.>  &"$-5=M=RRR1?CSCXXX,446D M  777'..}===='..}=== 2CGWG\\\&(#  '/?/DDD*++q00X %$ (*$%<  M:J:N(3zA(/=@; ;% )G,J,Q,Q%'8'?- - (( HOO$ G $%5)-,<>L%	  
5O $!1(          F(()=)EFF  '4888>>$/:=$+//0GHH  ')))!':666666666 (WB6^b         
 5-z64        
 !%%&L&TUUU!%%&:&BCCC L,.O$&M!!	*j8	9	9	")--//	0	0  /?.C.H.H.J.J+.@2	3 	3 	0332D	
 	
 	
 %..@$A$A    *1)7;R)R)RXZ*11 ;<M<T U U  	
 3@.2BD[
 C///@
 
 

 	V$$$ AI::a??EQJJ""=111M =A}--- :KTRK/23J/K/Kq/P/PemmVX'"NN%*  F
 F8$$$ :A4HKg)JZJ_```FF8$$$+22#J$788, G  )           r$   )#enumr   src.tg_compatr   src.tg_compat.extr   	constantsr   	resourcesr   1src.chat.private.screens.screen_prediction_creater   src.model.Predictionr   src.model.PredictionOptionr	   src.model.Userr
   src.model.enums.Emojir    src.model.enums.PredictionStatusr   $src.model.enums.ReservedKeyboardKeysr   src.model.pojo.Keyboardr   src.service.message_servicer   r   r   src.service.prediction_servicer   r   DEFAULT_TYPEri   r#   r$   r%   <module>rz      s                     * * * * * *           U U U U U U + + + + + + 7 7 7 7 7 7       ' ' ' ' ' ' = = = = = = E E E E E E , , , , , ,         
 7 6 6 6 6 6	 	 	 	 	W 	 	 	yy)6yJRyZ^y	y y y y y yr$   