
    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  d dl!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 )    )Update)ContextTypes)phrases)
DevilFruit)DevilFruitTrade)User)Emoji)ListPageEmojiLegend)ReservedKeyboardKeys)Screen)DevilFruitCategory)DevilFruitSource)DevilFruitTradeStatus)Keyboard)get_recap_text)get_items_text_keyboard)full_message_sendescape_valid_markdown_chars)get_belly_formattedc                        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 )
DevilFruitShopListPagec                     t                                                       t                      | _        t	                      | _        dS )z
        Constructor
        N)super__init__r   objectr   devil_fruitself	__class__s    8/app/src/chat/private/screens/screen_devil_fruit_shop.pyr   zDevilFruitShopListPage.__init__   s:    
 	'6'8'8'1||    	object_idreturnNc                 Z    t          j        |          | _        | j        j        | _        d S N)r   	get_by_idr   r   )r   r#   s     r!   
set_objectz!DevilFruitShopListPage.set_object!   s'    '6'@'K'K'+{'>r"   c                 |   | j                                                             t                                        t
          j        t          j        k    t
          j	        t          j        k    z  |                                 z                                t
          j                                      ||          S )z'Get Devil Fruits that are owned by user)r   selectjoinr   wherer   sourcer   SHOPstatusr   PENDING get_active_filter_list_conditionorder_bydatepaginate)r   pagelimits      r!   	get_itemsz DevilFruitShopListPage.get_items%   s     K  T*U '+;+@@")-B-JJL88::< 
 Xo*++XdE""
	
r"   c                     t           j                            |                                 t	          | j                                                  z   t          | j        j	                            S r&   )
r   DEVIL_FRUIT_SHOP_ITEM_TEXTformatget_emoji_legend_formattedr   r   get_full_namer   r   pricer   s    r!   get_item_textz$DevilFruitShopListPage.get_item_text4   s\    188++--)$*:*H*H*J*JKKL 122
 
 	
r"   c                    t                                                       t          j                            t          | j                  | j        j        	                                t          | j        j                            S )z;
        Get the item detail text
        :return:
        )r   get_item_detail_textr   !DEVIL_FRUIT_SHOP_ITEM_DETAIL_TEXTr:   r   r   r   giverget_markdown_mentionr   r=   r   s    r!   rA   z+DevilFruitShopListPage.get_item_detail_text;   sh    
 	$$&&&8??4+,,K2244 122
 
 	
r"   c           	         t          t          j        t          j                                        t          j        j        t          j        k              t          t          j	        t          j
                                        t          j        j        t          j
        k              t          t          j        t          j                                        t          j        j        t          j        k              t          t          j        t          j                                        t          j        j        t          j        k              gS )zS
        Get the emoji legend list

        :return: The emoji legend list
        )r   r	   GREENr   SMILEget_descriptionr   r   category
LOG_YELLOWZOANLOG_BLUEANCIENT_ZOAN
LOG_PURPLEMYTHICAL_ZOANr>   s    r!   get_emoji_legend_listz,DevilFruitShopListPage.get_emoji_legend_listH   s     "(88:: ,59K9QQ 
  "'7799 ,59K9PP 
 "/??AA ,59K9XX 
  "0@@BB ,59K9YY !
 	
r"   )__name__
__module____qualname__r   intr(   r
   DEFAULT_LIMITlistr   r7   strr?   rA   r   rP   __classcell__)r    s   @r!   r   r      s        4 4 4 4 4?C ?D ? ? ? ? %-$: 
 
tO?T 
 
 
 

s 
 
 
 

c 
 
 
 
 
 

tK'8 
 
 
 
 
 
 
 
r"   r   updatecontextinbound_keyboarduserr$   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        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_textrZ   r\   )rY   keyboardr[   excluded_keys_from_back_button)7src.chat.private.screens.screen_devil_fruit_shop_detailr^   r   r\   get_direct_itemidinfor   DEFAULT_SECONDARY_KEYr   r   PVT_DEVIL_FRUIT_SHOP_DETAILr   "DEVIL_FRUIT_SHOP_ITEM_TEXT_FILL_INDEVIL_FRUIT_SHOP_LIST_NO_ITEMSr   PAGE)	rY   rZ   r[   r\   %screen_devil_fruit_shop_detail_detaildevil_fruit_shop_list_pagedirect_itemot_textitems_keyboards	            r!   r^   r^   g   s1           :P9Q9Q&*# $>#M#M#O#OKLWN2HI33FGEUW[\\\\\\\\\ 6"2*?>	 	 	G^ )(<(A'B           r"   ))src.tg_compatr   src.tg_compat.extr   	resourcesr   src.model.DevilFruitr   src.model.DevilFruitTrader   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.DevilFruitCategoryr   ,src.model.enums.devil_fruit.DevilFruitSourcer   1src.model.enums.devil_fruit.DevilFruitTradeStatusr   src.model.pojo.Keyboardr   src.service.devil_fruit_servicer   src.service.list_servicer   src.service.message_servicer   r   src.utils.string_utilsr   r   DEFAULT_TYPEr^    r"   r!   <module>r      s               * * * * * *       + + + + + + 5 5 5 5 5 5       ' ' ' ' ' ' : : : : : : : : E E E E E E ) ) ) ) ) ) M M M M M M I I I I I I S S S S S S , , , , , , : : : : : : < < < < < < V V V V V V V V 6 6 6 6 6 6N
 N
 N
 N
 N
X N
 N
 N
b..)6.JR.Z^.	. . . . . .r"   