
    [j                        S SK Jr  S SKrS SKrS SKJr  S SKJrJr  S SK	r	S SK
JrJrJrJrJrJr  S SKJrJr   " S S\5      rSS	 jrSS
 jrSS jrSS jrSS jrSS jrg)    )annotationsN)date)AnyDict)ASAAS_API_KEYASAAS_BASE_URLPAYMENT_PROVIDERPAYMENT_WEBHOOK_URLPIX_PROVIDER_ENDPOINTPIX_PROVIDER_TOKEN)create_paymentfetchonec                      \ rS rSrSrg)PaymentError    N)__name__
__module____qualname____firstlineno____static_attributes__r       ./mnt/data/patch_asaas_cpf_cnpj/bot/payments.pyr   r      s    r   r   c                 B    [         (       d  [        S5      e[         SSS.$ )Nu9   ASAAS_API_KEY/PIX_PROVIDER_TOKEN não configurado no .envapplication/json)access_tokenacceptzcontent-type)r   r   r   r   r   _asaas_headersr      s(    =VWW &$* r   c           
         [          U  3n[        R                  " U[        5       USS9nUR                  S:  a+  [        SU  SUR                   SUR                  S S  35      eUR                  5       $ )N-   headersjsontimeout  zAsaas POST  falhou :   )r   requestspostr   status_coder   textr#   )pathpayloadurlresponses       r   _asaas_postr1   $   sv    TF
#C}}S.*:RTUHs"[hx7K7K6LBx}}]b^bOcNdeff==?r   c           
         [          U  3n[        R                  " U[        5       SS9nUR                  S:  a+  [        SU  SUR                   SUR                  S S  35      eUR                  5       $ )Nr    )r"   r$   r%   z
Asaas GET r&   r'   r(   )r   r)   getr   r+   r   r,   r#   )r-   r/   r0   s      r   
_asaas_getr4   .   ss    TF
#C||C)92FHs"ZvXh6J6J5K2hmm\a]aNbMcdee==?r   c                   [        SU 45      nU(       d  [        SU  S35      eUR                  S5      =(       d    SR                  S5      nUR                  S5      =(       d    U=(       d    SU  3n[	        UR                  S	5      =(       d    S5      R                  5       nU(       d  [        S
5      eUUSU  3SS.n[        SU5      nUR                  S5      nU(       d  [        SU 35      e[	        U5      $ )Nz SELECT * FROM models WHERE id=%szModelo #u    não encontrada no banco.username @display_namezCliente Telegram cpf_cnpjuL   CPF/CNPJ do pagador não está salvo. Peça o CPF/CNPJ antes de gerar o Pix.model_T)namecpfCnpjexternalReferencenotificationDisabledz
/customersidu!   Asaas não retornou customer id: )r   r   r3   lstripstrstripr1   )model_idmodelr6   r9   r:   r.   datacustomer_ids           r   _create_asaas_customerrH   8   s    7(EEXhZ/IJKK		*%+33C8H99^,ZZ>OPXz<ZL599Z(.B/557Hijj %hZ0 $	G |W-D((4.K>tfEFF{r   c                j   S[         R                  " 5       R                  S S  3n[        US   5      n[	        US   5      n[	        US   5      n[        U 5      nUSU[        R                  " 5       R                  5       US    SU S	3US
.n[        SU5      n[        UR                  SS5      5      n	U	(       d  [        SU 35      e[        SU	 S35      n
[        UR                  S5      =(       d    UR                  S5      =(       d    S5      n[        U
R                  S5      =(       d    S5      n[        U
R                  S5      =(       d    S5      n[        U UUUSUUUU	[        R                   " XS.SS9S9
n[        U5      UU	UUU[        U
R                  S5      =(       d    S5      S.$ )NPAY_   pricecreditsr@   PIXr<   z -     crédito(s))customerbillingTypevaluedueDatedescriptionr>   z	/paymentsr7   u%   Asaas não retornou id da cobrança: z
/payments/z
/pixQrCode
invoiceUrlbankSlipUrlr.   encodedImageasaas)paymentpixFensure_ascii
rD   
package_idamountrM   providerexternal_referencepayment_urlqr_codeprovider_payment_idraw_responseexpirationDate)
payment_idra   rd   rb   rc   encoded_imageexpiration_date)uuiduuid4hexfloatintrH   r   today	isoformatr1   rB   r3   r   r4   r   r#   dumps)rD   packagera   r_   rM   r^   rG   payment_payloadrY   payment_id_asaasrZ   rb   qr_code_payloadrh   local_payment_ids                  r   _create_asaas_pix_chargerw   T   s   

 0 0" 56777#$F')$%GWT]#J(2K  ::<))+!&/*#gYlC/O +7G7;;tR01B7)LMM
z"2!3:>
?Cgkk,/S7;;}3MSQSTK#''),23O/526M%-,ZZG @uU *+0/""&sww'78>B? r   c                   [         S:X  a  [        X5      $ [         S:X  Ga<  [        (       Ga0  S[        R                  " 5       R
                  S S  3n[        US   5      n[        US   5      n[        US   5      nUUUSU S	3[        S
.nS[         3SS.n[        R                  " [        XvSS9nUR                  5         UR                  5       n	[        U	R                  SS5      5      n
[        U	R                  SS5      5      n[        U	R                  SS5      5      n[!        U UUU[         UU
UU[        R"                  " U	SS9S9
n[        U5      UU
USS.$ S[        R                  " 5       R
                  S S  3n[        US   5      n[        US   5      n[        US   5      n[!        U UUUSUSSSSS9
n[        U5      USSSS.$ )NrX   genericrJ   rK   rL   rM   r@   z
Compra de rO   )ra   r_   rM   rT   webhook_urlzBearer r   )AuthorizationzContent-Type   r!   rb   r7   rc   rd   Fr[   r]   )rg   ra   rb   rc   rh   manualz{})r	   rw   r   rj   rk   rl   rm   rn   r
   r   r)   r*   raise_for_statusr#   rB   r3   r   rq   )rD   rr   ra   r_   rM   r^   r.   r"   r0   rF   rb   rc   rd   rg   s                 r   create_pix_charger      s   7"'::9$)>)>#DJJL$4$4Sb$9#:;ww'(gi()'
 #5'y=.
 '..@-A$BTfg==!6_ab!!#}}$((="56dhhy"-.!$((+@""EF#!%1# 3Du=

 j/"4&
 	
  

 0 0" 56777#$F')$%GWT]#J-J *o0 r   )returnDict[str, str])r-   rB   r.   Dict[str, Any]r   r   )r-   rB   r   r   )rD   rn   r   rB   )rD   rn   rr   r   r   r   )
__future__r   r#   rj   datetimer   typingr   r   r)   configr   r   r	   r
   r   r   databaser   r   	Exceptionr   r   r1   r4   rH   rw   r   r   r   r   <module>r      sR    "       .	9 	82jEr   