
    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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edej$        dededdf
dZ%dS )    )StrEnum)Update)ContextTypes)phrases)
DevilFruit)User)Emoji)ListPageEmojiLegend)ReservedKeyboardKeys)Screen)DevilFruitStatus)UnauthorizedToViewItemException)Keyboard)get_recap_text)get_items_text_keyboard)full_message_sendescape_valid_markdown_charsc                       e Zd ZdZdZdS )DevilFruitReservedKeysz+
    The reserved keys for this screen
    aN)__name__
__module____qualname____doc__ITEM_ID     3/app/src/chat/private/screens/screen_devil_fruit.pyr   r      s          GGGr   r   c                        e Zd Z 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 fdZdee         fd	Z xZS )
DevilFruitListPagec                 n    t                                                       t                      | _        dS )z
        Constructor
        N)super__init__r   objectself	__class__s    r   r$   zDevilFruitListPage.__init__   s*    
 	",,,r   	object_idreturnNc                 T    t          j        t           j        |k              | _        d S N)r   getidr%   )r'   r)   s     r   
set_objectzDevilFruitListPage.set_object'   s     nZ]i%?@@r   c                    | j                                                             t          j        | j        k    |                                 z                                t          j        	                                t          j
                                        t          j                                                                      ||          S )z'Get Devil Fruits that are owned by user)r%   selectwherer   owneruser get_active_filter_list_conditionorder_bystatusdescnameascmodelpaginate)r'   pagelimits      r   	get_itemszDevilFruitListPage.get_items*   s     K  UJ$	1d6[6[6]6]^__Xj',,..
0C0C0E0EzGWG[G[G]G]^^XdE""		
r   c                     t           j                            |                                 t	          | j                                                  z             S r,   )r   DEVIL_FRUIT_ITEM_TEXTformatget_emoji_legend_formattedr   r%   get_full_namer'   s    r   get_item_textz DevilFruitListPage.get_item_text4   sK    ,33++--)$+*C*C*E*EFFG
 
 	
r   c                     	 t                                                       n# t          $ r t          w xY wt          | j        d          S )z;
        Get the item detail text
        :return:
        T)add_sell_command)r#   get_item_detail_textr   r   r%   r&   s    r   rI   z'DevilFruitListPage.get_item_detail_text:   sY    
	2GG((****. 	2 	2 	211	2 dkDAAAAs    $ 6c                 >   t          t          j        t          j                                        t          j        t          j        k              t          t          j        t          j	                                        t          j        t          j	        k              gS )zS
        Get the emoji legend list

        :return: The emoji legend list
        )
r   r	   LOG_NEGATIVEr   EATENget_descriptionr   r7   LOG_POSITIVE	COLLECTEDrE   s    r   get_emoji_legend_listz(DevilFruitListPage.get_emoji_legend_listF   sx     " &6688"&6&<< 
 " *::<<"&6&@@ 
 	
r   )r   r   r   r$   intr/   r
   DEFAULT_LIMITlistr   r?   strrF   rI   r   rP   __classcell__)r(   s   @r   r!   r!      s        / / / / /AC AD A A A A %-$: 
 
tJ?O 
 
 
 

s 
 
 
 

Bc 
B 
B 
B 
B 
B 
B
tK'8 
 
 
 
 
 
 
 
r   r!   updatecontextinbound_keyboardr4   r*   Nc           
        K   ddl m} t                      }||_        |                                }|/|j        |j        t          j        <    || |||           d{V  dS t          ||t          j        t          j        t          j        t          j        ||          \  }}|                    t%          t          j        t          j        |j                  g           t+          ||| ||t          j        g           d{V  dS )z
    Manage the devil_fruit list screen
    :param update: The update
    :param context: The context
    :param inbound_keyboard: The inbound keyboard
    :param user: The user
    :return: None
    r   )manageN)text_fill_inempty_list_textrW   r4   )screeninbound_info)rV   keyboardrX   excluded_keys_from_back_button)2src.chat.private.screens.screen_devil_fruit_detailrZ   r!   r4   get_direct_itemr.   infor   DEFAULT_PRIMARY_KEYr   r   r   r   PVT_DEVIL_FRUIT_DETAILr   DEVIL_FRUIT_ITEM_TEXT_FILL_INDEVIL_FRUIT_LIST_NO_ITEMSappendr   KEY_SHOPPVT_DEVIL_FRUIT_SHOPr   PAGE)	rV   rW   rX   r4    manage_screen_devil_fruit_detaildevil_fruit_list_pagedirect_itemot_textitems_keyboards	            r   rZ   rZ   [   sr           1C0D0D!% 4CCEEKJU.2FG..vw@PRVWWWWWWWWW5&%:9	 	 	G^  2-2  	
   )(<(A'B           r   )&enumr   src.tg_compatr   src.tg_compat.extr   	resourcesr   src.model.DevilFruitr   src.model.Userr   src.model.enums.Emojir	   src.model.enums.ListPager
   r   $src.model.enums.ReservedKeyboardKeysr   src.model.enums.Screenr   ,src.model.enums.devil_fruit.DevilFruitStatusr   src.model.error.CustomExceptionr   src.model.pojo.Keyboardr   src.service.devil_fruit_servicer   src.service.list_servicer   src.service.message_servicer   r   r   r!   DEFAULT_TYPErZ   r   r   r   <module>r      s                     * * * * * *       + + + + + +       ' ' ' ' ' ' : : : : : : : : E E E E E E ) ) ) ) ) ) I I I I I I K K K K K K , , , , , , : : : : : : < < < < < < V V V V V V V V    W   ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
|66)66JR6Z^6	6 6 6 6 6 6r   