ó
    ˜\ÝgÃz  ã                   óF  • S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKrS SKJr  S SKrS S	KJrJr  S
SKJrJrJrJrJr  S SKJr  S SKrS SKrS SKJr  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J'r'  S SK(J)r)  S SK*J+r+  S SK,J-r-  S SK.J/r/J0r0  \"Rb                  " \25      r3\'Rh                  Rk                  5        HC  r6\6Rn                  Rp                  b  M  \-" \6Rn                  5      \6l7        \6Rs                  5         ME     Sr:Sr;\:(       a  \;(       a  \!R                  " \:\;4S9r<OSr<\3R{                  S5        S r>S r?S r@S rAS rBS rCS SKJr  S
S KJrJr  S! rDS0S" jrES# rF\ S$ 5       rGS% rHS& rIS' rJS( rKS) rL\ S* 5       rM\ S+ 5       rNS, rOS- rPS. rQS/ rRg)1é    )Ú	send_mail)ÚValidationError)Úvalidate_email)Úsettings)Úmessages)ÚClientN)Úlogout)ÚrenderÚredirecté   )ÚSkylinkPlanÚOTTPlanÚOTTSubscriptionÚOTTActivationLogÚOTTAggregator)ÚJsonResponse)Ú	b64encode)Úcsrf_exempt)Útimezone)ÚdatetimeÚ	timedelta)ÚVerificationCode)Úrender_to_string)Úreverse)Ú
make_aware)ÚSumÚCountÚrzp_test_qcFb099Pizad7SÚz2ZULiDyrWgcu6GVYILGmVbt)Úauthu:   â�Œ Razorpay client not initialized. API keys are missing!c           	      ó  • U R                   R                  SS 5      nU R                   R                  SS 5      nU(       a  UnSnOU(       a  UnSnO[        S5      $ [        R                  R                  SS9n[        U SUUU[        S.5      $ )	NÚemailÚphone_numberÚphoneúott_subscription:loginÚactive©Ústatuszott_subscription/platforms.html)ÚcontactÚverification_typeÚott_platformÚrazorpay_key)ÚsessionÚgetr   r   ÚobjectsÚfilterr
   ÚRAZORPAY_KEY_ID)Úrequestr"   r#   r)   r*   Úplatform_instances         Ú9C:\xampp\htdocs\skyplay_api_hub\ott_subscription\views.pyÚplatforms_viewr5   ,   s›   € à�O‰O×Ñ ¨Ó.€EØ—?‘?×&Ñ& ~°tÓ<€Lö ØˆØ#ÑÞ	ØˆØ#Ñô Ð0Ó1Ð1ô &×-Ñ-×4Ñ4¸HÐ4ÐEÐô �'Ð<ØØ.Ø)Ü'ñ	?ó ð ó    c                  óB   • [        [        R                  " SS5      5      $ )z,Generates a random 6-digit verification codei † i?B )ÚstrÚrandomÚrandint© r6   r4   Úgenerate_verification_coder<   H   s   € äŒv�~Š~˜f fÓ-Ó.Ð.r6   c                 ó¬   • [        5       nSnSU 3nSn[        X#X@/5        [        R                  R	                  U U[
        R                  " 5       S.S9  g )NzYour OTP Verification CodezYour verification code is zyour-email@example.com©ÚcodeÚ	timestamp)r"   Údefaults)r<   r   r   r/   Úupdate_or_creater   Únow)r"   Úverification_codeÚsubjectÚmessageÚ
