Ë
    ¨z�jE  ã            
       ó.  — d dl mZmZmZmZmZmZ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  e«       Z e	d¬	«      Z e«       Z e«       Zej3                  d
«       ed«       ed«       edd¬«       ee«      fdededede
fd„«       Zy)é    )Ú	APIRouterÚ
UploadFileÚFileÚResponseÚHeaderÚHTTPExceptionÚDepends)Ú
HTTPBearerÚHTTPAuthorizationCredentials)Úrun_in_threadpool)Úverify_access_token)Úreplace_background_service)ÚDeviceLimitRepository)ÚUserSubscriptionServiceF)Ú
auto_errorz/replace-background.zX-Device-Id)ÚaliasÚimageÚ
backgroundÚ	device_idÚcredentialsc              ƒ   ó€  K  — d}|r9|j                   }t        |«      }|r t        j                  |d   «      ƒ d {  –—† }d }|sCt        j                  |«      ƒ d {  –—† }|d   s!t        dddd|d   |d   |d	   |d
   dœ¬«      ‚| j                  «       ƒ d {  –—† }|j                  «       ƒ d {  –—† }	t        t        ||	«      ƒ d {  –—† }
i }|rMt        |d   «      |d<   t        |d   «      |d<   t        |d	   «      |d<   t        |d
   «      |d<   |d   |d<   nd|d<   t        |
d|¬«      S 7 Œø7 ŒÙ7 Œ�7 Œ‡7 Œp­w)NFÚ_idÚallowedi“  Tz/Daily free limit reached. Watch ad to continue.Ú
free_countÚrewardÚadCountÚremaining_free)ÚsuccessÚshow_reward_adÚmessager   r   r   r   )Ústatus_codeÚdetailzX-Free-CountzX-Rewardz
X-Ad-CountzX-Remaining-FreeÚsourcezX-Usage-TypeÚpremiumz	image/png)ÚcontentÚ
media_typeÚheaders)r   r   Úsubscription_serviceÚhas_active_subscriptionÚ
limit_repoÚcheck_and_increment_limitr   Úreadr   r   Ústrr   )r   r   r   r   Úpremium_userÚtokenÚpayloadÚ
usage_infoÚimage_bytesÚbackground_bytesÚresultr'   s               ú@/var/www/html/photoedit/app/modules/replaceBG/replaceBG_route.pyÚreplace_backgroundr6   Ÿ   sÈ  è ø€ ð& €Láà×'Ñ'ˆä%Øó
ˆñ ô +×BÑBØ˜E‘Nó÷ ð ð €Jáô ×6Ñ6Øó÷ ð 	ð ˜)Ò$äàð  %à&*ð0ð
 # <Ñ0ð # 8Ñ,ð # 9Ñ-ð #Ð#3Ñ4ñ1ô	!ð !ðJ Ÿ
™
›×$€Kà'Ÿ_™_Ó.×.Ðô %ä"ààó÷ €Fð €Gáä"%Ø�|Ñ$ó#
ˆ�Ñô "Ø�xÑ ó
ˆ�
Ñô !$Ø�yÑ!ó!
ˆ�Ñô '*ØÐ'Ñ(ó'
ˆÐ"Ñ#ð
 �xÑ ð 	�Òð #,ˆ�Ñô àààôð ðSøðøð\ %øà.øðúsX   ‚9D>»D4¼ D>ÁD6Á=D>ÂD8ÂD>Â2D:Â3D>ÃD<ÃA)D>Ä6D>Ä8D>Ä:D>Ä<D>N)Úfastapir   r   r   r   r   r   r	   Úfastapi.securityr
   r   Úfastapi.concurrencyr   Úapp.utils.jwtr   Ú'app.modules.replaceBG.replaceBG_servicer   Ú0app.modules.device_limit.device_limit_repositoryr   Ú7app.modules.user_subscription.user_subscription_servicer   ÚrouterÚsecurityr*   r(   Úpostr-   r6   © ó    r5   ú<module>rC      sÏ   ð÷h÷ ñ ÷õ
 2å -õõõñ
 
‹€áØô€ñ #Ó$€
á.Ó0Ð ð ‡�Ð"Ó#ñ ˜S›	á! #›YáØØôñ
 18Øó1ñPàðPð ð	Pð ðPð .òPó $ñPrB   