
    j{                     ~   d dl mZmZmZmZ d dlmZ d dlmZm	Z	m
Z
mZmZ  e       ZdeddfdZej!                  d       ee      fd	ed
edeeef   fd       Zej+                  d       ee      fd	ede	d
edeeef   fd       Zej/                  d       ee      fd	eded
edeeef   fd       Zej/                  d       ee      fd	eded
edeeef   fd       Zej!                  d       ee      fd	eded
edeeef   fd       Zej7                  d       ee      fd	edede
d
edeeef   f
d       Zy)    )	APIRouterDependsHTTPExceptionstatus)require_session)SessionIdentityTipsRosterWritePayloadTipsRunPayoutStatusPayloadTipsRunPreviewPayloadget_tenant_storeexcreturnNc                     t        |       }|j                         }d|v rt        j                  nt        j                  }t        ||      | )Nznon puostatus_codedetail)strlowerr   HTTP_403_FORBIDDENHTTP_400_BAD_REQUESTr   )r   r   
normalizedr   s       'apps/backend-hub/app/api/routes/tips.py_raise_tips_errorr      s?    XFJ/8J/F&++FLgLgK
K
?SH    z/{area}areasessionc                 z    	 t               j                  ||       S # t        $ r}t        |       Y d }~y d }~ww xY wN)r   get_tips_module
ValueErrorr   )r   r   r   s      r   r   r      s8    
!11'4@@ #s    	:5:z/{area}/rosterpayloadc                 |    	 t               j                  || |      S # t        $ r}t        |       Y d }~y d }~ww xY wr   )r   replace_tips_rosterr    r   r   r!   r   r   s       r   r#   r#   "   s:    !55gtWMM #    	;6;z/{area}/previewc                 |    	 t               j                  || |      S # t        $ r}t        |       Y d }~y d }~ww xY wr   )r   preview_tips_distributionr    r   r$   s       r   r'   r'   .   s:    !;;GT7SS #r%   z/{area}/runsc                 |    	 t               j                  || |      S # t        $ r}t        |       Y d }~y d }~ww xY wr   )r   save_tips_distributionr    r   r$   s       r   r)   r)   :   s:    !88$PP #r%   z/{area}/runs/{run_id}run_idc                     	 t               j                  || |      S # t        $ rK}t        t        j
                  |j                  r|j                  d         |t        |            |d }~wt        $ r}t        |       Y d }~y d }~ww xY w)Nr   r   )
r   get_tips_run_detailKeyErrorr   r   HTTP_404_NOT_FOUNDargsr   r    r   )r   r*   r   r   s       r   r,   r,   F   s~    !55gtVLL z(A(AY\YaYa#((ST+pvyygjkngopvyy #s!    	BAA,,B8BBz#/{area}/runs/{run_id}/payout-statusc                 8   	 t               j                  || ||j                        S # t        $ rK}t	        t
        j                  |j                  r|j                  d         |t        |            |d }~wt        $ r}t        |       Y d }~y d }~ww xY w)N)	deliveredr   r   )r   set_tips_run_payout_statusr1   r-   r   r   r.   r/   r   r    r   )r   r*   r!   r   r   s        r   update_tips_run_payout_statusr3   T   s    !<<WdF^e^o^o<pp z(A(AY\YaYa#((ST+pvyygjkngopvyy #s!   &) 	BAA88BBB)fastapir   r   r   r   app.api.depsr   app.services.tenant_storer   r	   r
   r   r   routerr    r   getr   dictobjectr   putr#   postr'   r)   r,   patchr3    r   r   <module>r?      s3   = = (  
I: I$ I I  '7
 
#v+    '7
#  
#v+	    '7
"  
#v+	   ^  '7
"  
#v+	  #$  '7



 
 
#v+	
 %
 34
  '7	
 ( 	
 
#v+ 5r   