from_emails        r4   Úsend_verification_emailrH   M   sY   € Ü2Ó4ÐØ*€GØ*Ð+<Ð*=Ð>€GØ)€JÜˆg 
¨GÔ4ä×Ñ×-Ñ-ØØ+¼(¿,º,».ÑIð .ò r6   c                 óŠ   • [        5       nSU 3n[        R                  R                  U U[        R
                  " 5       S.S9  g )NzYour OTP verification code is r>   )r#   rA   )r<   r   r/   rB   r   rC   )r#   rD   rF   s      r4   Úsend_verification_smsrJ   Z   sE   € Ü2Ó4ÐØ.Ð/@Ð.AÐB€Gô ×Ñ×-Ñ-Ø!Ø+¼(¿,º,».ÑIð .ò r6   c           	      ó  • SnSnSnS nU R                   S:X  Ga3  U R                  R                  S5      nU R                  R                  S5      nU(       GaZ  S nSnSU;   a,  [        R                  R                  US9R                  5       nO+[        R                  R                  US	9R                  5       nUS
:X  af  [        S5        Sn[        R                  " U S5        SU;   a  X0R                  S'   OX0R                  S'   [        S5      n[        [        S5      5      $ U(       an  XVR                  :X  aG  SnSU;   a  X0R                  S'   OX0R                  S'   [        R                  " U S5        [        S5      $ [        R                  " U S5        O³[        R                  " U S5        O›U(       a”  SU;   a3   [        U5        [!        U5        SnSn[        R                  " U S5        O[Sn[$        R&                  " Xƒ5      (       a'  [)        U5        SnSn[        R                  " U S5        O[        R                  " U S5        [+        U SUUUUS.5      $ ! ["         a    [        R                  " U S5         N5f = f)NFÚ ÚPOSTr)   rD   TÚ@)r"   )r#   Ú123456z
call loginz*Verification successful with default code!r"   r#   zott_subscription:platformszVerification successful!z,Invalid verification code. Please try again.z3The verification code has expired or was not found.z0A verification code has been sent to your email.zInvalid email address.z^\+?[1-9]\d{1,14}$r$   z0A verification code has been sent to your phone.zInvalid phone number format.zott_subscription/login.html)Úverification_code_sentÚcode_verifiedr)   r*   )ÚmethodrM   r.   r   r/   r0   ÚfirstÚprintr   Úsuccessr-   r   r   r?   Úerrorr   rH   r   ÚreÚmatchrJ   r
   )	r2   rP   rQ   r)   r*   Úentered_codeÚverification_recordÚurlÚphone_regexs	            r4   Ú
login_viewr]   e   sM  € Ø"ÐØ€MØ€GØÐà‡~�~˜ÔØ—,‘,×"Ñ" 9Ó-ˆØ—|‘|×'Ñ'Ð(;Ó<ˆ÷ à"&ÐØ%)Ð"Ø�g‹~Ü&6×&>Ñ&>×&EÑ&EÈGÐ&EÐ&T×&ZÑ&ZÓ&\Ñ#ä&6×&>Ñ&>×&EÑ&EÐSZÐ&EÐ&[×&aÑ&aÓ&cÐ#ð ˜xÓ'Ü�lÔ#Ø $�Ü× Ò  Ð*VÔWØ˜'“>Ø/6—O‘O GÒ,à6=—O‘O NÑ3ÜÐ:Ó;�Ü¤Ð(DÓ EÓFÐFö #à×#;Ñ#;Ó;Ø$(�MØ˜g“~Ø3:Ÿ™¨Ò0à:AŸ™¨Ñ7Ü×$Ò$ WÐ.HÔIÜ#Ð$@ÓAÐAä—N’N 7Ð,ZÕ[ä—’˜wÐ(]Õ^ö Ø�g‹~ðFÜ" 7Ô+Ü+¨GÔ4Ø-1Ð*Ø(/Ð%Ü×$Ò$ WÐ.`Õað 4�Ü—8’8˜K×1Ñ1Ü)¨'Ô2Ø-1Ð*Ø(/Ð%Ü×$Ò$ WÐ.`Õaä—N’N 7Ð,JÔKä�'Ð8Ø"8Ø&ØØ.ñ	;ó ð øô 'ó FÜ—N’N 7Ð,DÖEðFús   Ç 1I É!JÊJc                 ó.   • [        U 5        [        S5      $ )Nr%   )r	   r   ©r2   s    r4   Úlogout_viewr`   µ   s   € Ü
ˆ7„OÜÐ,Ó-Ð-r6   )r   r   c                 óà  • [        U R                  R                  SS5      =(       d    S5      n[        U R                  R                  SS5      =(       d    S5      n[        U R                  R                  SS5      =(       d    S5      n[        R                  R                  SSS9R                  5       n[        R                  R                  US	9R                  5       nU(       Gaù  [        R                  R                  US
9nUR                  SSS9nUR                  R                  US9nUR                  UR                  SSS9S9n	/ n
UR                  5       (       Ga  U GH   nUR                  R                  5       n/ nU Hk  nUR                  (       a  UR                  R                   OSnUR#                  UR$                  UR&                  UR(                  UR*                  US.5        Mm     [-        X;R$                  5      u  nnU(       a  SOSnU
R#                  UR$                  UR(                  UR&                  UR.                  SUUU(       a  UOSUS.	5        GM     U	R                  5       (       Ga/  U	 GH   nUR                  R                  5       n/ nU Hk  nUR                  (       a  UR                  R                   OSnUR#                  UR$                  UR&                  UR(                  UR*                  US.5        Mm     [-        X;R$                  5      u  nnU(       a  SOSnU
R#                  UR$                  UR(                  UR&                  UR.                  SUUU(       a  UOSUS.	5        GM     U	R                  5       (       d  U
R#                  SS05        US:X  a  [1        SX£US.5      nO[1        SX£US.5      n[3        SU05      $ [3        SS05      $ )NÚplatform_idr   Úsky_plan_idr   Ú	client_idr&   Úhotstart)r(   r?   ©Úid)rb   rg   T)Úflat)Úid__inÚdefault_image_url)rg   Únamer?   Ú	is_activeÚimageÚfreezN/A)	rg   r?   rk   ÚpriceÚsubscription_tiersÚottsÚstatus_flagÚexpiration_dateÚhotstart_enabledÚpaidrF   zNo paid OTT plans available.é   zott_subscription/jiostart.html)Úplansrd   rb   zott_subscription/ott_plans.htmlÚhtmlrV   zSkylinkPlan not found.)ÚintÚGETr.   r   r/   r0   Úexistsr   rS   r   Úvalues_listÚ	ott_plansÚexcluderq   Úallrm   r[   Úappendrg   rk   r?   rl   Úis_plan_expiredro   r   r   )r2   Úplatform_to_checkrc   rd   rt   Úskylink_planr}   Úott_plan_idsÚconnected_ott_plansÚpaid_ott_plansÚ
plans_dataÚott_planÚassociated_ottsÚ	otts_dataÚottÚ	image_urlÚ
is_expiredrs   Úplan_statusÚhtml_contents                       r4   Úget_skylink_plansr�   ½   s}  € ä˜GŸK™KŸO™O¨M¸1Ó=×BÀÓCÐÜ�g—k‘k—o‘o m°QÓ7×<¸1Ó=€KÜ�G—K‘K—O‘O K°Ó3×8°qÓ9€Iô %×,Ñ,×3Ñ3¸8È*Ð3ÐU×\Ñ\Ó^Ðô ×&Ñ&×-Ñ-°Ð-Ð=×CÑCÓE€Lçä—O‘O×*Ñ*Ð7HÐ*ÐIˆ	ð !×,Ñ,¨T¸Ð,Ð=ˆð +×4Ñ4×;Ñ;À<Ð;ÐPÐð #×*Ñ*Ð2E×2QÑ2QÐRVÐ]aÐ2QÐ2bÐ*Ðcˆð ˆ
ð ×%Ñ%×'Ò'Ü/�Ø"*§-¡-×"3Ñ"3Ó"5�Ø�	Û*�CØ14·· §	¡	§¢Ð@S�IØ×$Ñ$Ø!Ÿf™fØ #§¡Ø #§¡Ø%(§]¡]Ø!*ñ&ö ñ +ô />¸iÏÉÓ.UÑ+�
˜OÞ#-™a°1�à×!Ñ!Ø"Ÿ+™+Ø$ŸM™MØ$ŸM™MØ%Ÿ^™^Ø*0Ø%Ø#.Þ:I¡ÈuØ(8ñ
#÷ 
ñ% 0ð> × Ñ ×"Ò"Ü*�Ø"*§-¡-×"3Ñ"3Ó"5�Ø�	Û*�CØ14·· §	¡	§¢Ð@S�IØ×$Ñ$Ø!Ÿf™fØ #§¡Ø #§¡Ø%(§]¡]Ø!*ñ&ö ñ +ô />¸iÏÉÓ.UÑ+�
˜OÞ#-™a°1�Ø×!Ñ!Ø"Ÿ+™+Ø$ŸM™MØ$ŸM™MØ%Ÿ^™^Ø*0Ø%Ø#.Þ:I¡ÈuØ(8ñ
#÷ 
ñ! +ð: "×(Ñ(×*Ñ*Ø×!Ñ! 9Ð.LÐ"MÔNð  Ó!Ü+Ð,LÐXbð  K\ñ  O]ó  ^‰Lä+Ð,MÐYcð  L]ñ  P^ó  _ˆLä˜V \Ð2Ó3Ð3ô ˜WÐ&>Ð?Ó@Ð@r6   c                 óŒ  • U UUUU[         R                  " U5      U[         R                  " U5      UU	S.
nU
(       ah  U	S:X  ab  UR                  U
R                  S5      U
R                  S5      U
R                  S5      U
R                  S5      U
R                  S5      S.5        [        R
                  R                  " S
0 UD6  g	)zF
Common function to log OTT activation, whether successful or failed.
)
rd   rb   Úplan_idr(   rF   ÚinputÚresponse_statusÚoutputÚendpointrp   ru   Úrazorpay_order_idÚrazorpay_payment_idÚrazorpay_signatureÚpayment_amountÚpayment_currency©r—   r˜   r™   rš   r›   Nr;   )ÚjsonÚdumpsÚupdater.   r   r/   Úcreate)rd   r3   r’   r(   rF   Ú
input_datar”   Úoutput_datar–   rp   Úrazorpay_detailsÚlog_datas               r4   Úlog_ott_activationr¥   (  s½   € ð
 Ø(ØØØÜ—’˜JÓ'Ø*Ü—*’*˜[Ó)ØØ0ñ€Hö Ð.°&Ó8Ø�‰Ø!1×!5Ñ!5Ð6IÓ!JØ#3×#7Ñ#7Ð8MÓ#NØ"2×"6Ñ"6Ð7KÓ"LØ.×2Ñ2Ð3CÓDØ 0× 4Ñ 4Ð5GÓ Hñ
ô 	ô ×Ñ×#Ò#Ñ/ hÓ/r6   c                 óH  •  [         R                  R                  XS9R                  5       nU(       aU  UR                  nU(       aA  UR                  S5      nU[        R                  " 5       R                  S5      ::  a  SU4$ SU4$ gg! [         R                   a     gf = f)N)rd   r’   z%d-%m-%YTF)FN)	r   r/   r0   rS   rs   Ústrftimer   rC   ÚDoesNotExist)rd   r’   Úactivation_logrs   Úformatted_expiration_dates        r4   r�   r�   F  sž   € ðô *×1Ñ1×8Ñ8À9Ð8Ð^×dÑdÓfˆÞà,×<Ñ<ˆOö Ø,;×,DÑ,DÀZÓ,PÐ)à,´·²³×0GÑ0GÈ
Ó0SÓSØÐ!:Ð:Ð:à Ð";Ð;Ð;ØàøÜ×(Ñ(ó Ùðús   ‚BB
 ÂB
 Â
B!Â B!c                 ó¸  •  [         R                  " U R                  5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  SS5      n[        R
                  R                  US9nUR                  nS nS n	S n
SnUn[        R
                  R                  UUUS9nUS	:X  a  [        U 5      nOJUS
:X  a  [        U 5      nO8US:X  a  [        U 5      nO&US:X  a  [        U 5      nOUS:X  a  [        U 5      nOS nU(       aN  UR                  n[         R                  " UR                  S5      5      nUS   n	U	S:X  a  UOUS   n
US   nUS   nOSn	Sn
SnUS:X  aj  UR                  S5      UR                  S5      UR                  S5      UR                  SS5      S-  UR                  S5      S.n[!        X&USS XÉX«UU5        O[!        X&USS XÉX«U5
        [#        S!S S".5      $ ! [$         aP  n[!        WWWS#['        U5      ['        U5      S$['        U5      SW5
        [#        S%['        U5      S".5      s S nA$ S nAff = f)&Nrd   rb   r’   rp   rn   rf   rL   )rd   rb   r’   ÚwatchoÚplay_boxÚhotstarÚottplayÚ	tatabingeúutf-8r”   éÈ   r•   r–   r“   é�  z5Invalid platform ID or failed to fetch platform data.ru   r—   r˜   r™   rš   r   éd   r›   rœ   ÚSuccessz/The activation has been completed successfully.T)rU   rF   ÚFailureéô  F)r�   ÚloadsÚbodyr.   r   r/   r?   r   r    Úfetch_watcho_dataÚfetch_playbox_dataÚfetch_hotstar_dataÚfetch_ottplay_dataÚfetch_tatabinge_dataÚcontentÚdecoder¥   r   Ú	Exceptionr8   )r2   Údatard   rb   r’   rp   r3   Úplatform_codeÚplatform_datar”   r•   r–   r¡   ÚsubscriptionÚresponse_contentÚresponse_jsonr£   Úes                     r4   Úott_activationrÉ   ]  s³  € ðGCä�zŠz˜'Ÿ,™,Ó'ˆØ—H‘H˜[Ó)ˆ	Ø—h‘h˜}Ó-ˆØ—(‘(˜9Ó%ˆØ!ŸX™XÐ&:¸FÓCÐä)×1Ñ1×5Ñ5¸Ð5ÐEÐØ)×.Ñ.ˆð ˆØˆØˆØˆØˆ
ô '×.Ñ.×5Ñ5ØØ)Øð 6ð 
ˆð ˜HÓ$Ü-¨gÓ6‰MØ˜jÓ(Ü.¨wÓ7‰MØ˜iÓ'Ü.¨wÓ7‰MØ˜iÓ'Ü.¨wÓ7‰MØ˜kÓ)Ü0°Ó9‰Mà ˆMæØ,×4Ñ4ÐÜ ŸJšJÐ'7×'>Ñ'>¸wÓ'GÓHˆMØ+Ð,=Ñ>ˆOØ&5¸Ó&<‘]À-ÐPXÑBYˆFØ$ ZÑ0ˆHØ& wÑ/‰Jà!ˆOØLˆFØˆHð  Ó'ð &*§X¡XÐ.AÓ%BØ'+§x¡xÐ0EÓ'FØ&*§h¡hÐ/CÓ&DØ"&§(¡(Ð+;¸QÓ"?À#Ñ"EØ$(§H¡HÐ-?Ó$@ñ Ðô ˜y¸WÀið  RCð  EOð  bhð  tFð  HXõ  Yä˜y¸WÀið  RCð  EOð  bhð  tFô  Gä¨Ð9jÑkÓlÐløäó Cä˜9Ð&7¸À)ÌSÐQRËVÔUXÐYZÓU[Ð]`ÔbeÐfgÓbhÐjlð  oAô  	Bä¨¼#¸a»&ÑAÓBÕBûð	Cús   ‚G<G? Ç?
IÈ	AIÉIÉIc                 ó"  • SnSnSnU SU 3n[        UR                  S5      5      R                  S5      nSSU 3S.nS	S
0n [        R                  " USS9R                  S5      n[
        R                  " XUS9n	UU	R                  U	R                  S:X  a  U	R                  5       OU	R                  US.n
U	R                  S:X  a
  [        U
SS9$ [        X©R                  S9$ ! [         a  n[        S[        U5      0SS9s S nA$ S nAff = f)NzNhttps://beta2-publicapis.dishtv.in/api/WatchoOne/SubscriptionRequestWatchoplanÚ152zW@tCh0!$p@54321Ú:r±   úapplication/jsonzBasic ©úContent-TypeÚAuthorizationÚ	InputDatazàrkm1KdqGcA8KsYuZElhieCcEeA2VUQg5Kw3+Cw++kogzYmoyPyhEZP85eIZD1Zi+6McbhfD6sBt4JJz4PM1Bp120bgQDEAnBh/eGi9IaX6IS+pG4HdXPd8SPf6H5KxFrHQG5r+ckdthKQP4dH+kYACHi+OFgUgyf74C1LlQ7LsGcrwaVmUxh5ejHG4Xw+rAbmce6SZIK+A+Xq/Hz4MC7nLlvVJc2Um7YF)Úensure_ascii)ÚheadersrÂ   r²   ©r“   r”   r•   r–   ©Úsafer'   rV   r·   )r   ÚencoderÀ   r�   rž   ÚrequestsÚpostÚstatus_codeÚtextr   rÁ   r8   )r2   Úapi_urlÚusernameÚpasswordÚ
auth_valueÚencoded_auth_valuerÓ   rÂ   Ú	json_dataÚresponseÚresultrÈ   s               r4   rº   rº   ª  s*  € à^€Gð €HØ €Hð �:˜Q˜x˜jÐ)€JÜ" :×#4Ñ#4°WÓ#=Ó>×EÑEÀgÓNÐð +Ø!Ð"4Ð!5Ð6ñ€Gð 	ð  xð€Dð;ä—J’J˜t°%Ñ8×?Ñ?ÀÓHˆ	ô —=’= À	ÑJˆð Ø'×3Ñ3Ø)1×)=Ñ)=ÀÓ)D�h—m‘m”oÈ(Ï-É-Øñ	
ˆð ×Ñ 3Ó&Ü ¨UÑ3Ð3ä ×/CÑ/CÑDÐDøäó ;ä˜W¤c¨!£fÐ-°cÑ:Õ:ûð;ús%   ÁBC% ÃC% Ã%
DÃ/D	ÄDÄ	Dc                 óš  • SnSSS.nSSSS.n [         R                  " XUS	9nUUR                  UR                  S
:X  a  UR                  5       OUR                  US.nUR                  S
:X  a
  [        USS9$ [        XTR                  S9$ ! [         R                  R                   a   n[        [        U5      US.SS9s S nA$ S nAff = f)NzJhttps://8fjpx02rmk.execute-api.ap-south-1.amazonaws.com/prod/v3/assignPackÚ(spfFnjetet705D8sngf7H7kojE04oYkn7DNECvDvrÍ   )z	x-api-keyrÏ   Ú
9715121791Ú€8588f445e9a912e828597d43702aa89aaceacbe149db175366ca95bab1e31ebb85e191e7484116fc2de11b9d9247b5f03786ed689c53716a5a0cdc4280019887Ú4517369)r$   Ú
partnerKeyÚpackCode©r�   rÓ   r²   rÔ   FrÕ   r'   ©rV   r2   r·   )	rØ   rÙ   rÚ   r�   rÛ   r   Ú
exceptionsÚRequestExceptionr8   )r2   rÜ   rÓ   rÂ   râ   rã   rÈ   s          r4   r»   r»   Ú  sØ   € àZ€Gð @Ø*ñ€Gð ð YØñ€DðLä—=’= ¸WÑEˆð Ø'×3Ñ3Ø)1×)=Ñ)=ÀÓ)D�h—m‘m”oÈ(Ï-É-Øñ	
ˆð ×Ñ 3Ó&Ü ¨UÑ3Ð3ä ×/CÑ/CÑDÐDøä×Ñ×/Ñ/ó Lä¤c¨!£f¸Ñ>ÀsÑKÕKûðLús$   �A)B Á9B ÂC
Â*CÂ?C
ÃC
c                 ón  • [         R                  n[         R                  n[         R                  n[         R                  n0 SS_SU_SU_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_nSSS.n [
        R                  " XUS9nUUR                  UR                  S:X  a  UR                  5       OUR                  US.nUR                  S:X  a
  [        US S!9$ [        X‡R                  S"9$ ! [
        R                  R                   a   n	[        [        U	5      US#.S$S"9s S n	A	$ S n	A	ff = f)%NÚmodeÚCREATE_ACTIVATEÚ	oper_codeÚlogin_idr$   Ú
9715121790r"   zarul@gmail.comÚ
first_nameÚJonÚ	last_nameÚDoeÚaddresszsubscriber addressÚ	plan_codeÚottplay_monthly_testÚuse_alt_lco_coder   Úpartner_reference_idrL   ÚzoneÚservice_numberÚ
state_codeÚsubscription_typeÚsubscription_idrÍ   ÚÿfRGcemrfodXg5OBXh6JDJ79MNab7QSbOxlnAlmL8VvRdCNSVBdfiHmSzwvcQ24pDOPtBD2rPu8LrU0S1gOlGZ2iegAPpEKXuvIb9b3ctf3dAQStqGuNRfZYZHEwpzontQQhrmd0EixJ1378ss7sBRonQfceHO6Jyj6La8EODIymMyqhNWURo9zlUZIDjgn19rJCfNVn42nL7OA4zSqTgsA1uyy8nVx7C89l8imSpYvs8E70uqeUzAfo3w9EUpP1rÎ   rë   r²   rÔ   FrÕ   r'   rì   r·   )r   ÚOTTPLAY_API_URLÚOTTPLAY_OPER_CODEÚOTTPLAY_LOGIN_IDÚOTTPLAY_AUTH_TOKENrØ   rÙ   rÚ   r�   rÛ   r   rí   rî   r8   )
r2   rÜ   rò   ró   Ú
auth_tokenÚpayloadrÓ   râ   rã   rÈ   s
             r4   r½   r½     sµ  € ô ×&Ñ&€GÜ×*Ñ*€IÜ×(Ñ(€HÜ×,Ñ,€JðØÐ!ðà�Iðð 	�Hðð 	�ð	ð
 	Ð!ðð 	�eðð 	�Uðð 	Ð'ðð 	Ð+ðð 	˜Aðð 	 ðð 	�ðð 	˜"ðð 	�bðð 	˜Rðð  	˜2ð!€Gð* +ð [ñ€Gð
Oä—=’= ÀÑHˆð Ø'×3Ñ3Ø)1×)=Ñ)=ÀÓ)D�h—m‘m”oÈ(Ï-É-Øñ	
ˆð ×Ñ 3Ó&Ü ¨UÑ3Ð3ä ×/CÑ/CÑDÐDøä×Ñ×/Ñ/ó Oä¤c¨!£f¸ÑAÈ#ÑNÕNûðOús%   Á9A)C6 Ã#C6 Ã6D4ÄD/Ä)D4Ä/D4c                 ó   • SSS.$ ©Nr°   zTataBinge specific data)ÚplatformrÂ   r;   r_   s    r4   r¾   r¾   8  ó   € à#Ð-FÑGÐGr6   c                 ó   • SSS.$ r  r;   r_   s    r4   r¼   r¼   =  r  r6   c                 ó^  • U R                   S:w  a  [        SS0SS9$ [        (       d!  [        R	                  S5        [        SS0SS9$  [
        R                  " U R                  5      n[        UR                  S	S
5      5      S-  nUR                  SS5      nUS
::  a  [        SS0SS9$ [        R                  S[        R                   35        [        R                  R                  UUSS.5      n[        R                  SU 35        [        U5      $ ! [        R                   R"                   a7  n[        R	                  S[%        U5       35        [        SS0SS9s S nA$ S nAf[&         a7  n[        R	                  S[%        U5       35        [        SS0SS9s S nA$ S nAff = f)NrM   rV   zMethod not allowedi•  r'   u#   â�Œ Razorpay client not initializedzRazorpay client not initializedr·   Úamountr   r´   ÚcurrencyÚINRzInvalid amountr³   u   ðŸ”‘ API Key: r   )r  r  Úpayment_captureu   âœ… Razorpay Order Created: u   â�Œ Razorpay API Error: zRazorpay authentication failedi‘  u   â�Œ Unexpected Error: zInternal server error)rR   r   Úrazorpay_clientÚloggerrV   r�   r¸   r¹   ry   r.   Úinfor   r1   Úorderr    ÚrazorpayÚerrorsÚBadRequestErrorr8   rÁ   )r2   rÂ   r  r  r  rÈ   s         r4   Úcreate_razorpay_orderr  C  sƒ  € à‡~�~˜ÓÜ˜WÐ&:Ð;ÀCÑHÐHçŠ?Ü�‰Ð:Ô;Ü˜WÐ&GÐHÐQTÑUÐUðLÜ�zŠz˜'Ÿ,™,Ó'ˆÜ�T—X‘X˜h¨Ó*Ó+¨cÑ1ˆØ—8‘8˜J¨Ó.ˆà�Q‹;Ü Ð*:Ð ;ÀCÑHÐHô 	�‰�n¤X×%=Ñ%=Ð$>Ð?Ô@ô  ×%Ñ%×,Ñ,ØØ Ø ñ.
ó ˆô
 	�‰Ð2°5°'Ð:Ô;ä˜EÓ"Ð"øä�?‰?×*Ñ*ó UÜ�‰Ð/´°A³¨xÐ8Ô9Ü˜WÐ&FÐGÐPSÑTÕTûäó LÜ�‰Ð-¬c°!«f¨XÐ6Ô7Ü˜WÐ&=Ð>ÀsÑKÕKûðLús8   Á
A!D Â,A+D ÄF,Ä6,E(Å"F,Å(F,Å5,F'Æ!F,Æ'F,c                 ó¨  • U R                   S:X  a‡  [        R                  " U R                  5      nUR	                  S5      nUR	                  S5      nUR	                  S5      nUUUS.n [
        R                  R                  U5        [        SSS.5      $ [        S	S0SS9$ ! [        R                  R                   a    [        S	S
0SS9s $ f = f)NrM   r˜   r—   r™   )r—   r˜   r™   zPayment successfulzSubscription activated.)r(   rF   rV   z&Payment signature verification failed.r³   r'   zInvalid request)rR   r�   r¸   r¹   r.   r  ÚutilityÚverify_payment_signaturer   r  r  ÚSignatureVerificationError)r2   rÂ   r˜   r—   r™   Úparams_dicts         r4   Úconfirm_paymentr!  j  sÖ   € à‡~�~˜ÓÜ�zŠz˜'Ÿ,™,Ó'ˆØ"Ÿh™hÐ'<Ó=ÐØ ŸH™HÐ%8Ó9ÐØ!ŸX™XÐ&:Ó;Ðð "3Ø#6Ø"4ñ
ˆð		aÜ×#Ñ#×<Ñ<¸[ÔIô  Ð+?ÐLeÑ fÓgÐgô ˜Ð"3Ð4¸SÑAÐAøô �‰×9Ñ9ó 	aÜ Ð*RÐ SÐ\_Ñ`Ò`ð	aús   Á+,B$ Â$*CÃCc                 ó    • [        U SSS05      $ )Nz"ott_subscription/transactions.htmlr)   T©r
   r_   s    r4   Útransactions_viewr$  Š  s   € Ü�'Ð?À)ÈTÐARÓSÐSr6   c                 ó’  • U R                   R                  SS5      nU R                   R                  SS5      nU R                   R                  SS5      n[        R                  R	                  5       nU(       a  UR                  US9nUS:X  a  SU 3nUR                  U5      nU Vs/ s H†  nUR                  UR                  R                  UR                  UR                  R                  S	5      UR                  UR                  UR                  UR                   R                  S
5      S.PMˆ     nn[#        SU0SS9$ s  snf )NÚsearchrL   Úsort_byÚactivation_dateÚ
sort_orderÚdesc)Úclient_id__icontainsÚ-z%Y-%m-%d %H:%Mz%Y-%m-%d)rd   r  r’   r(  r(   rp   rš   rs   ÚtransactionsFrÕ   )rz   r.   r   r/   r   r0   Úorder_byrd   rb   rk   r’   r(  r§   r(   rp   rš   rs   r   )r2   Úsearch_queryr'  r)  r-  ÚtrÂ   s          r4   Úget_transactionsr1  Ž  s0  € à—;‘;—?‘? 8¨RÓ0€LØ�k‰k�o‰o˜iÐ):Ó;€GØ—‘—‘ ¨vÓ6€Jô $×+Ñ+×/Ñ/Ó1€Lö Ø#×*Ñ*ÀÐ*ÐMˆð �VÓØ�g�Y�-ˆØ×(Ñ(¨Ó1€Lñ óò ˆAð Ÿ™ØŸ™×*Ñ*Ø—y‘yØ ×0Ñ0×9Ñ9Ð:JÓKØ—h‘hØ"#×"6Ñ"6Ø×.Ñ.Ø ×0Ñ0×9Ñ9¸*ÓEô		
ñ ð 	ð ô ˜¨Ð.°UÑ;Ð;ùòs   Â)BEc                 ó    • [        U SSS05      $ )Nzott_subscription/dashboard.htmlr)   Tr#  r_   s    r4   Údashboard_viewr3  ³  s   € Ü�'Ð<À	È4Ð?PÓQÐQr6   c           
      ó   • [         R                  R                  SS9R                  5       n[         R                  R                  SS9R	                  [        S5      S9S   =(       d    Sn[         R                  R                  5       n[         R                  R                  S5      R                  [        S5      S	9n[         R                  R                  SS9R                  S5      R                  [        S5      S9n[         R                  R                  S
S0S9R                  S
5      R                  [        S5      S	9R                  S
5      n[        UUU[        U5      [        U5      [        U5      S.5      $ )Nru   )rp   rš   )Útotalr5  r   Úplatform_id__namerg   )ÚcountÚdatezDATE(activation_date))Úselect)Útotal_revenueÚtotal_activationsÚtotal_transactionsÚactivations_by_platformÚrevenue_by_platformÚactivations_over_time)r   r/   r0   r7  Ú	aggregater   ÚvaluesÚannotater   Úextrar.  r   Úlist)r2   r<  r:  r;  r=  r>  r?  s          r4   Úget_dashboard_datarE  ¶  se  € ä)×1Ñ1×8Ñ8ÈFÐ8ÐS×YÑYÓ[Ðô %×,Ñ,×3Ñ3ÀvÐ3ÐN×XÑXÔ_bÐcsÓ_tÐXÐuÐv}Ñ~÷  Dð  CD€Mô )×0Ñ0×6Ñ6Ó8Ðô 	× Ñ ×'Ñ'Ð(;Ó<ß	‰œ˜d›ˆÐ	$ð ô 	× Ñ ×'Ñ'¸6Ð'ÐBß	‰Ð#Ó	$ß	‰œÐ,Ó-ˆÐ	.ð ô 	× Ñ ×&Ñ&¨vÐ7NÐ.OÐ&ÐPß	‰�‹ß	‰œ˜d›ˆÐ	$ß	‰�&Ó	ð	 ô Ø&Ø.Ø0Ü#'Ð(?Ó#@Ü#Ð$7Ó8Ü!%Ð&;Ó!<ñó ð r6   )rL   rn   N)SÚdjango.core.mailr   Údjango.core.exceptionsr   Údjango.core.validatorsr   Údjango.confr   Údjango.contribr   Útwilio.restr   r9   Údjango.contrib.authr	   rW   Údjango.shortcutsr
   r   Úmodelsr   r   r   r   r   Údjango.httpr   r�   rØ   Úbase64r   Údjango.views.decorators.csrfr   r  ÚloggingÚdjango.utilsr   r   r   r   Údjango.template.loaderr   Údjango.urlsr   Údjango.utils.timezoner   Údjango.db.modelsr   r   Ú	getLoggerÚ__name__r  r/   r   Úrecordr@   ÚtzinfoÚsaver1   ÚRAZORPAY_SECRETr  rV   r5   r<   rH   rJ   r]   r`   r�   r¥   r�   rÉ   rº   r»   r½   r¾   r¼   r  r!  r$  r1  r3  rE  r;   r6   r4   Ú<module>r^     s—  ðÝ &Ý 2Ý 1Ý  Ý #Ý Û Ý &Û 	ß -ß YÕ YÝ $Û Û Ý Ý 4Û Û Ý !ß (Ý $Ý 3Ý Ý ,ß 'à	×	Ò	˜8Ó	$€à×&Ñ&×*Ñ*Ö,€FØ×Ñ×ÑÓ&Ù% f×&6Ñ&6Ó7ˆÔØ�‰Žñ -ð ,€Ø,€æ–Ø—o’o¨O¸_Ð+MÑN�Oà€OØ
‡L�LÐMÔNòò8/ò

òòMò`.õ
 %ß (òhAôV0ò<ð. ñHCó ðHCòX.;ò`%LòP4OòlHò
Hð ñ#Ló ð#LðL ñBó ðBò>Tò <òJRó&r6   