
    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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&  G d de          Z'dedej(        dededdf
dZ)dS )    )Update)ContextTypesN)
BountyLoan)User)BountyLoanSource)BountyLoanStatus)Emoji)ListPageEmojiLegend)ReservedKeyboardKeys)Screen)Keyboard)convert_seconds_to_durationdefault_datetime_format)get_items_text_keyboard)full_message_send)get_value_from_percentage)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 )
BountyLoanListPagec                     t                                                       t                      | _        t	                      | _        d| _        dS )z
        Constructor
        FN)super__init__r   objectr   
other_useruser_is_loaner)self	__class__s    3/app/src/chat/private/screens/screen_bounty_loan.pyr   zBountyLoanListPage.__init__   s?    
 	",,, $#    	object_idreturnNc                    t          j        t           j        |k              | _        | j        j        | j        k    | _        | j        r| j        j        n| j        j        | _        | 	                                | _
        d S N)r   getidr   loaneruserr   borrowerr   get_emoji_legendlegend)r   r!   s     r   
set_objectzBountyLoanListPage.set_object"   sc     nZ]i%?@@"k0DI=262E]$+..4;K]++--r    c                    | j                                                             t          j                            t          j                              t          j        | j	        k    t          j
        | j	        k    z  z  |                                 z                                t          j                                                                      ||          S )z5Get bounty loans that are in confirmed or paid status)r   selectwherer   statusnot_inr   get_not_confirmed_statusesr'   r(   r)    get_active_filter_list_conditionorder_bydatedescpaginate)r   pagelimits      r   	get_itemszBountyLoanListPage.get_items(   s     K  U"))*:*U*W*WXX%2z7Jdi7WXZ88::< 
 Xjo**,,--XdE""		
r    c                     | j         rt          j        nt          j        }t          j                            | j        j        t          | j	        j
                  || j                                                  S r$   )r   phrasesTEXT_TO	TEXT_FROMBOUNTY_LOAN_ITEM_TEXTformatr+   emojir   r   amountr   get_markdown_mention)r   to_texts     r   get_item_textz BountyLoanListPage.get_item_text6   s_    %)%8O'//g>O,33K 233O0022	
 
 	
