
    <Rj                     B   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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j3                  d       ee      fd	eded
edeeef   fd       Zej3                  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deeef   f
d       Zej;                  d       ee      fd	e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deeef   f
d       Z y)    )	APIRouterDependsHTTPExceptionstatus)require_session)SessionIdentityTipsRosterWritePayloadTipsRunDateUpdatePayloadTipsRunPayoutStatusPayloadTipsRunPreviewPayloadTipsRunUpdatePayload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)   0   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/   H   s~    !55gtVLL z(A(AY\YaYa#((ST+pvyygjkngopvyy #s!    	BAA,,B8BBc                 "   	 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r.   )
r   update_tips_distributionr0   r   r   r1   r2   r   r"   r   r   r,   r#   r   r   s        r   r4   r4   V   s    !::7D&RYZZ z(A(AY\YaYa#((ST+pvyygjkngopvyy #!    	BAA--B9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_statusr8   r0   r   r   r1   r2   r   r"   r   r5   s        r   update_tips_run_payout_statusr:   e   s    !<<WdF^e^o^o<pp z(A(AY\YaYa#((ST+pvyygjkngopvyy #s!   &) 	BAA88BBBz/{area}/runs/{run_id}/datec                 "   	 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r.   )
r   update_tips_run_dater0   r   r   r1   r2   r   r"   r   r5   s        r   r<   r<   t   s    !66wfgVV z(A(AY\YaYa#((ST+pvyygjkngopvyy #r6   )!fastapir   r   r   r   app.api.depsr   app.services.tenant_storer   r	   r
   r   r   r   r   routerr"   r   getr   dictobjectr!   putr%   postr)   r+   r/   patchr4   r:   r<    r   r   <module>rH      s   = = (   
I: I$ I I  '7
 
#v+    '7
#  
#v+	    '7
"  
#v+	   ^  '7
"  
#v+	  #$  '7



 
 
#v+	
 %
 %&
  '7	
 " 	
 
#v+ ' 34
  '7	
 ( 	
 
#v+ 5 *+
  '7	
 & 	
 
#v+ ,r   