r    c                 l
   t                                                       d}| j        rt          j        nt          j        }||                    | j                                                  	                                z  }| j
                                        }|t          j        urL|t          j                            |                                | j
                                                  z  }|dz  }|t          j                            t%          | j
        j                            z  }| j
                                        t          j        ur9|t          j                            t%          | j
        j                            z  }| j
                                        t0          j        ur|t          j                            t%          | j
        j                            z  }|t          j                            t%          | j
                                                            z  }|dz  }|t          j                            t?          | j
        j         | j!                            z  }| j
                                        t          j        ur-|t          j"                            tG          | j
        j$                            z  }|t          j%                            t?          | j
        j&        | j!                            z  }| j        r|dz  }tO          tQ          | j
        j        | j
        j)                            }| j
        j        |z   }|t          j*                            t%          |          | j
        j)                  z  }|t          j+                            t%          |                    z  }|t          j,                            | j-        j.        t1          | j
        j/                                                            z  }| j
        j/        t0          j0        k    r| j        rTt          j1                            td          j3        4                                | j                                                  }nSt          j5                            td          j3        4                                | j                                                  }|t          j6        |z   z  }n5| j
        j/        t0          j7        k    r| j
        j8        r|t          j9        z  }|S )N 
):r   get_item_detail_textr   r<   BOUNTY_LOAN_BORROWERBOUNTY_LOAN_LOANERr@   r   rC   stripr   
get_sourcer   USERBOUNTY_LOAN_SOURCEget_descriptionget_source_deeplinkBOUNTY_LOAN_AMOUNTr   rB   PLUNDERBOUNTY_LOAN_REPAY_AMOUNTrepay_amount
get_statusr   REPAIDBOUNTY_LOAN_AMOUNT_REPAIDamount_repaidBOUNTY_LOAN_AMOUNT_REMAININGget_remaining_amountBOUNTY_LOAN_DATEr   r5   r(   BOUNTY_LOAN_DURATIONr   durationBOUNTY_LOAN_DEADLINE_DATEdeadline_dateintr   tax_percentageBOUNTY_LOAN_TAXBOUNTY_LOAN_TOTALBOUNTY_LOAN_STATUSr+   rA   r0   EXPIRED!BOUNTY_LOAN_EXPIRED_ACTION_LOANEREnvBOUNTY_LOAN_GARNISH_PERCENTAGEr%   #BOUNTY_LOAN_EXPIRED_ACTION_BORROWER!BOUNTY_LOAN_EXPIRED_ACTION_PREFIXFORGIVENis_auto_forgivenBOUNTY_LOAN_AUTO_FORGIVEN)r   ot_textloaner_textsource
tax_amounttotal_amountaction_textr   s          r   rI   z'BountyLoanListPage.get_item_detail_text?   sf   $$&&& -1,?_G((WE_ 	 	;%%do&J&J&L&LMMSSUUU $(;#9#9#;#;)...w188&&(($+*I*I*K*K  G
 	47-445HI[5\5\]]];!!##+;+CCCw7>>#DK$<==  G ;!!##+;+BBBw8??#DK$=>>  G w;BB#DK$D$D$F$FGG  G
 	47+22#DK$4di@@
 
 	
 ;!!##+;+CCCw3::+DK,@AA  G w8??'(A49MM  G
 " 	_4 -dk.@$+B\]] 
  ${1J>7299'
33T[5O   74;;<OP\<]<]^^^ 	7-44K/0BCCSSUU
 
 	

 ;!1!999" 	%GNN6::<<O88:: 
 &IPP6::<<O88:: 
 w@;NNGG[#3#<<<A]<w88Gr    c           	         t          t          j        t          j        t
          j        t          j        k              t          t          j	        t          j
        t
          j        t          j        k              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_NEUTRALr<   BOUNTY_LOAN_STATUS_ACTIVEr   r0   r   ACTIVELOG_POSITIVEBOUNTY_LOAN_STATUS_REPAIDrW   LOG_NEGATIVEBOUNTY_LOAN_STATUS_EXPIREDrf   LOG_BLUEBOUNTY_LOAN_STATUS_FORGIVENrl   )r   s    r   get_emoji_legend_listz(BountyLoanListPage.get_emoji_legend_list   s     !1"&6&== 
 "1"&6&== 
 "2"&6&>> 
 3"&6&?? !
 	
r    )__name__
__module____qualname__r   ra   r,   r
   DEFAULT_LIMITlistr   r:   strrE   rI   r   r   __classcell__)r   s   @r   r   r      s        	$ 	$ 	$ 	$ 	$.C .D . . . . %-$: 
 
tJ?O 
 
 
 

s 
 
 
 
Sc S S S S S Sj
tK'8 
 
 
 
 
 
 
 
r    r   updatecontextinbound_keyboardr(   r"   c           	         K   t                      }||_        t          ||t          j        t
          j        t          j        ||          \  }}t          ||| ||t          j
        g           d{V  dS )z
    Manage the bounty loan list screen
    :param update: The update
    :param context: The context
    :param inbound_keyboard: The inbound keyboard
    :param user: The user
    :return: None
    )text_fill_inr   r(   )r   keyboardr   excluded_keys_from_back_buttonN)r   r(   r   r   DEFAULT_PRIMARY_KEYr   PVT_BOUNTY_LOAN_DETAILr<   BOUNTY_LOAN_ITEM_TEXT_FILL_INr   PAGE)r   r   r   r(   bounty_loan_list_pagero   items_keyboards          r   manager      s       1C0D0D!%50%:  G^ )(<(A'B           r    )*src.tg_compatr   src.tg_compat.extr   resources.EnvironmentEnvironmentrh   resources.phrasesr<   src.model.BountyLoanr   src.model.Userr    src.model.enums.BountyLoanSourcer    src.model.enums.BountyLoanStatusr   src.model.enums.Emojir	   src.model.enums.ListPager
   r   $src.model.enums.ReservedKeyboardKeysr   src.model.enums.Screenr   src.model.pojo.Keyboardr   src.service.date_servicer   r   src.service.list_servicer   src.service.message_servicer   src.utils.math_utilsr   src.utils.string_utilsr   r   DEFAULT_TYPEr    r    r   <module>r      s               * * * * * * # # # # # # # # # # # # + + + + + +       = = = = = = = = = = = = ' ' ' ' ' ' : : : : : : : : E E E E E E ) ) ) ) ) ) , , , , , , Y Y Y Y Y Y Y Y < < < < < < 9 9 9 9 9 9 : : : : : : 6 6 6 6 6 6Z
 Z
 Z
 Z
 Z
 Z
 Z
 Z
z  )6 JR Z^ 	           r    