Ë
    `„Ói²¬ ã                   óÞ  — d dl Z d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
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 d dlmZ d dlmZmZ d dlmZ d dl 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. d dl/m0Z0 d dl1Z1d dl2Z2d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 ddl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCZCddl9mDZD d dl+mEZE d dlFmFZF d dlGmHZHmIZImJZJ d dlKmLZL d d lmMZM d d!lNmOZO d dlPZPd dl Z d dl"m#Z#m$Z$ d dlmZ d dl m!Z! d dl2Z2d d"lQmRZR d d#l"mSZS d d$lTmUZU d d%lVmWZW d dl-m.Z. d dlXZXdd&l9mYZY d d'l mZZZm!Z! d dlmZ d d(l3m[Z[ d dl Z d d)l\m]Z] ej¼                  d*k(  reRj¾                  neRjÀ                  Z^ eRejÂ                  ejÄ                  e^¬+«      Zc eCjÈ                  eCjÊ                  jÌ                  «        ejÎ                  eh«      Zid,„ Zjd-Zkd.Zld/Zmd0Znd1Zod2Zpekrelr e1j`                  ekelf¬3«      ZqndZqeijå                  d4«       e.d5„ «       Zse.e.d6„ «       «       Ztd7„ Zud8„ Zvd9„ Zwd:„ Zxd;„ Zyd<„ Zzd=„ Z{d>„ Z|d?„ Z}d@„ Z~dA„ ZdB„ Z€dC„ Z�	 	 	 	 	 djdD„Z‚dE„ Zƒe.dF„ «       Z„dG„ Z…dHZ†dI„ Z‡dJ„ ZˆdK„ Z‰dL„ ZŠdM„ Z‹dN„ ZŒdO„ Z�dP„ ZŽe.dQ„ «       Z�e.dR„ «       Z�dS„ Z‘dT„ Z’dU„ Z“dV„ Z”dW„ Z•dX„ Z–dY„ Z—dZ„ Z˜d[„ Z™d\„ Zšd]„ Z›d^„ Zœd_„ Z�d`„ Zžda„ ZŸdb„ Z dc„ Z¡dd„ Z¢e.de„ «       Z£d dflmZ dg„ Z¤dh„ Z¥e.di„ «       Z¦y)ké    N)Ú	b64encode)ÚdatetimeÚ	timedelta)ÚDES3)ÚpadÚunpad)Úsettings)Úmessages)Úlogout)ÚValidationError)Ú	send_mail)Úvalidate_email)ÚSumÚCount)Úmodel_to_dict)ÚJsonResponse)ÚrenderÚredirect)Úrender_to_string)Úreverse)Útimezone)Ú
make_aware)Úcsrf_exempt)ÚClient)ÚSiteSetting)Ú	urlencode)ÚHTTPBasicAuthé   )	ÚSkylinkPlanÚOTTPlanÚOTTSubscriptionÚOTTActivationLogÚOTTAggregatorÚVerificationCodeÚIptvRequestÚSupportVideoÚ	TVChannel)ÚJioHotstarCode)Únow)Úpprint)ÚDecimalÚInvalidOperationÚROUND_HALF_UP)Úsend_email_from_template)Údate)ÚZone)ÚCashfree)Úget_object_or_404)Úlogin_required)ÚCreateOrderRequest)ÚCashfreePayment)ÚHttpResponser   )ÚPaymentGatewaySettings)ÚMD5ÚSANDBOX)Ú	XClientIdÚXClientSecretÚXEnvironmentc                  ó   — y)z8Fetch and decode a setting value from SiteSetting model.N© )Úkeys    ú2/var/www/skyplay_api_hub/ott_subscription/views.pyÚget_setting_valuerA   n   s   � ó    Úrzp_live_rS1MxKUitLtEqBÚbfVP9XE4hnZepjtHHHbhMfvbz&https://api.msg91.com/api/sendhttp.phpÚ437052AwuTl8Nuu367ea608cP1ÚSKYLTDÚ1407165460465145131)Úauthu:   â�Œ Razorpay client not initialized. API keys are missing!c           
      óî  — | j                   dk7  rt        ddid¬«      S 	 t        j                  }t        j                  }|› d|› �}t        |j                  d«      «      j                  d«      }dd	|› �d
œ}d}dd|dt        «       dddddœ	}t        j                  |«      }t        |«      }	t        |	«      }
t        |||	|
dœ«      S # t        $ r"}t        dt        |«      id¬«      cY d }~S d }~ww xY w)NÚGETÚerrorzOnly GET method allowedé•  ©Ústatusú:úutf-8úapplication/jsonúBasic ©úContent-TypeÚAuthorizationl   ¡+i	 Ú188598ÚDLie
 ÚISéÿÿÿÿÚmobileno)	ÚUserIDÚUserTypeÚMobileNoÚPlanIdÚTransactionNoÚSourceÚOTTSubscriberIDÚSearchByÚSearchValue)ÚheadersÚ
input_dataÚencrypted_dataÚdecrypted_checkéô  )Úmethodr   r	   ÚWATCHO_API_USER_NAMEÚWATCHO_API_PASSWORDr   ÚencodeÚdecodeÚgenerate_transaction_idÚjsonÚdumpsÚencrypt_dataÚdecrypt_dataÚ	ExceptionÚstr)ÚrequestÚusernameÚpasswordÚ
auth_valueÚencoded_auth_valuerd   Úclient_phone_numberre   Ú	json_dataÚenc_dataÚdec_dataÚes               r@   Úencrypt_watcho_payloadr   ¥   s  € à�>‰>˜UÒ"Ü Ð*CÐ DÈSÔQÐQð*	?ô  ×4Ñ4ˆHÜ×3Ñ3ˆHà$˜: Q x jÐ1ˆJÜ!*¨:×+<Ñ+<¸WÓ+EÓ!F×!MÑ!MÈgÓ!VÐð !3Ø#)Ð*<Ð)=Ð!>ñˆGð #-Ðà"Ø Ø/Ø Ü!8Ó!:ØØ#%Ø%Ø)ñ
ˆJô Ÿ
™
 :Ó.ˆIÜ# IÓ.ˆHÜ# HÓ-ˆHäØ"Ø(Ø"*Ø#+ñ	!ó ð øô ò 	?Ü ¬#¨a«&Ð 1¸#Ô>Õ>ûð	?ús    B(C	 Ã		C4ÃC/Ã)C4Ã/C4c                 óP  — | j                   dk7  rt        ddid¬«      S 	 t        j                  | j                  «      }|j                  d«      }|st        ddid¬«      S t        |«      }t        ||d	œ«      S # t        $ r"}t        dt        |«      id
¬«      cY d }~S d }~ww xY w)NÚPOSTrK   zOnly POST method allowedrL   rM   Úencrypted_textz Missing "data" parameter in bodyé�  )Úencrypted_inputÚdecrypted_outputrh   )	ri   r   ro   ÚloadsÚbodyÚgetrr   rs   rt   )ru   r‡   rf   r…   r~   s        r@   Údecrypt_watcho_payloadr‰   Ö   s«   € ð ‡~�~˜ÒÜ˜WÐ&@ÐAÈ#ÔNÐNð;ä�z‰z˜'Ÿ,™,Ó'ˆØŸ™Ð"2Ó3ˆáÜ Ð*LÐ MÐVYÔZÐZä'¨Ó7ÐäØ-Ø 0ñ
ó ð 	øô
 ò ;Ü˜W¤c¨!£fÐ-°cÔ:Õ:ûð;ús$    A A: Á!A: Á:	B%ÂB ÂB%Â B%c                 óZ  — | j                   j                  dd«      j                  «       }|dk(  r1t        j                  }t        j
                  }t        j                  }n0t        j                  }t        j                  }t        j                  }|› d|› �}|}|}|› d|› �}	t        |	j                  d«      «      j                  d«      }
dd|
› �dœ}	 t        j                  ||d	d
¬«      }|j                  «        |j                  «       S # t        j                   j"                  $ r t%        ddid¬«      cY S t        j                   j&                  $ r t%        ddid¬«      cY S t        j                   j(                  $ r%}t%        ddt+        |«      › �id¬«      cY d }~S d }~ww xY w)NÚselected_stateÚTNz/get_user_by_phone/rO   rP   rQ   rR   rS   é
   F©rd   ÚtimeoutÚverifyrK   ú$SSL certificate verification failed.rh   rM   úRequest timed out.úAPI request failed: ©Úsessionrˆ   Úupperr	   ÚAPI_BASE_URLÚAPI_AUTH_USERNAMEÚAPI_AUTH_PASSWORDÚNORTH_API_BASE_URLÚNORTH_API_AUTH_USERNAMEÚNORTH_API_AUTH_PASSWORDr   rl   rm   ÚrequestsÚraise_for_statusro   Ú
exceptionsÚSSLErrorr   ÚTimeoutÚRequestExceptionrt   )ru   Úphone_numberÚstateÚapi_base_urlÚapi_auth_nameÚapi_auth_passÚapi_urlrv   rw   rx   ry   rd   Úresponser~   s                 r@   Úfetch_user_by_phonerª   ñ   sš  € ð �O‰O×ÑÐ 0°$Ó7×=Ñ=Ó?€EØˆt‚|Ü×,Ñ,ˆÜ ×2Ñ2ˆÜ ×2Ñ2‰ä×2Ñ2ˆÜ ×8Ñ8ˆÜ ×8Ñ8ˆà�Ð1°,°Ð@€Gð €HØ€Hð �:˜Q˜x˜jÐ)€JÜ" :×#4Ñ#4°WÓ#=Ó>×EÑEÀgÓNÐð +Ø!Ð"4Ð!5Ð6ñ€Gð
Tä—<‘< °À"ÈUÔSˆð 	×!Ñ!Ô#ð �}‰}‹Ðøô
 ×Ñ×'Ñ'ò [Ü˜WÐ&LÐMÐVYÔZÒZÜ×Ñ×&Ñ&ò IÜ˜WÐ&:Ð;ÀCÔHÒHÜ×Ñ×/Ñ/ò TÜ˜WÐ(<¼SÀ»V¸HÐ&EÐFÈsÔSÕSûðTús*   Ã8D Ä,F*Ä<+F*Å)F*ÆF%ÆF*Æ%F*c                 óŠ  — | j                   j                  d«      }| j                   j                  d«      }|r|}d}n|r|}d}nt        d«      S | j                   j                  dd«      }|rtt        | |«      }|D ��cg c]  }|D ]  }d|v sŒ|d   ‘Œ Œ }	}}t	        |	«      }
|| j                   d<   |
d	k(  r|| j                   d<   |d
   }n|
d	kD  r|	| j                   d<   g }|rñ|D ]ì  }d|v sŒ|d   }t        d„ |D «       i «      }|j                  |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      dœ«       Œî || j                   d<   t        j                  j                  d¬«      j                  d«      }t        j                  j                  d¬«      j                  d«      }|D �cg c]I  }|j                  |j                  |j                  r|j                  j                  nd|j                   d œ‘ŒK }}d}|rt#        |t$        «      rd|d
   v r|d
   d   }d
}d}|r>t&        j                  j                  |¬!«      j)                  «       }|rd	}|j*                  }t-        | d"|||t.        
d	kD  r	ng |
|||||t1        d	d#«      t1        d#d$«      d%œ«      S c c}}w c c}w )&zEDisplay active OTT platforms and Razorpay key after successful login.Úemailr£   Úphoneúott_subscription:loginÚzoho_selected_userNÚUserÚzoho_all_userr   r   Ú
zoho_usersc              3   óJ   K  — | ]  }d |v sŒ|j                  d i «      –— Œ y­w)ÚcurrentBillingCycleUsageN)rˆ   )Ú.0Úxs     r@   ú	<genexpr>z!platforms_view.<locals>.<genexpr>O  s3   è ø€ ò  %FÈqÐeð  DEò  fE Q§U¡UÐ+EÀr×%Jñ  %Fùs   ‚	#Œ#ÚnameÚ Úidrv   Ú
account_idrN   Úprofile_imagezdefault_profile.pngÚaddress_cityÚbillingResetTypeÚbandwidthTemplateName)r¸   rº   rv   r»   r­   r¬   rN   r¼   r½   r¾   r¿   Údisplay_paramÚactiverM   Úorder_idT©Ú	is_activeÚdefault_channel_image_url)rº   r¸   ÚimagerÂ   ©Ú	client_idzott_subscription/platforms.htmlé   é   )ÚcontactÚverification_typeÚott_platformÚrazorpay_keyÚusersÚ
user_countÚselected_userÚ	user_datarÀ   Útvchannel_listÚiptv_statusÚactivation_codeÚrange_1_to_5Úrange_6_to_10)r•   rˆ   r   rª   ÚlenÚnextÚappendr#   ÚobjectsÚfilterÚorder_byr'   rº   r¸   rÆ   ÚurlrÂ   Ú
isinstanceÚlistr%   ÚfirstrÕ   r   ÚRAZORPAY_KEY_IDÚrange)ru   r¬   r£   rË   rÌ   rÑ   rÒ   ÚdataÚitemrÏ   rÐ   rÀ   Ú	user_infoÚbilling_infoÚplatform_instanceÚtv_channelsÚchannelrÓ   rÈ   rÔ   rÕ   Ú
iptv_entrys                         r@   Úplatforms_viewrì   (  sn  € ð �O‰O×Ñ Ó(€EØ—?‘?×&Ñ& ~Ó6€LáØˆØ#ÑÙ	ØˆØ#ÑäÐ0Ó1Ð1à—O‘O×'Ñ'Ð(<¸dÓC€MáÜ'¨°Ó=ˆ	Ø*3×W $ÀÒW¸ÈÐRVÊ��f“ÐW�ÐWˆÑWä˜“Zˆ
ð ,5ˆ�‰˜Ñ(Ø˜Š?Ø3<ˆG�O‰OÐ0Ñ1Ø$ Q™<‰MØ˜!Š^Ø,1ˆG�O‰O˜LÑ)ð
 €MÙØ!ò 	ˆDØ˜Š~Ø  ™L�	Ü#ñ  %FÐTaô  %Fð  HJó   K�Ø×$Ñ$Ø%ŸM™M¨&°"Ó5Ø#Ÿ-™-¨¨bÓ1Ø )§¡¨j¸"Ó =Ø"+§-¡-°¸bÓ"AØ&Ÿ]™]¨7°BÓ7Ø&Ÿ]™]¨7°BÓ7Ø'Ÿm™m¨H°bÓ9Ø%.§]¡]°?ÐDYÓ%ZØ$-§M¡M°.À"Ó$EØ(4×(8Ñ(8Ð9KÈRÓ(PØ-9×-=Ñ-=Ð>UÐWYÓ-Zñ&õ ð		ð( (5€G‡O�O�OÑ$Ü%×-Ñ-×4Ñ4¸HÐ4ÓE×NÑNÈzÓZÐä×#Ñ#×*Ñ*°TÐ*Ó:×CÑCÀJÓO€Kð #öð ð —*‘*Ø—L‘LØ*1¯-ª-�W—]‘]×&Ò&Ð=XØ×(Ñ(ó		
ð€Nð ð €IÙœ M´4Ô8¸TÀ]ÐSTÑEUÑ=UØ! !Ñ$ TÑ*ˆ	à€KØ€OáÜ ×(Ñ(×/Ñ/¸)Ð/ÓD×JÑJÓLˆ
ÙØˆKØ(×8Ñ8ˆOô
 �'Ð<ØØ.Ø)Ü'Ø$ qš.‘¨bØ Ø&ØØ&Ø'Ø"Ø*Ü˜a ›Ü˜q "›ñ?ó ð ùóI XùòTs   Á?L:Â	L:ÉAM c                 ó   — | j                   dk(  �r&	 t        j                  | j                  «      }|j	                  d«      }|st        dddœ«      S | j                  j	                  dg «      }t        j                  dt        j                  |d¬	«      «       t        j                  d
|«       d }|D ]C  }|D ]8  }d|v sŒ|d   }|j	                  d«      }|j	                  d«      }	|||	fv sŒ6|} n |sŒC n |r.|| j                  d<   d| j                  _
        t        d|dœ«      S t        dddœ«      S t        ddi«      S # t        $ r@}
t        j                  dt        |
«      «       t        dt        |
«      dœ«      cY d }
~
S d }
~
ww xY w)Nr�   ÚuserFzNo user selected©ÚsuccessrK   r±   zStored zoho_all_user: %sé   )ÚindentzSelected User: %sr°   rº   rv   r¯   T)rð   rÑ   zUser not found in zoho_all_userz Error in store_selected_user: %srð   )ri   ro   r†   r‡   rˆ   r   r•   ÚloggerÚinforp   Úmodifiedrs   rK   rt   )ru   rä   rÑ   r±   Úselected_user_datarÒ   rå   rî   Úuser_idrv   r~   s              r@   Ústore_selected_userrø   ’  sˆ  € Ø‡~�~˜Óð%	EÜ—:‘:˜gŸl™lÓ+ˆDØ ŸH™H VÓ,ˆMá Ü#°Ð@RÑ$SÓTÐTð $ŸO™O×/Ñ/°ÀÓDˆMä�K‰KÐ2´D·J±J¸}ÐUVÔ4WÔXÜ�K‰KÐ+¨]Ô;ð "&ÐØ*ò �	Ø%ò "�DØ ’~Ø# F™|˜Ø"&§(¡(¨4£.˜Ø#'§8¡8¨JÓ#7˜à(¨W°hÐ,?Ò?Ø1:Ð.Ù!ð"ò &Ùðñ "Ø8J�—‘Ð 4Ñ5Ø+/�—‘Ô(Ü#°ÐGYÑ$ZÓ[Ð[ä¨EÐ<]Ñ ^Ó_Ð_ô ˜ EÐ*Ó+Ð+øô	 ò 	EÜ�L‰LÐ;¼SÀ»VÔDÜ¨E¼CÀ»FÑ CÓDÕDûð	Eús<   ’?E ÁA-E Ã -E Ã.E Ã62E Ä)E Å	FÅ5FÆFÆFc                  ó@   — t        t        j                  dd«      «      S )z,Generate a random 6-digit verification code.i † i?B )rt   ÚrandomÚrandintr>   rB   r@   Úgenerate_verification_coderü   Á  s   € äŒv�~‰~˜f fÓ-Ó.Ð.rB   c                 ó´   — t        «       }d}d|› �}d}t        |||| g«       t        j                  j	                  | |t        j                  «       dœ¬«       y)zSend OTP to user's email.zYour OTP Verification CodezYour verification code is zyour-email@example.com©ÚcodeÚ	timestamp)r¬   ÚdefaultsN)rü   r   r$   rÛ   Úupdate_or_creater   r)   )r¬   Úverification_codeÚsubjectÚmessageÚ
from_emails        r@   Úsend_verification_emailr  É  s]   € ä2Ó4ÐØ*€GØ*Ð+<Ð*=Ð>€GØ)€Jäˆg�w 
¨U¨GÔ4ä×Ñ×-Ñ-ØØ+¼(¿,¹,».ÑIð .õ rB   c                 óÜ  — t        «       }d|› d|› d�}t        j                  j                  | |t	        j
                  «       dœ¬«       d| › �} t        t        d|| t        dœ}	 t        j                  t        t        |«      ¬	«      }|j                  d
k(  rd|j                  dœS d|j                  dœS # t        j                  j                   $ r}dt#        |«      dœcY d}~S d}~ww xY w)z?Send OTP to user's phone number using the new MSG91 API format.zDear z-, Your Skylink Fibernet Verification Code is ú.rþ   )r£   r  Ú91Ú4)ÚauthkeyÚsenderÚrouter  ÚmobilesÚ	DLT_TE_ID)ÚparamséÈ   T)rð   r©   Frï   N)rü   r$   rÛ   r  r   r)   ÚAUTH_KEYÚ	SENDER_IDÚTEMPLATE_IDr�   rˆ   ÚMSG91_API_URLr   Ústatus_codeÚtextrŸ   r¢   rt   )r£   r¸   r  r  r  r©   r~   s          r@   Úsend_verification_smsr  Û  sé   € ä2Ó4ÐØ�d�VÐHÐIZÐH[Ð[\Ð]€Gô ×Ñ×-Ñ-Ø!Ø+¼(¿,¹,».ÑIð .ô ð
 ˜�~Ð&€Lô ÜØØØÜ ñ€Fð3Ü—<‘<¤´iÀÓ6GÔHˆØ×Ñ 3Ò&Ø#°·±Ñ?Ð?à$¨x¯}©}Ñ=Ð=øÜ×Ñ×/Ñ/ò 3Ø ¬3¨q«6Ñ2Õ2ûð3ús%   Á%AB6 Â'B6 Â6C+ÃC&Ã C+Ã&C+c           
      óD  — d}d}d}d}| j                   dk(  �rQ| j                  j                  d«      }| j                  j                  d«      }d}d}| j                  j                  d«      dk(  r1d| j                  d	<   d| j                  d<   t	        | d
||||ddœ«      S |rDd|v r	 t        |«       d}n1d}t        j                  ||«      rd}nt        j                  | d«       |�rd}	d}|r/t        j                  j                  |¬«      j                  «       }	n0|r.t        j                  j                  |¬«      j                  «       }	|dk(  r6d}t        j                  | d«       || j                  |rdnd<   t!        d«      S |	r\||	j"                  k(  r6d}|| j                  |rdnd<   t        j                  | d«       t!        d«      S t        j                  | d«       n�t        j                  | d«       nj|rh|s|rdd}
|r&t%        |«       d}d}t        j                  | d«       n:|r8t&        j(                  }|rt+        ||
«       d}d}t        j                  | d«       t	        | d
||||d œ«      S # t        $ r t        j                  | d«       Y �Œ¶w xY w)!ú4Login view with OTP verification via email or phone.Fr¹   Nr�   rË   r  Úchange_contactÚ1Úverification_code_sentzott_subscription/login.htmlÚ0©r  Úcode_verifiedrË   rÌ   r  ú@TúInvalid email address format.ú^\+?[1-9]\d{9,14}$úInvalid phone number format.©r¬   ©r£   Ú994439ú*Verification successful with default code!r¬   r£   úott_subscription:platformsúVerification successful!ú,Invalid verification code. Please try again.ú3The verification code has expired or was not found.r°   ú0A verification code has been sent to your email.r­   ú0A verification code has been sent to your phone.©r  r!  rË   rÌ   ©ri   r�   rˆ   r•   r   r   r   r
   rK   ÚreÚmatchr$   rÛ   rÜ   rá   rð   r   rÿ   r  r	   ÚSMS_SEND_FLAGr  ©ru   r  r!  rË   rÌ   Úentered_codeÚis_valid_emailÚis_valid_phoneÚphone_regexÚverification_recordr¸   Úsms_send_flags               r@   Ú
login_viewr<  ÿ  s¯  € à"ÐØ€MØ€GØÐà‡~�~˜Óà—,‘,×"Ñ" 9Ó-ˆØ—|‘|×'Ñ'Ð(;Ó<ˆð ˆØˆà�<‰<×ÑÐ,Ó-°Ò4à8=ˆG�O‰OÐ4Ñ5Ø)+ˆG�O‰O˜IÑ&Ü˜'Ð#@Ø&<Ø*ØØ!2Ø!ñCó ð ñ Ø�g‰~ðMÜ" 7Ô+Ø%)‘Nð 4�Ü—8‘8˜K¨Ô1Ø%)‘Nä—N‘N 7Ð,JÔKò Ø"&ÐØ%)Ð"áÜ&6×&>Ñ&>×&EÑ&EÈGÐ&EÓ&T×&ZÑ&ZÓ&\Ñ#ÙÜ&6×&>Ñ&>×&EÑ&EÐSZÐ&EÓ&[×&aÑ&aÓ&cÐ#à˜xÒ'Ø $�Ü× Ñ  Ð*VÔWØQX�—‘©>¡¸~ÑNÜÐ <Ó=Ð=á"ØÐ#6×#;Ñ#;Ò;Ø$(�MØU\�G—O‘O©~¡GÀ>ÑRÜ×$Ñ$ WÐ.HÔIÜ#Ð$@ÓAÐAä—N‘N 7Ð,ZÕ[ä—‘˜wÐ(]Õ^ñ ™.©NØˆDÙÜ'¨Ô0Ø)-Ð&Ø$+Ð!Ü× Ñ  Ð*\Õ]ÙÜ (× 6Ñ 6�Ù Ü)¨'°4Ô8Ø)-Ð&Ø$+Ð!Ü× Ñ  Ð*\Ô]ä�'Ð8Ø"8Ø&ØØ.ñ	;ó ð øôi 'ò MÜ—N‘N 7Ð,K×LðMúó   Â)I< É<JÊJc           
      óD  — d}d}d}d}| j                   dk(  �rQ| j                  j                  d«      }| j                  j                  d«      }d}d}| j                  j                  d«      dk(  r1d| j                  d	<   d| j                  d<   t	        | d
||||ddœ«      S |rDd|v r	 t        |«       d}n1d}t        j                  ||«      rd}nt        j                  | d«       |�rd}	d}|r/t        j                  j                  |¬«      j                  «       }	n0|r.t        j                  j                  |¬«      j                  «       }	|dk(  r6d}t        j                  | d«       || j                  |rdnd<   t!        d«      S |	r\||	j"                  k(  r6d}|| j                  |rdnd<   t        j                  | d«       t!        d«      S t        j                  | d«       n�t        j                  | d«       nj|rh|s|rdd}
|r&t%        |«       d}d}t        j                  | d«       n:|r8t&        j(                  }|rt+        ||
«       d}d}t        j                  | d«       t	        | d
||||d œ«      S # t        $ r t        j                  | d«       Y �Œ¶w xY w)!r  Fr¹   Nr�   rË   r  r  r  r  z#ott_subscription/loginwithface.htmlr  r   r"  Tr#  r$  r%  r&  r'  r(  r)  r¬   r£   r*  r+  r,  r-  r°   r.  r­   r/  r0  r1  r5  s               r@   Úlogin_face_viewr?  ]  s°  € à"ÐØ€MØ€GØÐà‡~�~˜Óà—,‘,×"Ñ" 9Ó-ˆØ—|‘|×'Ñ'Ð(;Ó<ˆð ˆØˆà�<‰<×ÑÐ,Ó-°Ò4à8=ˆG�O‰OÐ4Ñ5Ø)+ˆG�O‰O˜IÑ&Ü˜'Ð#HØ&<Ø*ØØ!2Ø!ñKó ð ñ Ø�g‰~ðMÜ" 7Ô+Ø%)‘Nð 4�Ü—8‘8˜K¨Ô1Ø%)‘Nä—N‘N 7Ð,JÔKò Ø"&ÐØ%)Ð"áÜ&6×&>Ñ&>×&EÑ&EÈGÐ&EÓ&T×&ZÑ&ZÓ&\Ñ#ÙÜ&6×&>Ñ&>×&EÑ&EÐSZÐ&EÓ&[×&aÑ&aÓ&cÐ#à˜xÒ'Ø $�Ü× Ñ  Ð*VÔWØQX�—‘©>¡¸~ÑNÜÐ <Ó=Ð=á"ØÐ#6×#;Ñ#;Ò;Ø$(�MØU\�G—O‘O©~¡GÀ>ÑRÜ×$Ñ$ WÐ.HÔIÜ#Ð$@ÓAÐAä—N‘N 7Ð,ZÕ[ä—‘˜wÐ(]Õ^ñ ™.©NØˆDÙÜ'¨Ô0Ø)-Ð&Ø$+Ð!Ü× Ñ  Ð*\Õ]ÙÜ (× 6Ñ 6�Ù Ü)¨'°4Ô8Ø)-Ð&Ø$+Ð!Ü× Ñ  Ð*\Ô]ä�'Ð@Ø"8Ø&ØØ.ñ	Có ð øôi 'ò MÜ—N‘N 7Ð,K×LðMúr=  c                 ó<  — | j                   dk(  rÿ| j                  j                  d«      }|j                  d«      d   }t	        j
                  |«      }t        j                  d«      }t        j                  |«      d   }t        j                  |«      }t        j                  |«      d   }t        j                  |g|«      }d|v r#t        j                  | d«       t        d	di«      S t        j                  | d
«       t        d	di«      S t        d	did¬«      S )Nr�   rÆ   ú,r   zpath_to_reference_image.jpgr   TzFace verification successful!rð   zFace verification failed.Frƒ   rM   )ri   r�   rˆ   ÚsplitÚbase64Ú	b64decodeÚface_recognitionÚload_image_fileÚface_encodingsÚcompare_facesr
   rð   r   rK   )ru   Ú
image_datarÆ   Úreference_imageÚreference_encodingÚcaptured_imageÚcaptured_encodingÚmatchess           r@   Úverify_facerO  ¼  s
  € Ø‡~�~˜Òà—\‘\×%Ñ% gÓ.ˆ
Ø×%Ñ% cÓ*¨1Ñ-ˆ
Ü× Ñ  Ó,ˆô +×:Ñ:Ð;XÓYˆÜ-×<Ñ<¸_ÓMÈaÑPÐô *×9Ñ9¸%Ó@ˆÜ,×;Ñ;¸NÓKÈAÑNÐô #×0Ñ0Ð2DÐ1EÐGXÓYˆà�7‰?ä×Ñ˜WÐ&EÔFÜ ¨DÐ 1Ó2Ð2ä�N‰N˜7Ð$?Ô@Ü ¨EÐ 2Ó3Ð3ä˜ EÐ*°3Ô7Ð7rB   c                 ó.   — t        | «       t        d«      S )z"Logout the user and clear session.r®   )r   r   ©ru   s    r@   Úlogout_viewrR  Ü  s   € ä
ˆ7„OÜÐ,Ó-Ð-rB   c                 ó¶  — | j                   j                  dd«      j                  «       }|dk(  r1t        j                  }t        j
                  }t        j                  }n0t        j                  }t        j                  }t        j                  }|› d|› d|› d�}d|i}	|}
|}|
› d|› �}t        |j                  d«      «      j                  d«      }d	d
|› �i}	 t        j                  |||	dd¬«      }|j                  «        |j!                  «       }t#        |t$        «      r|r|d   S t'        ddid¬«      S # t        j(                  j*                  $ r t'        ddid¬«      cY S t        j(                  j,                  $ r t'        ddid¬«      cY S t        j(                  j.                  $ r%}t'        ddt1        |«      › �id¬«      cY d}~S d}~ww xY w)ú8
    Fetches unpaid invoices for a given client ID.
    r‹   rŒ   z/get_all_invoices_from_userid/ú/z/desc/Ú	accountIdrO   rP   rU   rR   r�   F)rd   ro   r�   r�   r   rK   z)Unexpected response format or empty data.rh   rM   r‘   r’   r“   N)r•   rˆ   r–   r	   r—   r˜   r™   rš   r›   rœ   r   rl   rm   r�   Úpostrž   ro   rß   rà   r   rŸ   r    r¡   r¢   rt   )ru   rÈ   r»   Úpaid_statusr¤   r¥   r¦   r§   r¨   Úpayloadrv   rw   rx   ry   rd   r©   Úresponse_datar~   s                     r@   Úget_zoho_invoice_listr[  ä  sà  € ð �O‰O×ÑÐ 0°$Ó7×=Ñ=Ó?€EØˆt‚|Ü×,Ñ,ˆÜ ×2Ñ2ˆÜ ×2Ñ2‰ä×2Ñ2ˆÜ ×8Ñ8ˆÜ ×8Ñ8ˆð �Ð<¸Y¸KÀqÈÈÐU[Ð\€Gð 	�Zð€Gð €HØ€Hð �:˜Q˜x˜jÐ)€JÜ" :×#4Ñ#4°WÓ#=Ó>×EÑEÀgÓNÐð 	˜6Ð"4Ð!5Ð6ð€GðTä—=‘= °'ÀÐQSÐ\aÔbˆð 	×!Ñ!Ô#à Ÿ™›ˆô �m¤TÔ*©}Ø  Ñ#Ð#ä Ð*UÐ VÐ_bÔcÐcøô ×Ñ×'Ñ'ò [Ü˜WÐ&LÐMÐVYÔZÒZÜ×Ñ×&Ñ&ò IÜ˜WÐ&:Ð;ÀCÔHÒHÜ×Ñ×/Ñ/ò TÜ˜WÐ(<¼SÀ»V¸HÐ&EÐFÈsÔSÕSûðTús1   ÃAD< Ä-D< Ä<,GÅ*+GÆGÆ3GÇGÇGc                 ód  — | j                   j                  dd«      j                  «       }|dk(  r1t        j                  }t        j
                  }t        j                  }n0t        j                  }t        j                  }t        j                  }|› d|› �}|}|}|› d|› �}	t        |	j                  d«      «      j                  d«      }
dd|
› �i}	 t        j                  ||dd	¬
«      }|j                  «        |j                  «       }|r|S g S # t        j                   j"                  $ r t%        ddid¬«      cY S t        j                   j&                  $ r t%        ddid¬«      cY S t        j                   j(                  $ r%}t%        ddt+        |«      › �id¬«      cY d}~S d}~ww xY w)rT  r‹   rŒ   z/get_invoice_details/rO   rP   rU   rR   r�   FrŽ   rK   r‘   rh   rM   r’   r“   Nr”   )ru   Ú
invoice_idr¤   r¥   r¦   r§   r¨   rv   rw   rx   ry   rd   r©   rZ  r~   s                  r@   Úget_zoho_invoice_detailsr^  )  s£  € ð
 �O‰O×ÑÐ 0°$Ó7×=Ñ=Ó?€EØˆt‚|Ü×,Ñ,ˆÜ ×2Ñ2ˆÜ ×2Ñ2‰ä×2Ñ2ˆÜ ×8Ñ8ˆÜ ×8Ñ8ˆð �Ð3°J°<Ð@€Gð €HØ€Hà�:˜Q˜x˜jÐ)€JÜ" :×#4Ñ#4°WÓ#=Ó>×EÑEÀgÓNÐð 	˜6Ð"4Ð!5Ð6ð€GðTä—<‘< °À"ÈUÔSˆð 	×!Ñ!Ô#à Ÿ™›ˆñ !.ˆ}Ð5°2Ð5øä×Ñ×'Ñ'ò [Ü˜WÐ&LÐMÐVYÔZÒZÜ×Ñ×&Ñ&ò IÜ˜WÐ&:Ð;ÀCÔHÒHÜ×Ñ×/Ñ/ò TÜ˜WÐ(<¼SÀ»V¸HÐ&EÐFÈsÔSÕSûðTús0   Ã<D ÄD Ä,F/Å+F/Å.F/Æ
F*Æ$F/Æ*F/c                 óT  — g }d}t        | j                  j                  dd«      xs d«      }t        | j                  j                  dd«      xs d«      }t        | j                  j                  dd«      xs d«      }t        | j                  j                  dd«      xs d«      }| j                  j                  dg «      }|st	        d«      S |d   j                  d	d
«      }|d   j                  dd
«      }	|d   j                  dd
«      }
|
j                  «       dk7  r!d}t        d|||d|dœ«      }t        d|i«      S t        | ||d«      }|r9|dk(  r4ddj                  |«      › d�}t        d|||d|dœ«      }t        d|i«      S t        | ||d«      }|s&|dk(  r!d}t        d|||d|dœ«      }t        d|i«      S t        j                  j                  dd¬«      j                  «       }g }t        j                  j                  «       D �ci c]Š  }|j                  |j                   |j"                  |j$                  xs d
|j&                  xs d
|j(                  r|j(                  j*                  nd
|j,                  r|j,                  j*                  nd
dœ“ŒŒ }}g }g }i }d}d}|dk(  �r |d   }t/        | |«      }|�rzt1        |t2        «      �rit5        |«      dkD  �rZ|d   }|j                  dg «      }|j                  dg «      }|j                  dg «      }t7        j8                  |d«      }t7        j8                  |d«      }||z
  j:                  }|j<                  |j<                  z
  dz  |j>                  |j>                  z
  z   }|d k(  rd}n/|d!k(  rd"}n'|d#k(  rd"}n|d$k(  rd"}n|d%k(  rd}n|d&k(  rd}n|d'k(  rd}|| j                  d(<   d)| j                  _         t1        |t2        «      r$t5        |«      dkD  r|d   j                  d*d+«      }nFd}d,}t        d|||d|dœ«      }t        d|i«      S d}d-}t        d|||d|dœ«      }t        d|i«      S 	 tB        j                  j                  |¬.«      }|jD                  }|	jI                  «       }	|	jK                  d/d0«      jK                  d1d0«      }|jM                  d0«      d   jI                  «       d2z   } tO        |«      }!|!g}"|d"k(  rf|!tO        d3«      z  jQ                  tO        d4«      tR        ¬5«      }#|"jU                  |#«       |"jU                  |#dz   «       |"jU                  |#dz
  «       nj|dk(  re|!tO        d6«      z  jQ                  tO        d4«      tR        ¬5«      }#|"jU                  |#«       |"jU                  |#dz   «       |"jU                  |#dz
  «       tV        j                  j                  |"d)d| ¬7«      }$|r%|j                  «       d8k7  r|$j                  |¬9«      }$|$jY                  «       }%|| j                  d(<   || j                  d:<   |j[                  «       | j                  d;<   |j[                  «       | j                  d<<   || j                  d=<   || j                  d><   |%s!d?}t        d|||d|dœ«      }t        d|i«      S |%j\                  j                  «       }&|&D ]1  }'|'j^                  r|jU                  |'«       Œ!|jU                  |'«       Œ3 d}(d}(|r&|D ]!  })ta        ||)j                  «      \  }*}+|*sŒd}( n g }|D �]º  }'|'jb                  j                  },|j                  |,i «      }-|-j                  d@d
«      }.|-j                  dAd
«      }/|-j                  dBd
«      }0|-j                  dCd
«      }1|-j                  dDd
«      }2|'jd                  j                  «       jg                  dE«      }3|3D �4cg c]T  }4|4j                  |4j                   |4j"                  |4jh                  |4jj                  r|4jj                  j*                  ndFdGœ‘ŒV }5}4ta        ||'j                  «      \  }*}+|*rdnd}6|jU                  i dH|'j                  “dI|'j"                  “dD|'j                   “dJ|'jl                  “dKdL“dM|5“dN|6“dO|+r|+ndP“dQ|“d|“d|'jb                  j                  “dR|'j^                  “d@|.“dA|/“dB|0“dC|1“dS|2“«       �Œ½ to        |d¬T«      D �]Æ  \  }7}'|'jb                  j                  },|j                  |,i «      }-|-j                  d@d
«      }.|-j                  dAd
«      }/|-j                  dBd
«      }0|-j                  dCd
«      }1|-j                  dDd
«      }2|'jd                  j                  «       jg                  dE«      }3|3D �4cg c]_  }4|4j                  |4j                   |4j"                  |4jh                  |4jp                  |4jj                  r|4jj                  j*                  ndFdUœ‘Œa }5}4ta        ||'j                  «      \  }8}+|jU                  i dH|'j                  “dI|'j"                  “dD|'j                   “dJ|'jl                  “dKdL“dM|5“dN|(“dO|+r|+ndP“dQ|“d|“d|'jb                  j                  “dR|'j^                  “dE|7“d@|.“dA|/“dB|0“dC|1“dS|2i¥«       �ŒÉ i }|dk(  �ri|dk(  rDt        j                  j                  d¬V«      js                  d¬W«      }9|9ju                  dHd)¬X«      }:n|g}:|:D �]  };|;},|j                  |,i «      }-|-j                  d@d
«      }.|-j                  dAd
«      }/|-j                  dBd
«      }0|-j                  dCd
«      }1|-j                  dDd
«      }2tv        j                  j                  |;dY¬Z«      jy                  d[«      jg                  d\«      }<|<D �]a  }'|'jz                  }=|=sŒ|dk(  r|;› d]|=j                  › �nt}        |=j                  «      }>|>|vr©|'jd                  j                  «       jg                  dE«      }3|=j                   |3D �4cg c]T  }4|4j                  |4j                   |4j"                  |4jh                  |4jj                  r|4jj                  j*                  ndFdGœ‘ŒV c}4||;ddY|'j^                  g d^œ||><   ta        ||'j                  «      \  }*}+||>   d_   jU                  |'j                  |'j"                  |'j                   |'jl                  |'j~                  |*rdnd|+xs dP|.|/|0|1|2d`œ«       �Œd �Œ |dak(  rdbnd}?t        |?||||dt5        |«      |dcœ«      }t        d|i«      S c c}w # tB        jF                  $ r d }Y �	Œw xY wc c}4w c c}4w c c}4w )dNr   Úplatform_idÚsky_plan_idr   rÈ   Ú	plan_typerÀ   r®   r»   r¹   r¿   rN   rÁ   zñDear customer, your account is currently inactive.<br>
To restore your OTT access, please contact our support team  or <a href='https://www.skylink.net.in/inidvidual-broadband/contact-us/' target='_blank'>click here</a> to resolve the issue.zott_subscription/ott_plans.html)ÚplansrÈ   r`  Úun_paid_invoice_flagr  ÚhtmlÚunpaidz! Dear customer, Pending invoice: z, z§.<br> Please <a href='https://www.skylinknet.in/customer_portal/account/sn' target='_blank'>click here</a> to complete the payment and ensure uninterrupted OTT access.ÚpaidzNo paid invoices found.Úhotstar)rN   rÿ   )r¸   rÿ   Úplay_store_urlÚapp_store_urlÚplay_store_iconÚapp_store_iconÚdetailsOfInvoiceÚbillingPeriodFromÚbillingPeriodToú%Y-%m-%dé   rñ   é   rÉ   é   é   é   é   é   Úbilling_cycleTÚamountú0.00z'Amount not found in details of invoice.zNo invoice details available.)Ú	zone_nameÚmbpsÚMbpsÚMBPSú Mbpsz0.925r  )Úroundingz0.85)Ú
amount__inÚbandwidth_verified_flagrN   Ú	bandwidthÚskyplay)Úserver_typer]  Úbilling_from_dateÚbilling_to_dateÚinvoice_amountÚskylink_plan_amountz0No Skylink Plan found with the specified amount.ri  rj  rk  rl  r¸   rÂ   Údefault_image_url)rº   r¸   rÿ   rÄ   rÆ   rº   rÿ   ÚpriceÚsubscription_tiersÚfreeÚottsÚstatus_flagÚexpiration_datezN/AÚhotstar_enabledÚflexible_plan_flagÚaggregator_name)Ústart)rº   r¸   rÿ   rÄ   rÂ   rÆ   rM   )rÿ   )ÚflatF)r`  Úplan_group__isnullÚ
plan_groupÚplan_group__order_idÚ_)Ú
group_namerŽ  rÀ   r`  rŒ  r‘  r’  rc  rc  )rº   rÿ   r¸   r‹  Úvalidity_monthsr�  r�  ri  rj  rk  rl  r“  é   zott_subscription/jiostart.html)rc  rÈ   r`  rb  rd  Úflexible_free_plans_countÚplans_by_group)@ÚintrJ   rˆ   r•   r   Úlowerr   r   r[  Újoinr#   rÛ   rÜ   ÚexistsÚallrº   r¸   rÿ   ri  rj  rk  rÞ   rl  r^  rß   rà   rØ   r   ÚstrptimeÚdaysÚyearÚmonthrõ   r0   Úservice_typeÚDoesNotExistÚstripÚreplacerB  r+   Úquantizer-   rÚ   r   rá   Ú	isoformatÚ	ott_plansr’  Úis_plan_expiredr`  rŽ  rÝ   rÄ   rÆ   r‹  Ú	enumeraterÂ   ÚexcludeÚvalues_listr    Úselect_relatedr—  rt   r›  )@ru   Ú
plans_datary  Úplatform_to_checkra  rÈ   rb  rÀ   r»   Úbrand_widthÚcustomerStatusr  Úhtml_contentÚun_paid_invoice_listÚpaid_plain_invoicesr‘  ÚaggÚaggregators_dictÚflexible_free_plansÚnon_flexible_free_plansrž  Úfirst_invoice_idrx  Úinvoice_detailsÚfirst_invoiceÚdetails_of_invoicer†  r‡  Údate_differenceÚzoneÚclient_service_typeÚ
normalizedÚcleaned_bandwidthÚbase_amountÚamounts_to_checkÚdiscounted_amountÚskylink_plan_qsÚskylink_planÚfree_ott_plansÚott_planÚflexible_plan_status_flagÚany_planÚ
is_expiredr�  r`  Úplatform_datari  rj  rk  rl  r“  Úassociated_ottsÚottÚ	otts_dataÚplan_statusÚindexr™  ÚaggregatorsÚaggregator_idsÚaggregator_idr®  ÚgroupÚ	group_keyÚtemplate_names@                                                                   r@   Úget_skylink_plansrÞ  \  s�  € Ø€JØ€FÜ˜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Ü�G—K‘K—O‘O K°Ó3Ò8°qÓ9€IØ—O‘O×'Ñ'¨¸Ó<€MÙÜÐ0Ó1Ð1ð ˜qÑ!×%Ñ% l°BÓ7€JØ Ñ"×&Ñ&Ð'>ÀÓC€KØ" 1Ñ%×)Ñ)¨(°BÓ7€Nà×ÑÓ Ò)ð~ˆô (Ð(IØØ"Ø,Ø$%ØñL
ó ˆô ˜V \Ð2Ó3Ð3ô 1°¸)ÀZÐQYÓZÐÙ ¨a¢Ø7¸¿	¹	ÐBVÓ8WÐ7Xð  Y@ð  CˆÜ'Ð(IØØ"Ø,Ø$%ØñL
ó ˆô ˜V \Ð2Ó3Ð3ä/°¸ÀJÐPVÓWÐÙ 9°¢>Ø+ˆÜ'Ð(IØØ"Ø,Ø$%ØñL
ó ˆô ˜V \Ð2Ó3Ð3Ü#×+Ñ+×2Ñ2¸(ÈÐ2ÓS×ZÑZÓ\€Oà€Jô !×(Ñ(×,Ñ,Ó.ö
ð ð 	�‰Ø—H‘HØ—H‘HØ!×0Ñ0Ò6°BØ ×.Ñ.Ò4°"Ø:=×:MÒ:M˜s×2Ñ2×6Ò6ÐSUØ8;×8JÒ8J˜c×0Ñ0×4Ò4ÐPRñ
ñ 	
ð
Ðð 
ð ÐØ ÐØ€NØÐØ€Mà�Aƒ~Ø.¨qÑ1ÐÜ2°7Ð;KÓLˆÚœz¨/¼4Õ@ÄSÈÓEYÐ\]ÓE]Ø+¨AÑ.ˆMØ!.×!2Ñ!2Ð3EÀrÓ!JÐà -× 1Ñ 1Ð2EÀrÓ JÐØ+×/Ñ/Ð0AÀ2ÓFˆOô !)× 1Ñ 1Ð2CÀZÓ PÐÜ&×/Ñ/°ÀÓLˆOà.Ð1BÑB×HÑHˆOð -×1Ñ1Ð4E×4JÑ4JÑJÈbÑPÐTc×TiÑTiÐl}÷  mDñ  mDñ  UDñ  EˆMð  Ò!Ø !‘Ø !Ò#Ø !‘Ø !Ò#Ø !‘Ø !Ò#Ø !‘Ø "Ò$Ø "‘Ø "Ò$Ø "‘Ø "Ò$Ø "�ð 0=ˆG�O‰O˜OÑ,Ø'+ˆG�O‰OÔ$ÜÐ,¬dÔ3¼Ð<NÓ8OÐRSÒ8SØ+¨AÑ.×2Ñ2°8¸VÓD‘ð �ØC�Ü/Ð0QØ'Ø!*Ø#4Ø,-Ø&ñTó  �ô $ V¨\Ð$:Ó;Ð;àˆFØ5ˆGÜ+Ð,MØ#Ø&Ø0Ø()Ø"ñPó ˆLô   ¨Ð 6Ó7Ð7ð	'Ü—<‘<×#Ñ#¨jÐ#Ó9ˆDØ"&×"3Ñ"3Ðð
 "×'Ñ'Ó)ˆØ ×(Ñ(¨°Ó8×@Ñ@ÀÈÓPˆ
à&×,Ñ,¨VÓ4°QÑ7×=Ñ=Ó?À'ÑIÐô* ˜f“oˆØ'˜=Ðð ˜AÒØ!,¬w°wÓ/?Ñ!?× IÑ IÌ'ÐRUË,ÔanÐ IÓ oÐØ×#Ñ#Ð$5Ô6Ø×#Ñ#Ð$5°aÑ$7Ô8Ø×#Ñ#Ð$5°aÑ$7Õ8à˜bÒ Ø!,¬w°v«Ñ!>× HÑ HÌÐQTËÔ`mÐ HÓ nÐØ×#Ñ#Ð$5Ô6Ø×#Ñ#Ð$5°aÑ$7Ô8Ø×#Ñ#Ð$5°aÑ$7Ô8ô &×-Ñ-×4Ñ4Ø'Ø$(ØØ'ð	 5ó 
ˆñ Ð#6×#<Ñ#<Ó#>À)Ò#KØ-×4Ñ4ÐATÐ4ÓUˆOð '×,Ñ,Ó.ˆà+8ˆ�‰˜Ñ(Ø(8ˆ�‰˜Ñ%Ø.?×.IÑ.IÓ.Kˆ�‰Ð+Ñ,Ø,;×,EÑ,EÓ,Gˆ�‰Ð)Ñ*Ø,2ˆ�‰Ð(Ñ)ð 28ˆ�‰Ð-Ñ.ÙØHˆGÜ+Ð,MØ#Ø&Ø0Ø()Ø"ñPó ˆLô   ¨Ð 6Ó7Ð7ð &×/Ñ/×3Ñ3Ó5ˆð 'ò 	9ˆHØ×*Ò*Ø#×*Ñ*¨8Õ4à'×.Ñ.¨xÕ8ð		9ð %&Ð!Ø$%Ð!áà/ò �Ü.=¸iÈÏÉÓ.UÑ+�
˜Oò Ø01Ð-Ùðð ˆ
ð 0ó 0	ˆHð #×.Ñ.×1Ñ1ˆKð -×0Ñ0°¸bÓAˆMØ*×.Ñ.Ð/?ÀÓDˆNØ)×-Ñ-¨o¸rÓBˆMà+×/Ñ/Ð0AÀ2ÓFˆOØ*×.Ñ.Ð/?ÀÓDˆNØ+×/Ñ/°¸Ó;ˆOð 'Ÿm™m×/Ñ/Ó1×:Ñ:¸:ÓFˆOð +ö	ð ð Ÿ&™&ØŸH™HØŸH™HØ!$§¡Ø.1¯iªi˜SŸY™YŸ]š]Ð=Póð	ˆIð 	ô +:¸)ÀXÇ[Á[Ó*QÑ'ˆJ˜Ù)™!¨qˆKà×Ñð Ø�h—k‘kðà˜Ÿ™ðð ˜Ÿ™ðð ˜Ÿ™ð	ð
 % fðð ˜	ðð ˜{ðð "±o¡?È5ðð " ?ðð   ðð ˜x×3Ñ3×6Ñ6ðð % h×&AÑ&Aðð ! .ðð   ðð " /ðð  ! ð!ð" " /ð#ö ð=0	ôf  )Ð)<ÀAÔFó /	‰OˆE�8à"×.Ñ.×1Ñ1ˆKð -×0Ñ0°¸bÓAˆMØ*×.Ñ.Ð/?ÀÓDˆNØ)×-Ñ-¨o¸rÓBˆMà+×/Ñ/Ð0AÀ2ÓFˆOØ*×.Ñ.Ð/?ÀÓDˆNØ+×/Ñ/°¸Ó;ˆOà&Ÿm™m×/Ñ/Ó1×:Ñ:¸:ÓFˆOð +ö
ð ð Ÿ&™&ØŸH™HØŸH™HØ!$§¡Ø #§¡Ø.1¯iªi˜SŸY™YŸ]š]Ð=Póð
ˆIð 
ô "1°¸H¿K¹KÓ!HÑˆAˆà×Ñð Ø�h—k‘kðà˜Ÿ™ðð ˜Ÿ™ðð ˜Ÿ™ð	ð
 % fðð ˜	ðð Ð8ðð "±o¡?È5ðð " ?ðð   ðð ˜x×3Ñ3×6Ñ6ðð % h×&AÑ&Aðð ˜Eðð ! .ðð   ðð  " /ð!ð" ! ð#ð$ " /ñ%ö ð9/	ðd €NØ�Aƒ~ð  Ò!Ü'×/Ñ/×6Ñ6¸hÐ6ÓG×OÑOÐU^ÐOÓ_ˆKØ(×4Ñ4°TÀÐ4ÓE‰Nà/Ð0ˆNà+ó >	ˆMð (ˆKð -×0Ñ0°¸bÓAˆMØ*×.Ñ.Ð/?ÀÓDˆNØ)×-Ñ-¨o¸rÓBˆMà+×/Ñ/Ð0AÀ2ÓFˆOØ*×.Ñ.Ð/?ÀÓDˆNØ+×/Ñ/°¸Ó;ˆOô  Ÿ™×.Ñ.¸=Ð]bÐ.Óc×rÑrÐsó  A÷  Jñ  Jð  Kaó  bˆIà%ó -�Ø ×+Ñ+�ÙØð >OÐRSÒ=S˜}˜o¨Q¨u¯x©x¨jÑ9ÔY\Ð]b×]eÑ]eÓYf�	à NÑ2Ø&.§m¡m×&7Ñ&7Ó&9×&BÑ&BÀ:Ó&N�Oð ',§j¡jð *9ö!ð #&ð '*§f¡fØ(+¯©Ø(+¯©Ø-0¯]©]Ø:=¿)º)¨¯©¯ªÐI\óò!ð *7Ø'4Ø.4Ø+0Ø.6×.IÑ.IØ!#ñ!1�N 9Ñ-ô( />¸iÈÏÉÓ.UÑ+�
˜OØ˜yÑ)¨'Ñ2×9Ñ9Ø"Ÿ+™+Ø$ŸM™MØ$ŸM™MØ%Ÿ^™^Ø'/×'?Ñ'?Ù(2¡1¸Ø'6Ò'?¸%Ø&4Ø%2Ø&5Ø%3Ø&5ñ;ö òA-ð#>	ðJ 9JÈQÒ8NÑ4ÐTu€MÜ# MØØØ(ØØ !Ü%(Ð)<Ó%=Ø(ñ4ó €Lô ˜ Ð.Ó/Ð/ùò]
øôv × Ñ ò 	'Ø"&Óð	'üòH	ùòb
ùòX!s.   ÈBu:Ñ(,u? ß4AvçA$v ñAv%
õ?vövc                 óN  — | j                   j                  dg «      }|r|d   j                  d«      nd}t        | j                   j                  dd«      «      }| j                   j                  d«      }| j                   j                  d«      }d}d}	 | j                   j                  d	«      r0t        j                  | j                   d	   «      j                  «       }| j                   j                  d
«      r0t        j                  | j                   d
   «      j                  «       }	 | j                   d   d   d   d   }|€&t        j                  |d   «      j                  «       }|€&t        j                  |d   «      j                  «       }|�	 t        t        |«      «      }i d|“d|“d|“d|“d|“d|“d|“d|“d|	“d|
“d|“d|“d|“d	|“d
|“d|“d|“d|i¥}|
dk(  rj|dk(  re|rc|j                  |j                  d«      |j                  d«      |j                  d «      |j                  d!«      |j                  d"«      d#d$œ«       |
dk(  rl|d%k(  rg|re|j                  |j                  d&«      |j                  d'«      |j                  d(«      ||j                  d)«      |j                  d*d+«      d#d,œ«       t        j                  j                  d-i |¤Ž y# t        $ r Y �ŒÅw xY w# t        t        t        f$ r Y �Œww xY w# t        t        f$ r d}Y �Œxw xY w).z^
    Common function to log OTT activation (Free / Paid)
    Supports Razorpay & Cashfree
    rÀ   r   r­   Nrx  r   r]  rˆ  r†  r‡  r¯   r´   ÚbillingStartDateÚbillingEndDaterÈ   r`  Úplan_idrN   r  ÚinputÚresponse_statusÚoutputÚendpointrŒ  r£   Úpayment_gatewayÚpayment_raw_datarg  ÚrazorpayÚrazorpay_order_idÚrazorpay_payment_idÚrazorpay_signatureÚpayment_amountÚpayment_currencyT)rê  rë  rì  rí  rî  Úpayment_verifiedÚcashfreerÂ   Úcf_payment_idÚpayment_session_idÚorder_amountÚorder_currencyÚINR)Úcashfree_order_idÚcashfree_payment_idÚcashfree_payment_session_idÚcashfree_raw_responserí  rî  rï  r>   )r•   rˆ   rŸ  r   Úfromisoformatr/   Ú
ValueErrorÚKeyErrorÚ
IndexErrorr+   rt   r,   Úupdater"   rÛ   Úcreate)ru   rÈ   rè   râ  rN   r  re   rä  Úoutput_dataræ  rŒ  Úrazorpay_detailsrç  Úpayment_datarÀ   r­   rx  r]  rˆ  r†  r‡  Úcurrent_usageÚlog_datas                          r@   Úlog_ott_activationr  +  sº  € ð, —O‘O×'Ñ'¨¸Ó<€MÙ-:ˆM˜!Ñ× Ñ  Ô)À€Eô ˜Ÿ™×+Ñ+¨O¸QÓ?Ó@€MØ—‘×$Ñ$ \Ó2€JØ—_‘_×(Ñ(Ð)9Ó:€NàÐØ€OðØ�?‰?×ÑÐ2Ô3Ü (× 6Ñ 6Ø—‘Ð 3Ñ4ó!ç‰d‹fð ð �?‰?×ÑÐ0Ô1Ü&×4Ñ4Ø—‘Ð 1Ñ2óç‰d‹fð ðØŸ™Ð(<Ñ=¸aÑ@ÀÑCÐD^Ñ_ˆàÐ$Ü (× 6Ñ 6ØÐ0Ñ1ó!ç‰d‹fð ð Ð"Ü&×4Ñ4ØÐ.Ñ/óç‰d‹fð ð Ð!ð	"Ü$¤S¨Ó%8Ó9ˆNð
Ø�YðàÐ(ðð 	�7ðð 	�&ð	ð
 	�7ðð 	�ðð 	˜?ðð 	�+ðð 	�Hðð 	Ð0ðð 	˜ðð 	˜ðð 	�jðð 	Ð.ðð 	˜?ðð  	˜.ð!ð" 	˜?ð#ð$ 	˜Lñ%€Hð, ˜VÒ#¨¸:Ò(EÑJZØ�‰Ø!1×!5Ñ!5Ð6IÓ!JØ#3×#7Ñ#7Ð8MÓ#NØ"2×"6Ñ"6Ð7KÓ"LØ.×2Ñ2Ð3CÓDØ 0× 4Ñ 4Ð5GÓ HØ $ñ
ô 	ð ˜VÒ#¨¸:Ò(EÉ,Ø�‰Ø!-×!1Ñ!1°*Ó!=Ø#/×#3Ñ#3°OÓ#DØ+7×+;Ñ+;Ð<PÓ+QØ%1Ø*×.Ñ.¨~Ó>Ø ,× 0Ñ 0Ð1AÀ5Ó IØ $ñ
ô 	ô ×Ñ×#Ñ#Ñ/ hÓ/øôS ò Úðûô" ”j¤*Ð-ò Úðûô !¤*Ð-ò 	"Ø!‹Nð	"ús8   ÂBK$ Ä,A(K4 ÆL Ë$	K1Ë0K1Ë4LÌLÌL$Ì#L$c                 ó"  — t         j                  j                  | |¬«      j                  d«      j	                  «       }|sy|j
                  }|r@|j                  d«      }t        j                  «       j                  «       }||k  rd|fS d|fS y)N)rÈ   râ  z-id)FNz%d-%m-%YFT)
r"   rÛ   rÜ   rÝ   rá   r‡  Ústrftimer   r)   r/   )rÈ   râ  Úactivation_logr�  Úformatted_expiration_dateÚcurrent_dates         r@   r¯  r¯  ¢  s‘   € Ü%×-Ñ-×4Ñ4¸yÐRYÐ4ÓZ×cÑcÐdiÓj×pÑpÓr€NáØà$×4Ñ4€OáØ$3×$<Ñ$<¸ZÓ$HÐ!Ü—|‘|“~×*Ñ*Ó,ˆð ˜lÒ*ØÐ3Ð3Ð3àÐ2Ð2Ð2àrB   c                 ó|  — 	 t        j                  | j                  «      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  dd«      }t        j
                  j                  |¬«      }|j                  }d }d }	d }
d}|}t        j
                  j                  |||¬«      }t        j                  d	|› �«       t        |«       t        d
«       t        |«       |dk(  rt        d
«       t        | «      }nF|dk(  rt        | «      }n5|dk(  rt        | «      }n$|dk(  rt        | «      }n|dk(  rt!        | «      }nd }t        |«       d}|rQ|j"                  }t        j                  |j%                  d«      «      }|d   }	|d   }|	dk(  r|n|d   }
|d   }|d   }nd}	d}
d}|dk(  rz|j                  d«      |j                  d«      |j                  d«      t'        |j                  dd«      «      d z  |j                  d!d"«      d#œ}t)        | |||d$|||	|
|||d%¬&«       nt)        | |||d$|||	|
||«       t+        d'|d(œ«      S # t,        $ rQ}t)        | d)t/        |«      t/        |«      d*t/        |«      d«       t+        d+t/        |«      d(œ«      cY d }~S d }~ww xY w),NrÈ   r`  râ  rŒ  r�  ©rº   r¹   ©rÈ   r`  râ  zObject retrieved: Úcall1ÚwatchoÚplay_boxrh  ÚottplayÚ	tatabingeú/The activation has been completed successfully.rP   rä  r  r  rå  ræ  rã  rƒ   ú5Invalid platform ID or failed to fetch platform data.rg  rê  rë  rì  rí  r   éd   rî  rõ  )rê  rë  rì  rí  rî  ÚSuccessré  )rç  T©rð   r  ÚFailurerh   F)ro   r†   r‡   rˆ   r#   rÛ   rÿ   r!   rÿ  ró   rô   ÚprintÚfetch_watcho_dataÚfetch_playbox_dataÚfetch_hotstar_dataÚfetch_ottplay_dataÚfetch_tatabinge_dataÚcontentrm   Úfloatr  r   rs   rt   )ru   rä   rÈ   r`  râ  rŒ  rè   Úplatform_coderÒ  rä  rå  ræ  re   Úsubscriptionr
   Úresponse_contentÚresponse_jsonr  r~   s                      r@   Úott_activationr%  ·  s  € ðPCä�z‰z˜'Ÿ,™,Ó'ˆØ—H‘H˜[Ó)ˆ	Ø—h‘h˜}Ó-ˆØ—(‘(˜9Ó%ˆØ!ŸX™XÐ&:¸FÓCÐä)×1Ñ1×5Ñ5¸Ð5ÓEÐØ)×.Ñ.ˆð ˆØˆØˆØˆØˆ
ô '×.Ñ.×5Ñ5ØØ)Øð 6ó 
ˆô 	�‰Ð(¨¨Ð8Ô9äˆmÔäˆgŒÜˆmÔØ˜HÒ$Ü�'ŒNÜ-¨gÓ6‰MØ˜jÒ(Ü.¨wÓ7‰MØ˜iÒ'Ü.¨wÓ7‰MØ˜iÒ'Ü.¨wÓ7‰MØ˜kÒ)Ü0°Ó9‰Mà ˆMÜˆmÔØDˆÙØ,×4Ñ4ÐÜ ŸJ™JÐ'7×'>Ñ'>¸wÓ'GÓHˆMØ+Ð,=Ñ>ˆOØ$ YÑ/ˆHØ&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Ü"'¨¯©Ð1AÀ1Ó(EÓ"FÈÑ"LØ$(§H¡HÐ-?ÀÓ$Gñ Ðô ˜w¨	Ð3DÀgÈyÐZbÐdnÐpð  BHð  JRð  Tfð  hxð  NXö  Yä˜w¨	Ð3DÀgÈyÐZbÐdnÐpð  BHð  JRð  Tfô  gä¨¸ÑBÓCÐCøäò Cä˜7 IÐ/@À'È9ÔVYÐZ[ÓV\Ô^aÐbcÓ^dÐfiÔknÐopÓkqÐsuð  xJô  	Kä¨¼#¸a»&ÑAÓBÕBûð	Cús   ‚II! É!	J;É*AJ6Ê0J;Ê6J;c                  ót   — dj                  t        j                  t        j                  d¬«      «      } d| › �S )Nr¹   rr  )ÚkÚTRAN)r¡  rú   ÚchoicesÚstringÚdigits)Úrandom_parts    r@   rn   rn     s,   € Ø—'‘'œ&Ÿ.™.¬¯©¸!Ô<Ó=€KØ�+�ÐÐrB   zW8n$e2s5v8y/B?E(H+Kbc                 ód   — t        j                  | j                  «       «      j                  «       S ©N)ÚhashlibÚmd5rl   Údigest)Úpass_phrases    r@   Úget_keyr3    s#   € Ü�;‰;�{×)Ñ)Ó+Ó,×3Ñ3Ó5Ð5rB   c                 óH  — t        t        «      }t        j                  |t        j                  «      }t        | j                  «       d«      }|j                  |«      }t        j                  |«      j                  «       }|j                  dd«      j                  dd«      S )Nrt  ú+Ú-rU  r™  )r3  ÚPASS_PHRASEr   ÚnewÚMODE_ECBr   rl   ÚencryptrC  r   rm   r«  )Ú
plain_textr?   ÚcipherÚpadded_dataÚencrypted_bytesr‚   s         r@   rq   rq     s~   € Ü
”+Ó
€CÜ�X‰X�cœ4Ÿ=™=Ó)€Fä�j×'Ñ'Ó)¨1Ó-€KØ—n‘n [Ó1€Oô ×%Ñ% oÓ6×=Ñ=Ó?€NØ×!Ñ! # sÓ+×3Ñ3°C¸Ó=Ð=rB   c                 ó(  — t        t        «      }t        j                  |t        j                  «      }t        j                  | j                  dd«      j                  dd«      «      }|j                  |«      }t        |d«      j                  «       S )Nr6  r5  r™  rU  rt  )r3  r7  r   r8  r9  rC  rD  r«  Údecryptr   rm   )r‚   r?   r<  r>  Ú	decrypteds        r@   rr   rr   $  sr   € Ü
”+Ó
€CÜ�X‰X�cœ4Ÿ=™=Ó)€Fô ×&Ñ& ~×'=Ñ'=¸cÀ3Ó'G×'OÑ'OÐPSÐUXÓ'YÓZ€Oà—‘˜Ó/€IÜ�˜AÓ×%Ñ%Ó'Ð'rB   c                 óº  ‡— t        d«       t        j                  }t        j                  }t        j                  }t        |«       t        |«       t        |«       t        j                  | j                  «      }t        d«       t        |«       |j                  d«      Š|j                  d«      }|j                  d«      }t        j                  j                  |¬«      }|j                  }t        d«       t        ‰«       t        |«       t        |«       t        |«       t        |j                  dd«      «      d	k(  }	t        |	«       |	d
k(  r‰}
n1| j                  j                  dg «      }t        ˆfd„|D «       d «      }
|
st        ddid¬«      S t         j#                  d«       t         j#                  d|
«       |
st        ddid¬«      S |› d|› �}t%        |j'                  d«      «      j)                  d«      }dd|› �dœ}dd|
|t+        «       ddœ}t        j,                  |«      }t/        |«      }t1        |«      }t        |«       t        |«       d|i}t        d«       t        |«       	 t        j,                  |d¬«      j'                  d«      }t3        j4                  |||¬ «      }t1        |j6                  «      }t        j                  |«      }|j                  d!«      }|j                  d"«      }||t1        |j6                  «      ||d#œ}t        |d¬$«      S # t8        $ r"}t        dt        |«      id%¬«      cY d }~S d }~ww xY w)&NÚcall2rä   rÈ   r`  râ  r  Úmanual_flagr  r  r   rÀ   c              3   óŒ   •K  — | ];  }t        |j                  d «      «      t        ‰«      k(  r|j                  d«      –— Œ= y­w)rº   r­   N©rt   rˆ   ©rµ   rå   rÈ   s     €r@   r·   z$fetch_watcho_data.<locals>.<genexpr>|  s:   øè ø€ ò 6 4Ü�4—8‘8˜D“>Ó"¤c¨)£nÒ4ð �X‰X�g×ñ 6ùs   ƒAArK   úClient phone number not foundrƒ   rM   zclient_phone_number: zclient_phone_number: %srO   rP   rQ   rR   rS   Ú10984270rW   rX   )r[   r\   r]   r^   r_   r`   Ú	InputDataÚrequest_dataF)Úensure_ascii)rd   rä   Ú
ResultCodeÚ
ResultDesc©rã  rä  rå  ræ  r  ©Úsaferh   )r  r	   ÚWATCHO_API_URLrj   rk   ro   r†   r‡   rˆ   r    rÛ   rÿ   rt   r•   rÙ   r   ró   rô   r   rl   rm   rn   rp   rq   rr   r�   rW  r  rs   )ru   r¨   rv   rw   rä   r`  râ  Úplanrÿ   rD  rz   rÀ   rx   ry   rd   re   r{   r|   Údes_datarK  r©   Údec_responseÚresult_codeÚresult_descÚresultr~   rÈ   s                             @r@   r  r  ]  sö  ø€ Ü	ˆ'„NÜ×%Ñ%€GÜ×,Ñ,€HÜ×+Ñ+€HÜ	ˆ'„NÜ	ˆ(„OÜ	ˆ(„Oä�:‰:�g—l‘lÓ#€DÜ	ˆ&„MÜ	ˆ$„KØ—‘˜Ó%€IØ—(‘(˜=Ó)€KØ�h‰h�yÓ!€GÜ�?‰?×Ñ 'ÐÓ*€DØ�9‰9€DÜ	ˆ+ÔÜ	ˆ)ÔÜ	ˆ+ÔÜ	ˆ'„NÜ	ˆ$„Kä�d—h‘h˜}¨cÓ2Ó3°sÑ:€KÜ	ˆ+ÔØ�aÒØ'ÑàŸ™×+Ñ+¨O¸RÓ@ˆä"ó6¨=ô 6àó
Ðñ Ü˜WÐ&EÐFÈsÔSÐSä
‡K�KÐ'Ô(Ü
‡K�KÐ)Ð+>Ô?ÙÜ˜WÐ&EÐFÈsÔSÐSà�:˜Q˜x˜jÐ)€JÜ" :×#4Ñ#4°WÓ#=Ó>×EÑEÀgÓNÐð +Ø!Ð"4Ð!5Ð6ñ€Gð ØØ(ØÜ1Ó3Øñ€Jô0 —
‘
˜:Ó&€IÜ˜IÓ&€HÜ˜HÓ%€HÜ	ˆ(„OÜ	ˆ(„Oà�Xð€Lô 
ˆ.ÔÜ	ˆ,Ôð;Ü—J‘J˜|¸%Ô@×GÑGÈÓPˆ	Ü—=‘= °'À	ÔJˆô $ H§M¡MÓ2ˆä�z‰z˜,Ó'ˆð —h‘h˜|Ó,ˆØ—h‘h˜|Ó,ˆð
  Ø)Ü" 8§=¡=Ó1ØØ!ñ
ˆô ˜F¨Ô/Ð/øäò ;Ü˜W¤c¨!£fÐ-°cÔ:Õ:ûð;ús   É=B1L/ Ì/	MÌ8MÍMÍMc                 óÂ  — t         j                  }t         j                  }t         j                  }t	        j
                  | j                  «      }|j                  d«      }|j                  d«      }|j                  d«      }t        j                  j                  |¬«      }|j                  }	|ddœ}
t        |j                  dd«      «      d	k(  }d }|r*t        |j                  dd
«      «      j                  «       }nM| j                  j                  dg «      }d }|D ]*  }|j                  d«      |k(  sŒ|j                  dd «      } n t        |«       |st        ddid¬«      S |||	dœ}	 t!        j"                  |||
¬«      }|j	                  «       }|j                  d«      }|j                  d«      }|||j$                  dk(  r|j	                  «       n|j&                  ||dœ}|j$                  dk(  rt        |d¬«      S t        ||j$                  ¬«      S # t         j(                  j*                  $ r#}t        t        |«      |dœd¬«      cY d }~S d }~ww xY w)NrÈ   r`  râ  r  rQ   )z	x-api-keyrT   rD  r  r  r¹   rÀ   rº   r­   rK   rH  rƒ   rM   )r­   Ú
partnerKeyÚpackCode©ro   rd   Ú
statusCoder  r  rO  FrP  ©rK   ru   rh   )r	   ÚPLAYBOX_API_URLÚPLAYBOX_API_KEYÚPLAYBOX_PARTNET_KEYro   r†   r‡   rˆ   r    rÛ   rÿ   rt   rª  r•   r  r   r�   rW  r  r  rŸ   r¢   )ru   r¨   Úapi_keyÚpartner_keyrä   rÈ   r`  râ  rS  rÿ   rd   rD  rz   rÀ   rå   r©   rZ  r  r  rX  r~   s                        r@   r  r  Ð  s2  € ô ×&Ñ&€GÜ×&Ñ&€GÜ×.Ñ.€Kä�:‰:�g—l‘lÓ#€DØ—‘˜Ó%€IØ—(‘(˜=Ó)€KØ�h‰h�yÓ!€GÜ�?‰?×Ñ 'ÐÓ*€DØ�9‰9€Dð Ø*ñ€Gô �d—h‘h˜}¨cÓ2Ó3°sÑ:€KàÐáÜ! $§(¡(¨;¸Ó";Ó<×BÑBÓDÑð  Ÿ™×+Ñ+¨O¸RÓ@ˆð #ÐØ!ò 	ˆDØ�x‰x˜‹~ Ó*Ø&*§h¡h¨w¸Ó&=Ð#Ùð	ô 
Ð
ÔÙÜ˜WÐ&EÐFÈsÔSÐSð %Ø Øñ€DðLä—=‘= ¨t¸WÔEˆØ Ÿ™›ˆà#×'Ñ'¨Ó5ˆØ×#Ñ# IÓ.ˆð Ø*Ø)1×)=Ñ)=ÀÒ)D�h—m‘m”oÈ(Ï-É-ØØñ
ˆð ×Ñ 3Ò&Ü ¨UÔ3Ð3ä ¨x×/CÑ/CÔDÐDøä×Ñ×/Ñ/ò Lä¤c¨!£f¸Ñ>ÀsÔKÕKûðLús%   Å0BH ÈH ÈIÈ;IÉIÉIc                 ó	  ‡ — t        d«       t        j                  }t        j                  }t        j                  }t        j
                  }t        |t        «      r|d   }t        |«      j                  «       }t        j                  | j                  «      }|j                  d«      Š |j                  d«      }|j                  d«      }t        j                  j                  |¬«      }|j                   }	t        |j                  dd«      «      d	k(  }
d }d }d }d }|
rrt        |j                  dd
«      «      j                  «       }|j                  dd
«      }|j                  dd
«      }|j                  dd
«      }|j                  dd
«      }nw| j"                  j                  dg «      }t%        ˆ fd„|D «       d «      }|rD|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }t        d«       |st'        ddid¬«      S |j)                  dd
«      j)                  dd
«      }d}|||dœ}dd|› �dœ}t+        j                  |||¬«      }	 |j                  «       }t        d!|«       d"}	 |j                  d#i «      }|j                  d$«      sd"}n|j                  d%«      sd&}t        d!|«       i d,d-“d.|“d/|“d|“d|“d|“dd0“d1|“d2|	“d3d“d4d
“d5d
“d6d
“d7d
“d8d
“d9d
“d:|“}dd|› �dœ}	 t+        j6                  |||¬;«      }|j                  «       }|j                  d<«      }|j                  d=«      }|||j8                  d>k(  r|j                  «       n|j.                  ||d?œ}|j8                  d>k(  rt'        |d@¬A«      S t'        ||j8                  ¬«      S # t,        $ r d |j.                  i}Y �ŒZw xY w# t,        $ rZ}t0        j3                  d'|t        |«      «       t0        j5                  d(|«       t'        d)t        |«      |d*œd+¬«      cY d }~S d }~ww xY w# t*        j:                  j<                  $ r#}t'        t        |«      |dBœd+¬«      cY d }~S d }~ww xY w)CNÚsdfr   rÈ   r`  râ  r  rD  r  r  r¹   Ú
first_nameÚ	last_namer¬   r½   rÀ   c              3   ón   •K  — | ],  }t        |j                  d «      «      t        ‰«      k(  r|–— Œ. y­w)rº   NrF  rG  s     €r@   r·   z%fetch_ottplay_data.<locals>.<genexpr>E  s1   øè ø€ ò 6�dÜ�4—8‘8˜D“>Ó"¤c¨)£nÒ4ô ñ 6ùs   ƒ25r­   r¸   ÚfsdfrK   rH  rƒ   rM   r	  r6  z6https://bundlr.ottplay.com/api/v4.0/subscriber/details)Úlogin_idÚ	oper_coder­   rQ   zBearer rS   )rd   r  ÚrawzSubscriber Details Response:r   rä   Úplan_detailsÚplan_details_2rñ   u>   âš ï¸� Error while determining plan slot for subscriber %s: %szSubscriber raw response: %sz0Something went wrong while determining plan slot)rK   ÚdetailsÚraw_responserh   ÚmodeÚCREATE_ACTIVATErk  rj  ÚSkylinkÚaddressÚ	plan_codeÚuse_alt_lco_codeÚpartner_reference_idrÄ  Úservice_numberÚ
state_codeÚsubscription_typeÚsubscription_idÚ	plan_slotr\  rÿ   r  r  rO  FrP  r^  )r  r	   ÚOTTPLAY_API_URLÚOTTPLAY_OPER_CODEÚOTTPLAY_LOGIN_IDÚOTTPLAY_AUTH_TOKENrß   Útuplert   rª  ro   r†   r‡   rˆ   r    rÛ   rÿ   r•   rÙ   r   r«  r�   rs   r  ró   rK   ÚdebugrW  r  rŸ   r¢   )!ru   r¨   rk  rj  Ú
auth_tokenrä   r`  râ  rS  rÿ   rD  rz   r¬   rf  r½   rg  rÀ   Úclient_dataÚsub_urlr  rd   Úsub_responseÚsub_datar|  Údata_objr~   rY  r©   rZ  r  r  rX  rÈ   s!                                   @r@   r  r    sã  ø€ Ü	ˆ%„Lô ×&Ñ&€GÜ×*Ñ*€IÜ×(Ñ(€HÜ×,Ñ,€Jä�*œeÔ$Ø ‘]ˆ
ô �Z“×&Ñ&Ó(€Jä�:‰:�g—l‘lÓ#€DØ—‘˜Ó%€IØ—(‘(˜=Ó)€KØ�h‰h�yÓ!€GÜ�?‰?×Ñ 'ÐÓ*€DØ�9‰9€Dô �d—h‘h˜}¨cÓ2Ó3°sÑ:€KàÐØ€EØ€JØ€LáÜ! $§(¡(¨;¸Ó";Ó<×BÑBÓDÐØ—X‘X˜l¨BÓ/ˆ
Ø—H‘H˜[¨"Ó-ˆ	Ø—‘˜ "Ó%ˆØ—x‘x °Ó3‰àŸ™×+Ñ+¨O¸RÓ@ˆäó6˜mô 6àó
ˆñ Ø"-§/¡/°'Ó":ÐØ—O‘O GÓ,ˆEØ$Ÿ™¨Ó0ˆJØ&Ÿ?™?¨>Ó:ˆLä	ˆ&„MÙÜ˜WÐ&EÐFÈsÔSÐSØ×#Ñ# C¨Ó,×4Ñ4°S¸"Ó=€Jð
 G€GàØØ$ñ€Fð +Ø" : ,Ð/ñ€Gô
 —<‘< °ÀÔH€Lð.Ø×$Ñ$Ó&ˆô 
Ð
(¨(Ô3Ø€Iðà—<‘< ¨Ó+ˆà�|‰|˜NÔ+Ø‰IØ—‘Ð.Ô/ØˆIô 
Ð
(¨(Ô3ðØÐ!ðà�Iðð 	�Hðð 	Ð$ð	ð
 	�ðð 	�Zðð 	�Yðð 	�<ðð 	�Tðð 	˜Aðð 	 ðð 	�ðð 	˜"ðð 	�bðð 	˜Rðð  	˜2ð!ð" 	�Yð#€Gð. +Ø" : ,Ð/ñ€GðOä—=‘= ¨wÀÔHˆØ Ÿ™›ˆØ#×'Ñ'¨Ó/ˆØ×#Ñ# IÓ.ˆð Ø*Ø)1×)=Ñ)=ÀÒ)D�h—m‘m”oÈ(Ï-É-ØØñ
ˆð ×Ñ 3Ò&Ü ¨UÔ3Ð3ä ¨x×/CÑ/CÔDÐDøôQ ò .Ø˜<×,Ñ,Ð-‹ð.ûô ò Ü�‰ÐUÐWjÔloÐpqÓlrÔsÜ�‰Ð2°HÔ=ÜØGÜ˜1“vØ$ñð ô	õ 	ûðûô| ×Ñ×/Ñ/ò Oä¤c¨!£f¸ÑAÈ#ÔNÕNûðOúsV   É1O Ê9O ÌBQ Î*Q ÏOÏOÏ	QÏ(AP=Ð7QÐ=QÑRÑ"R Ñ:RÒ Rc                 ó   — dddœS ©Nr  zTataBinge specific data)Úplatformrä   r>   rQ  s    r@   r  r  ´  ó   € à#Ð-FÑGÐGrB   c                 ó   — dddœS rŠ  r>   rQ  s    r@   r  r  ¹  rŒ  rB   c                 óh  — | j                   dk7  rt        ddid¬«      S t        s$t        j	                  d«       t        ddid¬«      S 	 t        j                  | j                  «      }t        |j                  d	d
«      «      dz  }|j                  dd«      }|d
k  rt        ddid¬«      S t        j                  dt        j                  › �«       t        j                  j                  ||ddœ«      }t        j                  d|› �«       t        |«      S # t        j                   j"                  $ r:}t        j	                  dt%        |«      › �«       t        ddid¬«      cY d }~S d }~wt&        $ r:}t        j	                  dt%        |«      › �«       t        ddid¬«      cY d }~S d }~ww xY w)Nr�   rK   zMethod not allowedrL   rM   u#   â�Œ Razorpay client not initializedzRazorpay client not initializedrh   ry  r   r  Úcurrencyrõ  zInvalid amountrƒ   u   ðŸ”‘ API Key: r   )ry  r�  Úpayment_captureu   âœ… Razorpay Order Created: u   â�Œ Razorpay API Error: zRazorpay authentication failedi‘  u   â�Œ Unexpected Error: zInternal server error)ri   r   Úrazorpay_clientró   rK   ro   r†   r‡   rŸ  rˆ   rô   r	   râ   Úorderrÿ  ré  ÚerrorsÚBadRequestErrorrt   rs   )ru   rä   ry  r�  r’  r~   s         r@   Úcreate_razorpay_orderr•  ¿  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 ÄF1Ä6/E+Å%F1Å+F1Å7/F,Æ&F1Æ,F1c                 ó®  — | j                   dk(  r†t        j                  | j                  «      }|j	                  d«      }|j	                  d«      }|j	                  d«      }|||dœ}	 t
        j                  j                  |«       t        dddœ«      S t        d	did¬«      S # t        j                  j                  $ r t        d	d
id¬«      cY S w xY w)Nr�   rë  rê  rì  )rê  rë  rì  zPayment successfulzSubscription activated.)rN   r  rK   z&Payment signature verification failed.rƒ   rM   úInvalid request)ri   ro   r†   r‡   rˆ   r‘  ÚutilityÚverify_payment_signaturer   ré  r“  ÚSignatureVerificationError)ru   rä   rë  rê  rì  Úparams_dicts         r@   Úconfirm_paymentrœ  æ  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                 ó    — t        | dddi«      S )Nz"ott_subscription/transactions.htmlrË   T©r   rQ  s    r@   Útransactions_viewrŸ    s   € Ü�'Ð?À)ÈTÐARÓSÐSrB   c                 óŒ  — | j                   j                  dd«      }| j                   j                  dd«      }| j                   j                  dd«      }t        j                  j	                  «       }|r|j                  |¬«      }|dk(  rd|› �}|j                  |«      }|D �cg c]…  }|j                  |j                  j                  |j                  |j                  j                  d	«      |j                  |j                  |j                  |j                   j                  d
«      dœ‘Œ‡ }}t#        d|id¬«      S c c}w )NÚsearchr¹   Úsort_byÚactivation_dateÚ
sort_orderÚdesc)Úclient_id__icontainsr6  z%Y-%m-%d %H:%Mrp  )rÈ   r‹  râ  r£  rN   rŒ  rí  r�  ÚtransactionsFrP  )rJ   rˆ   r"   rÛ   r£  rÜ   rÝ   rÈ   r`  r¸   râ  r£  r  rN   rŒ  rí  r�  r   )ru   Úsearch_queryr¢  r¤  r§  Úträ   s          r@   Úget_transactionsrª  
  s+  € à—;‘;—?‘? 8¨RÓ0€LØ�k‰k�o‰o˜iÐ):Ó;€GØ—‘—‘ ¨vÓ6€Jô $×+Ñ+×/Ñ/Ó1€Lñ Ø#×*Ñ*ÀÐ*ÓMˆð �VÒØ�g�Y�-ˆØ×(Ñ(¨Ó1€Lð öð ð Ÿ™ØŸ™×*Ñ*Ø—y‘yØ ×0Ñ0×9Ñ9Ð:JÓKØ—h‘hØ"#×"6Ñ"6Ø×.Ñ.Ø ×0Ñ0×9Ñ9¸*ÓEó		
ð€Dð ô ˜¨Ð.°UÔ;Ð;ùòs   Â&B
Ec                 ó    — t        | dddi«      S )Nzott_subscription/dashboard.htmlrË   Trž  rQ  s    r@   Údashboard_viewr¬  /  s   € Ü�'Ð<À	È4Ð?PÓQÐQrB   c                 ó€   — t         j                  j                  d¬«      j                  d«      }t	        | dd|dœ«      S )NTrÃ   rÂ   zott_subscription/support.html)rË   Úsupport_videos)r&   rÛ   rÜ   rÝ   r   )ru   r®  s     r@   Úsupportr¯  2  s<   € Ü!×)Ñ)×0Ñ0¸4Ð0Ó@×IÑIÈ*ÓU€NÜ�'Ð:ÈÐ_mÑ<nÓoÐorB   c                 ó    — t        | dddi«      S )Nzott_subscription/contact.htmlrË   Trž  rQ  s    r@   rË   rË   6  s   € Ü�'Ð:¸iÈÐ=NÓOÐOrB   c           
      óh  — | j                   j                  dg «      }|r|d   j                  dd«      nd }|r t        j                  j	                  |¬«      nt        j                  j                  «       }|j	                  d¬«      j                  «       }|j	                  d¬«      j                  t        d«      ¬	«      d
   xs d}|j                  «       }|j                  d«      j                  t        d«      ¬«      }|j	                  d¬«      j                  d«      j                  t        d«      ¬	«      }|j                  ddi¬«      j                  d«      j                  t        d«      ¬«      j                  d«      }	t        |||t        |«      t        |«      t        |	«      dœ«      S )NrÀ   r   rº   r¹   rÇ   rg  )rŒ  rí  )Útotalr²  Úplatform_id__name)Úcountr/   zDATE(activation_date))Úselect)Útotal_revenueÚtotal_activationsÚtotal_transactionsÚactivations_by_platformÚrevenue_by_platformÚactivations_over_time)r•   rˆ   r"   rÛ   rÜ   r£  r´  Ú	aggregater   ÚvaluesÚannotater   ÚextrarÝ   r   rà   )
ru   rÀ   rÈ   Úbase_querysetr¸  r¶  r·  r¹  rº  r»  s
             r@   Úget_dashboard_datarÁ  ;  sŸ  € à—O‘O×'Ñ'¨¸Ó<€MÙ2?�˜aÑ ×$Ñ$ T¨2Ô.ÀT€Iñ MVÔ$×,Ñ,×3Ñ3¸iÐ3ÔHÔ[k×[sÑ[s×[wÑ[wÓ[y€Mð '×-Ñ-ÀÐ-ÓH×NÑNÓPÐð "×(Ñ(¸FÐ(ÓC×MÑMÔTWÐXhÓTiÐMÓjÐkrÑsÒxÐwx€Mð &×+Ñ+Ó-Ðð 	×ÑÐ0Ó1ß	‰œ˜d›ˆÓ	$ð ð 	×Ñ°ÐÓ7ß	‰Ð#Ó	$ß	‰œÐ,Ó-ˆÓ	.ð ð 	×Ñ FÐ,CÐ#DÐÓEß	‰�‹ß	‰œ˜d›ˆÓ	$ß	‰�&Ó	ð	 ô Ø&Ø.Ø0Ü#'Ð(?Ó#@Ü#Ð$7Ó8Ü!%Ð&;Ó!<ñó ð rB   c                 óæ	  — | j                   dk(  �r	 t        j                  | j                  «      }|j	                  d«      }|st        dddœd¬«      S | j                  j	                  dg «      }|d	   j	                  d
d«      }d }d }d}|D ]N  }|j	                  d«      |k(  sŒ|j	                  dd «      }|j	                  dd «      }|j	                  dd«      } n |st        dddœd¬«      S t        j                  j                  |t        j                  «       ¬«      j                  «       }	|	r?t        d|	j                  |	j                  r|	j                  j                  «       nd dœ«      S | j                  j	                  dd «      }
| j                  j	                  dd«      }| j                  j	                  d«      }| j                  j	                  d«      }| j                  j	                  d«      }| j                  j	                  d«      }|r	 t!        j"                  |«      }|r	 t!        j"                  |«      }|rt'        |t(        «      r	 t+        |«      }| j                  j	                  dd«      }	 t/        |«      }	 t1        |
«      }
|dkD  r|
|z  }
|j3                  «       }|j5                  dd «      j5                  d!d «      }|j7                  d «      d	   j3                  «       d"z   }t8        j                  j                  |
d|¬#«      j                  «       }|
�H	 t1        |
«      }
|j:                  }t        j                  j                  d|¬$«      j                  «       }nd }|r—||_        t?        «       |_         d|_!        ||_"        ||_#        ||_$        |_%        |_&        ||_'        d|_(        |jS                  «        |}||j                  d%|d&œ}tU        d'||¬(«       t        d|j                  d)œ«      S t        dd*dœd¬«      S t        dd-dœd.¬«      S # t$        $ r d }Y �Œw xY w# t$        $ r d }Y �Œw xY w# t$        t,        f$ r d }Y �Œw xY w# t$        $ r d}Y �Œìw xY w# t$        $ r d}
Y �Œòw xY w# t$        $ r d }Y �Œ'w xY w# t        jV                  $ r t        dd+dœd¬«      cY S tX        $ r#}t        dt)        |«      dœd,¬«      cY d }~S d }~ww xY w)/Nr�   rÈ   FzClient ID is required.r  rƒ   rM   rÀ   r   r¿   r¹   r°   rº   r­   r¬   r¸   zClient phone number not found.é”  )Úactivated_client_idÚexpired_date__gteT)rð   rÿ   Úexpired_dater‰  rx  ÚMonthlyr]  r†  r‡  rˆ  r   g        r|  r}  r~  r  )ry  r‚  rƒ  )Úactivated_client_id__isnullÚtypez+91 9944199445)Úcustomer_nameÚjiocodeÚsupport_numberÚcustomernumberÚJio_code_activation)rÝ  Úto_emailÚcontext_data)rð   rÿ   zNo available activation codes.zInvalid JSON data.rh   zInvalid request method.rL   )-ri   ro   r†   r‡   rˆ   r   r•   r(   rÛ   rÜ   r/   Útodayrá   rÿ   rÆ  r­  r   rú  rû  rß   rt   r+   r,   rŸ  r   rª  r«  rB  r   Újiohotstar_flagrÄ  r)   Úactivated_dateÚactivated_flagrz   rx  rˆ  r†  r‡  r]  Úcode_provide_countÚsaver.   ÚJSONDecodeErrorrs   )ru   rä   rÈ   rÀ   r¶  rz   Úclient_mailÚclient_namerå   Úexisting_codery  rx  r]  Úbilling_from_date_strÚbilling_to_date_strrˆ  r†  r‡  rÆ  rÇ  rÌ  Ú	code_typeÚ
code_entryrÏ  rÐ  r~   s                             r@   Úget_jio_hot_start_coderß  k  s(  € Ø‡~�~˜Óð\	Sä—:‘:˜gŸl™lÓ+ˆDØŸ™ Ó-ˆIñ Ü#°ÐBZÑ$[ÐdgÔhÐhð $ŸO™O×/Ñ/°ÀÓDˆMØ'¨Ñ*×.Ñ.Ð/FÈÓKˆKð #'ÐØˆKØ ˆKØ%ò �Ø—8‘8˜D“> YÓ.Ø*.¯(©(°7¸DÓ*AÐ'Ø"&§(¡(¨7°DÓ"9�KØ"&§(¡(¨6°6Ó":�KÙðñ 'Ü#°ÐBbÑ$cÐloÔpÐpô +×2Ñ2×9Ñ9ÈiÔlp×lvÑlvÓlxÐ9Óy×Ñó  BˆMÙÜ#°¸}×?QÑ?Qð  N[÷  Nhò  NhÐcp×c}Ñc}÷  dHñ  dHô  dJð  nrñ %ó ð à—_‘_×(Ñ(Ð)>ÀÓEˆFð $ŸO™O×/Ñ/°ÀÓKˆMØ Ÿ™×,Ñ,¨\Ó:ˆJØ$+§O¡O×$7Ñ$7Ð8KÓ$LÐ!Ø")§/¡/×"5Ñ"5Ð6GÓ"HÐØ$Ÿ_™_×0Ñ0Ð1AÓBˆNñ %ð-Ü(0×(>Ñ(>Ð?TÓ(UÐ%ñ #ð+Ü&.×&<Ñ&<Ð=PÓ&Q�Oñ
 ¤*¨^¼SÔ"Að*Ü%,¨^Ó%<�Nð $ŸO™O×/Ñ/°ÀÓCˆMð"Ü # MÓ 2�ð
Ü˜v›�ð
 ˜qÒ Ø -Ñ/�à%×+Ñ+Ó-ˆKØ$×,Ñ,¨V°VÓ<×DÑDÀVÈVÓTˆJà *× 0Ñ 0°Ó 8¸Ñ ;× AÑ AÓ CÀgÑ MÐä&×.Ñ.×5Ñ5ØØ(,Ø+ð 6ó ÷ ‰e‹gð	 ð Ð!ð&Ü" 6›]�Fð !-× <Ñ <�IÜ!/×!7Ñ!7×!>Ñ!>Ø48Ø&ð "?ó "÷ ‘e“gñ ð "�
áØ1:�
Ô.Ü,/«E�
Ô)Ø,0�
Ô)Ø1D�
Ô.Ø+8�
Ô(Ø,:�
Ô)Ø/@�
Ô,Ø-<�
Ô*Ø(2�
Ô%Ø01�
Ô-Ø—‘Ô!ð (�ð &1Ø)Ÿ™Ø&6Ø&9ñ	 �ô )Ø"7Ø%Ø!-õô $°¸j¿o¹oÑ$NÓOÐOä#°ÐBbÑ$cÐloÔpÐpô ¨Ð:SÑTÐ]`ÔaÐaøôa "ò -Ø(,Ó%ð-ûô "ò +Ø&*“Oð+ûô #Ô$4Ð5ò *Ø%)“Nð*ûô ò "Ø !“ð"ûô ò Ø“ðûôR "ò &Ø!%“Jð&ûôL ×#Ñ#ò 	aÜ¨EÐ>RÑ SÐ\_Ô`Ò`Üò 	Sä¨E¼cÀ!»fÑ EÈcÔRÕRûð	Sús  ’AR  ÁAR  Â%A
R  Ã0BR  Å2B&R  ÈP. È.R  È1Q  ÉR  ÉQ É$R  ÊQ* ÊQ< ÊBR  Ì,AR Í2BR  ÐR  Ð.P=Ð9R  Ð<P=Ð=R  Ñ QÑR  ÑQÑR  ÑQ'Ñ#R  Ñ&Q'Ñ'R  Ñ*Q9Ñ5R  Ñ8Q9Ñ9R  Ñ<RÒR  Ò
RÒR  ÒRÒR  ÒRÒR  Ò #S0ÓS0ÓS+Ó%S0Ó+S0c           
      óè  — | j                   dk(  �r	 | j                  j                  dg «      }|st        d«      S |d   j                  dd«      }|d   j                  dd«      }|d   j                  dd«      }|r|st	        d	d
dœ«      S t
        j                  j                  |||t        j                  «       ¬«      }d|› �}d|› d|› d|› d|j                  j                  d«      › d�	}|}dg}	t        j                  }
|
rt        ||||	«       t	        dddœ«      S t	        d	ddœ«      S # t        $ r9}t         j#                  dt%        |«      › �«       t	        d	ddœ«      cY d }~S d }~ww xY w)Nr�   rÀ   r®   r   rº   r¹   r­   r¬   FzSession data missingr  )rÈ   r£   r¬   Úrequested_atzNew IPTV Activation Request : u8   ðŸŽ¬ New IPTV Activation Request

ðŸ“Œ User Name      : u   
ðŸ“ž Phone Number   : u   
ðŸ“§ Email          : u   
ðŸ•’ Requested At   : z%Y-%m-%d %I:%M %pzF

Please process this request and share the IPTV code with the client.zinfo@skylink.net.inTzRWe have received your request!. We will be sharing the IPTV code with you shortly.zIPTV request failed: zKSomething went wrong while processing your request. Please try again later.r—  )ri   r•   rˆ   r   r   r%   rÛ   rÿ  r   r)   rá  r  r	   ÚMAIL_SEND_FLAGr   rs   ró   rK   rt   )ru   rÀ   rÈ   r£   r¬   Úiptvr  r  r  Úrecipient_listÚmail_send_flagr~   s               r@   Úrequest_iptvræ  	  sÈ  € Ø‡~�~˜Óð,	NØ#ŸO™O×/Ñ/°ÀÓDˆMÙ ÜÐ 8Ó9Ð9ð & aÑ(×,Ñ,¨T°2Ó6ˆIØ(¨Ñ+×/Ñ/°¸Ó<ˆLØ! !Ñ$×(Ñ(¨°"Ó5ˆEñ ¡LÜ#°ÐBXÑ$YÓZÐZô ×&Ñ&×-Ñ-Ø#Ø)ØÜ%Ÿ\™\›^ð	 .ó ˆDð 7°|°nÐEˆGð)Ø)2¨ð 4)Ø)5¨ð 7)Ø).¨ð 0)Ø)-×):Ñ):×)CÑ)CÐDWÓ)XÐ(Yð ZWð	Wð ð ˆJØ3Ð4ˆNô &×4Ñ4ˆNÙÜ˜' 7¨J¸ÔGä¨Dð  >Rñ  !Só  Tð  Tô  EÐ6GÑHÓIÐIøô	 ò 	NÜ�L‰LÐ0´°Q³°Ð9Ô:Ü¨Eð  ?Lñ  !Mó  Nõ  Nûð	Nús*   ’(D/ »AD/ ÂBD/ Ä/	E1Ä8.E,Å&E1Å,E1c                 ón  — 	 t        j                  | j                  «      }|j                  d«      }|st	        dddœd¬«      S 	 t        |d«      }t	        |«      S # t         j                  $ r t	        dddœd¬«      cY S w xY w# t        $ r&}t	        dd	t        |«      › �dœd
¬«      cY d }~S d }~ww xY w)NFzInvalid JSON.r  rƒ   rM   r­   zPhone number is required.r°   zError sending OTP: rh   )	ro   r†   r‡   r×  r   rˆ   r  rs   rt   )ru   rä   r­   rX  r~   s        r@   Úsend_iptv_otprè  A	  sÁ   € ðXÜ�z‰z˜'Ÿ,™,Ó'ˆð �H‰H�WÓ€EÙÜ¨Ð:UÑVÐ_bÔcÐcðgÜ& u¨fÓ5ˆô ˜ÓÐøô ×Ñò XÜ¨¸/ÑJÐSVÔWÒWðXûô ò gÜ¨Ð<OÔPSÐTUÓPVÈxÐ:XÑYÐbeÔfÕfûðgús/   ‚A ÁB Á#BÂBÂ	B4ÂB/Â)B4Â/B4c                 óÒ  — t        j                  | j                  «      }|j                  d«      }|j                  d«      }|r|st	        dddœ«      S |dk(  r|| j
                  d<   t	        dd	i«      S 	 t        j                  j                  |¬
«      }|j                  |k(  r|| j
                  d<   t	        dd	i«      S 	 t	        dddœ«      S # t        j                  $ r Y Œ#w xY w)Nr­   rÿ   FzVerification code is required.r  r(  Úverified_iptvrð   Tr'  zBThe verification code is invalid or has expired. Please try again.)
ro   r†   r‡   rˆ   r   r•   r$   rÛ   rÿ   r©  )ru   rä   r­   rÿ   Úrecords        r@   Úverify_iptv_otprì  W	  sæ   € Ü�:‰:�g—l‘lÓ#€DØ�H‰H�WÓ€EØ�8‰8�FÓ€Dá‘dÜ¨Ð:ZÑ[Ó\Ð\àˆxÒØ+0ˆ�‰˜Ñ(Ü˜Y¨Ð-Ó.Ð.ðÜ!×)Ñ)×-Ñ-¸5Ð-ÓAˆØ�;‰;˜$ÒØ/4ˆG�O‰O˜OÑ,Ü ¨DÐ 1Ó2Ð2ð ô  EÐ6zÑ{Ó|Ð|øô ×(Ñ(ò Ùðús   Á6A
C ÃC&Ã%C&c           
      óú  — t         j                  j                  d¬«      }t        d|j	                  «       › d�«       g }|D �]d  }|j
                  |j                  dddœ}|j                  }|j                  }t        | |«      }d }|D ]W  }	t        |	t        «      sŒ|	sŒt        |	d   t        «      sŒ+|	d   j                  d	i «      }
|
j                  d
«      |k(  sŒU|
} n |sd|d<   |j                  |«       Œº|j                  d«      }t        | ||d«      }|sd|d<   |j                  |«       Œò|d   }t        | |«      }|rt        |t        «      sd|d<   |j                  |«       �Œ-|d   }|j                  dg «      }|j                  dd«      }|j                  dd«      }	 t!        j"                  |d«      }t!        j"                  |d«      }|j$                  |j$                  z
  dz  |j&                  |j&                  z
  z   }|dv rd}n|dv rd}d}t)        |«      dkD  r!	 |d   j                  dd«      }t+        |«       ||_        ||_        ||_        ||_        ||_        |j;                  «        |j=                  d|||||dœ«       |j                  |«       �Œg t?        |j	                  «       |dœd ¬!«      S # t,        t.        f$ r d}Y Œ�w xY w# t,        $ r}d|› �|d<   Y d }~Œ_d }~ww xY w©"NT)Úinvoice_id__isnullzFound z records without invoice_id.Úskippedr¹   )Ú	record_idrÈ   rN   Úreasonr   r°   rº   zUser not matchedrò  r»   rg  zNo paid invoiceszInvalid invoice detailsrm  rn  ro  rp  rq  )rs  rt  rÉ   )ru  rv  rw  rz  r   ry  Úupdated)rN   r]  ry  rx  Úbilling_fromÚ
billing_tozDate error: )Útotal_recordsÚupdated_summaryFrP  ) r"   rÛ   rÜ   r  r´  rº   rÈ   r£   rª   rß   rà   Údictrˆ   rÚ   r[  r^  r   r¤  r¦  r§  rØ   r+   rû  r,   rx  rˆ  r†  r‡  r]  rÖ  rþ  r   ©ru   ÚrecordsÚupdated_recordsrë  Úrecord_datar£   rÈ   rÒ   Úmatched_userÚsectionræ   r»   Úpaid_invoicesr¿  rÀ  Úinvoicero  rô  rõ  r†  r‡  rx  ry  r~   s                           r@   Ú"assign_invoice_data_to_old_recordsr  o	  sE  € Ü×&Ñ&×-Ñ-ÀÐ-ÓF€GÜ	ˆF�7—=‘=“?Ð#Ð#?Ð
@ÔAà€Oàó T,ˆàŸ™Ø×)Ñ)ØØñ	
ˆð ×*Ñ*ˆØ×$Ñ$ˆ	Ü'¨°Ó>ˆ	àˆØ ò 	ˆGÜ˜'¤4Õ(ªW¼ÀGÈAÁJÔPTÕ9UØ# A™JŸN™N¨6°2Ó6�	Ø—=‘= Ó&¨)Ó3Ø#,�LÙð	ñ Ø$6ˆK˜Ñ!Ø×"Ñ" ;Ô/Øà!×%Ñ% lÓ3ˆ
Ü-¨g°yÀ*ÈfÓUˆáØ$6ˆK˜Ñ!Ø×"Ñ" ;Ô/Øà(¨Ñ+ÐÜ2°7Ð;KÓLˆá¤j°Ä$Ô&GØ$=ˆK˜Ñ!Ø×"Ñ" ;Ô/Ùà! !Ñ$ˆØ—+‘+Ð0°"Ó5ˆØ—{‘{Ð#6¸Ó;ˆØ—[‘[Ð!2°BÓ7ˆ
ð$	7Ü (× 1Ñ 1°,À
Ó KÐÜ&×/Ñ/°
¸JÓGˆOØ,×1Ñ1Ð4E×4JÑ4JÑJÈbÑPÐTc×TiÑTiÐl}÷  mDñ  mDñ  UDñ  EˆMà Ñ&Ø !‘Ø ,Ñ.Ø "�àˆFÜ�7‹|˜aÒð$Ø$ Q™ZŸ^™^¨H°fÓ=�FÜ˜F”Oð
 $1ˆFÔ Ø$*ˆFÔ!Ø'8ˆFÔ$Ø%4ˆFÔ"Ø 0ˆFÔØ�K‰KŒMà×ÑØ#Ø.Ø Ø!.Ø ,Ø(ñ ô ð 	×Ñ˜{Ö+ðiT,ôl Ø Ÿ™›Ø*ñð ôð øô3 #Ô$4Ð5ò $Ø#’Fð$ûô( ò 	7Ø&2°1°#Ð$6ˆK˜Ö!ûð	7úó>   Æ+A?KÈ+ KÉAKËKËKËKËKË	K:Ë(K5Ë5K:c           
      óú  — t         j                  j                  d¬«      }t        d|j	                  «       › d�«       g }|D �]d  }|j
                  |j                  dddœ}|j                  }|j                  }t        | |«      }d }|D ]W  }	t        |	t        «      sŒ|	sŒt        |	d   t        «      sŒ+|	d   j                  d	i «      }
|
j                  d
«      |k(  sŒU|
} n |sd|d<   |j                  |«       Œº|j                  d«      }t        | ||d«      }|sd|d<   |j                  |«       Œò|d   }t        | |«      }|rt        |t        «      sd|d<   |j                  |«       �Œ-|d   }|j                  dg «      }|j                  dd«      }|j                  dd«      }	 t!        j"                  |d«      }t!        j"                  |d«      }|j$                  |j$                  z
  dz  |j&                  |j&                  z
  z   }|dv rd}n|dv rd}d}t)        |«      dkD  r!	 |d   j                  dd«      }t+        |«       ||_        ||_        ||_        ||_        ||_        |j;                  «        |j=                  d|||||dœ«       |j                  |«       �Œg t?        |j	                  «       |dœd ¬!«      S # t,        t.        f$ r d}Y Œ�w xY w# t,        $ r}d|› �|d<   Y d }~Œ_d }~ww xY wrî  ) r(   rÛ   rÜ   r  r´  rº   rÄ  rz   rª   rß   rà   rø  rˆ   rÚ   r[  r^  r   r¤  r¦  r§  rØ   r+   rû  r,   rx  rˆ  r†  r‡  r]  rÖ  rþ  r   rù  s                           r@   Ú2assign_invoice_data_to_old_records_for_jio_hotstarr  Ò	  sE  € Ü×$Ñ$×+Ñ+¸tÐ+ÓD€GÜ	ˆF�7—=‘=“?Ð#Ð#?Ð
@ÔAà€Oàó T,ˆàŸ™Ø×3Ñ3ØØñ	
ˆð ×1Ñ1ˆØ×.Ñ.ˆ	Ü'¨°Ó>ˆ	àˆØ ò 	ˆGÜ˜'¤4Õ(ªW¼ÀGÈAÁJÔPTÕ9UØ# A™JŸN™N¨6°2Ó6�	Ø—=‘= Ó&¨)Ó3Ø#,�LÙð	ñ Ø$6ˆK˜Ñ!Ø×"Ñ" ;Ô/Øà!×%Ñ% lÓ3ˆ
Ü-¨g°yÀ*ÈfÓUˆáØ$6ˆK˜Ñ!Ø×"Ñ" ;Ô/Øà(¨Ñ+ÐÜ2°7Ð;KÓLˆá¤j°Ä$Ô&GØ$=ˆK˜Ñ!Ø×"Ñ" ;Ô/Ùà! !Ñ$ˆØ—+‘+Ð0°"Ó5ˆØ—{‘{Ð#6¸Ó;ˆØ—[‘[Ð!2°BÓ7ˆ
ð$	7Ü (× 1Ñ 1°,À
Ó KÐÜ&×/Ñ/°
¸JÓGˆOØ,×1Ñ1Ð4E×4JÑ4JÑJÈbÑPÐTc×TiÑTiÐl}÷  mDñ  mDñ  UDñ  EˆMà Ñ&Ø !‘Ø ,Ñ.Ø "�àˆFÜ�7‹|˜aÒð$Ø$ Q™ZŸ^™^¨H°fÓ=�FÜ˜F”Oð
 $1ˆFÔ Ø$*ˆFÔ!Ø'8ˆFÔ$Ø%4ˆFÔ"Ø 0ˆFÔØ�K‰KŒMà×ÑØ#Ø.Ø Ø!.Ø ,Ø(ñ ô ð 	×Ñ˜{Ö+ðiT,ôl Ø Ÿ™›Ø*ñð ôð øô3 #Ô$4Ð5ò $Ø#’Fð$ûô( ò 	7Ø&2°1°#Ð$6ˆK˜Ö!ûð	7úr  c                 óf  — | j                   dk(  rn	 t        j                  | j                  «      }|j	                  d«      }|st        dddœ«      S || j                  d<   d| j                  _        t        ddi«      S t        dd
dœ«      S # t        j                  $ r t        dd	dœ«      cY S w xY w)Nr�   r¤   FzState is requiredr  r‹   Trð   zInvalid JSONr—  )	ri   ro   r†   r‡   rˆ   r   r•   rõ   r×  )ru   rä   r¤   s      r@   Ústore_selected_stater  7
  s³   € Ø‡~�~˜Òð	OÜ—:‘:˜gŸl™lÓ+ˆDØ—H‘H˜WÓ%ˆEáÜ#°ÐBUÑ$VÓWÐWð 16ˆG�O‰OÐ,Ñ-ð (,ˆG�O‰OÔ$ä ¨DÐ 1Ó2Ð2ô  EÐ6GÑHÓIÐIøô ×#Ñ#ò 	OÜ¨E¸nÑ MÓNÒNð	Oús   ‘?B Á,B Â!B0Â/B0c                 ó   — t        | d«      S )Nz!ott_subscription/terms/terms.htmlrž  rQ  s    r@   Útermsr  Q
  s   € Ü�'Ð>Ó?Ð?rB   c                 ó   — t        | di «      S )Nz"ott_subscription/terms/refund.htmlrž  rQ  s    r@   Úrefundr
  T
  s   € Ü
�Ð>ð Aó ð rB   c                 ó   — t        | di «      S )Nz&ott_subscription/terms/contact_us.htmlrž  rQ  s    r@   Ú
contact_usr  X
  s   € Ü
�ÐBð Eó ð rB   c                 ó   — t        | di «      S )Nz#ott_subscription/terms/privacy.htmlrž  rQ  s    r@   Úprivacyr  \
  s   € Ü
�Ð?ð Bó ð rB   c                 ó’  — | j                   j                  d«      }| j                   j                  d«      }| j                   j                  d«      }| j                   j                  d«      }t        j                  }t        j                  dk(  rdnd}t
        j                  j                  d¬	«      }t        | d
|||||||dœ«      S )NrÈ   r`  râ  ry  r9   ÚsandboxÚ
productionT)rÁ   z,ott_subscription/select_payment_gateway.html)rÈ   r`  râ  ry  rÎ   Úcf_modeÚactive_gateways)	rJ   rˆ   r	   râ   ÚCASHFREE_ENVr7   rÛ   rÜ   r   )ru   rÈ   r`  râ  ry  rÎ   r  r  s           r@   Úpayment_popupr  c
  s¯   € Ø—‘—‘ Ó,€IØ—+‘+—/‘/ -Ó0€KØ�k‰k�o‰o˜iÓ(€GØ�[‰[�_‰_˜XÓ&€Fä×+Ñ+€Lä#×0Ñ0°IÒ=‰iÀ<€Gä,×4Ñ4×;Ñ;À4Ð;ÓH€Oä�'ÐIØØ"ØØØ$ØØ*ñLó ð rB   c                 óð  — t        j                  | j                  «      }|d   }|d   }|d   }|d   }| j                  j	                  dd«      }| j                  j	                  dd«      }t
        j                  j                  |||d	t        j                  «       j                  › �|d
d||¬«	      }t        |j                  t        |j                  «      d
d|› �||dœd| j                  d|j                  › �«      i¬«      }	t         j#                  t$        j&                  |	d d «      }
|
j(                  j*                  |_        |j-                  «        t/        |j*                  |j                  dœ«      S )NrÈ   r`  râ  ry  r¬   ztest@test.comr£   Ú
9999999999Úskyrõ  ÚPending)	rÈ   Úplatform_id_idrâ  rÂ   ry  r�  Úpayment_statusÚcustomer_emailÚcustomer_phoneÚOTT_)Úcustomer_idr  r  Ú
return_urlz,/ott_subscription/cashfree-success/?orderId=)rÂ   ró  rô  Úcustomer_detailsÚ
order_meta)rò  rÂ   )ro   r†   r‡   r•   rˆ   r5   rÛ   rÿ  ÚuuidÚuuid4Úhexr4   rÂ   r   ry  Úbuild_absolute_uriÚcashfree_clientÚPGCreateOrderr	   ÚCASHFREE_API_VERSIONrä   rò  rÖ  r   )ru   rä   rÈ   r`  râ  ry  r¬   r£   ÚpaymentÚcreate_order_requestr©   s              r@   Úcreate_cashfree_paymentr,  y
  s{  € ä�:‰:�g—l‘lÓ#€DØ�[Ñ!€IØ�}Ñ%€KØ�9‰o€GØ�(‰^€Fð �O‰O×Ñ ¨Ó9€EØ—?‘?×&Ñ& ~°|ÓD€Lô ×%Ñ%×,Ñ,ØØ"ØØœŸ
™
›×(Ñ(Ð)Ð*ØØØ àØ#ð -ó €Gô .Ø×!Ñ!Ü˜7Ÿ>™>Ó*Øà! ) Ð-Ø#Ø*ñ
ð ˜'×4Ñ4Ø>¸w×?OÑ?OÐ>PÐQóð
ôÐô$ ×,Ñ,Ü×%Ñ%ØØØó	€Hð "*§¡×!AÑ!A€GÔØ‡L�L„NäØ%×8Ñ8Ø×$Ñ$ñó ð rB   )r   c                 ó(  — t        | t        «      r-| j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}S t        | t        «      r| D �cg c]  }t        |«      ‘Œ c}S t        | t
        «      r| j                  «       S | S c c}}w c c}w r.  )rß   rø  ÚitemsÚserialize_for_jsonrà   r   r­  )Úobjr'  ÚvÚis       r@   r/  r/  ¹
  sw   € Ü�#”tÔØ58·Y±Y³[×A©T¨Q°�Ô% aÓ(Ñ(ÓAÐAÜ	�CœÔ	Ø/2Ö3¨!Ô" 1Õ%Ò3Ð3Ü	�CœÔ	"Ø�}‰}‹Ðàˆ
ùó Bùâ3s   ¤B	ÁBc                 óP  — |j                  d«      }|j                  d«      }|j                  d«      }|j                  dd«      }t        j                  j                  |¬«      }|j                  }d }d }	d }
d}|}t        j                  j                  |||¬«      }t        d	«       t        | «       |d
k(  rt        | «      }nC|dk(  rt        | «      }n2|dk(  rt        | «      }n!|dk(  rt        | «      }n|dk(  rt        | «      }d}|r„t        j                  |j                  j                  d«      «      }|j                  d«      }	|j                  d«      }|j                  d«      }
|j                  d«      }|j                  d«      }nd}	d}
|dk(  rxi }|j                  d«      |j                  d«      |j                  d«      |j                  d«      |j                  dd«      dœ}t!        | |||d |||	|
||||dk(  rd!nd |¬"«       |S t!        | |||d |||	|
||«       |S )#NrÈ   r`  râ  rŒ  r�  r  r¹   r  ru   r  r  rh  r  r  r  rP   rä  r  rå  ræ  rã  rƒ   r  rg  rÂ   rñ  rò  rí  rô  rõ  )rÂ   rñ  rò  ró  rô  r  rð  )rç  r  )rˆ   r#   rÛ   rÿ   r!   rÿ  r  r  r  r  r  r  ro   r†   r  rm   r  )ru   rä   rÈ   r`  râ  rŒ  rè   r!  rÒ  rä  rå  ræ  re   r"  r
   r$  r  r  s                     r@   Ú_ott_activation_corer4  Æ
  sY  € Ø—‘˜Ó%€IØ—(‘(˜=Ó)€KØ�h‰h�yÓ!€GØŸ™Ð"6¸Ó?Ðä%×-Ñ-×1Ñ1°[Ð1ÓAÐØ%×*Ñ*€Mà€MØ€OØ€FØ€HØ€Jä"×*Ñ*×1Ñ1ØØ%Øð 2ó €Lô 
ˆ)ÔÜ	ˆ'„NØ˜Ò Ü)¨'Ó2‰Ø	˜*Ò	$Ü*¨7Ó3‰Ø	˜)Ò	#Ü*¨7Ó3‰Ø	˜)Ò	#Ü*¨7Ó3‰Ø	˜+Ò	%Ü,¨WÓ5ˆà@€HáÜŸ
™
 =×#8Ñ#8×#?Ñ#?ÀÓ#HÓIˆØ'×+Ñ+Ð,=Ó>ˆØ ×$Ñ$ YÓ/ˆØ×"Ñ" 8Ó,ˆØ ×$Ñ$ ZÓ0ˆØ"×&Ñ& wÓ/‰
àˆØHˆà˜VÒ#ØÐà ŸH™H ZÓ0Ø!%§¡¨/Ó!:Ø&*§h¡hÐ/CÓ&DØ $§¡Ð)9Ó :Ø"&§(¡(Ð+;¸UÓ"Cñˆô 	ØØØØØØØØØØØØØ*<ÀÒ*F™JÈDØ%õ	
ð> €Oô 	ØØØØØØØØØØØô	
ð €OrB   c                 ód  — | j                   j                  d«      xs | j                  j                  d«      }|st        dddœd¬«      S t        j
                  j                  |¬«      j                  «       }|st        dddœd	¬«      S t        j                  t        j                  |j                  «      }|j                  }t        d
|«       t        |dd«      }t        |dd«      }t        |dd«      }t        |dd«      }|dk(  rdnd|_        ||_        ||_        ||_        ||_        |dk(  rt+        j,                  «       nd|_        	  t        |dd„ «      «       }	t1        |	«      |_        |j7                  «        |dk(  rƒ G d„ d«      }
|j8                  |j:                  j<                  |j>                  dtA        |jB                  xs d«      |jD                  xs d|||t1        	«      dœ
} |
|| ¬«      }tG        ||«       tI        | d d!|i«      S # t4        $ r ddi|_        Y Œ»w xY w)"zn
    Cashfree redirect after payment.
    Verifies order with Cashfree and logs payment + OTT activation.
    ÚorderIdFzMissing orderIdr  rƒ   rM   )rÂ   zInvalid orderrÃ  zCashfree Data:Úorder_statusÚFAILEDrÂ   r¹   Úreference_idrò  ÚPAIDÚPaidÚFailedNÚto_dictc                  ó   — i S r.  r>   r>   rB   r@   ú<lambda>z"cashfree_success.<locals>.<lambda>E  s   € °B€ rB   rK   z%Failed to serialize Cashfree responsec                   ó   — e Zd Zdd„Zy)ú&cashfree_success.<locals>.DummyRequestNc                 óÊ   — t        j                  |«      j                  d«      | _        |rt	        |di «      ni | _        t	        |dd «      | _        t	        |di «      | _        y )NrP   ÚMETArî   r•   )ro   rp   rl   r‡   ÚgetattrrC  rî   r•   )ÚselfÚ	data_dictÚoriginal_requests      r@   Ú__init__z/cashfree_success.<locals>.DummyRequest.__init__Q  sU   € Ü ŸJ™J yÓ1×8Ñ8¸ÓA�”	ÙEUœGÐ$4°f¸bÔAÐ[]�”	Ü#Ð$4°f¸dÓC�”	Ü&Ð'7¸ÀBÓG�•rB   r.  )Ú__name__Ú
__module__Ú__qualname__rH  r>   rB   r@   ÚDummyRequestrA  P  s   „ ôHrB   rL  rg  r   rõ  )
rÈ   r`  râ  rŒ  rí  rî  rÂ   rñ  rò  rp  )rG  z%ott_subscription/payment_success.htmlr*  )%rJ   rˆ   r�   r   r5   rÛ   rÜ   rá   r'  ÚPGFetchOrderr	   r)  rÂ   rä   r  rD  r  Ú
payment_idr÷  rø  Úcashfree_order_statusr   r)   Úpaid_atr/  rù  rs   rÖ  rÈ   r`  rº   râ  r   ry  r�  r4  r   )ru   rÂ   r*  r©   rä   r7  rö  Úcashfree_payment_refrò  Úraw_datarL  Úott_request_dataÚ	dummy_reqs                r@   Úcashfree_successrU    s;  € ð �{‰{�‰˜yÓ)ÒH¨W¯\©\×-=Ñ-=¸iÓ-H€HÙÜ¨Ð:KÑLÐUXÔYÐYä×%Ñ%×,Ñ,°hÐ,Ó?×EÑEÓG€GÙÜ¨¸/ÑJÐSVÔWÐWô ×+Ñ+Ü×%Ñ%Ø×Ñó€Hð �=‰=€DÜ	Ð
˜DÔ!ô ˜4 °Ó:€LÜ  j°"Ó5ÐÜ" 4¨¸Ó<ÐÜ  Ð';¸RÓ@Ðð (4°vÒ'=™VÀ8€GÔØ*€GÔØ"6€GÔØ*<€GÔ'Ø$0€GÔ!Ø(4¸Ò(>”h—l‘l”nÀD€G„Oð[Ø7”7˜4 ©JÓ7Ó9ˆÜ(:¸8Ó(DˆÔ%ð ‡L�L„Nð �vÒ÷	Hñ 	Hð !×*Ñ*Ø"×.Ñ.×1Ñ1Ø—‘Ø"(Ü# G§N¡NÒ$7°aÓ8Ø '× 0Ñ 0Ò 9°EØ)Ø1Ø"4Ü.¨xÓ8ñ
Ðñ !Ð!1ÀGÔLˆ	ô 	ØØô	
ô ØØ/Ø	�GÐóð øôM ò [Ø)0Ð2YÐ(ZˆÖ%ð[ús   Å#H ÈH/È.H/)r¹   r�  NNN)§rC  r   r/  ro   Úloggingrú   r2  r*  r   r   ÚCrypto.Cipherr   ÚCrypto.Util.Paddingr   r   Údjango.confr	   Údjango.contribr
   Údjango.contrib.authr   Údjango.core.exceptionsr   Údjango.core.mailr   Údjango.core.validatorsr   Údjango.db.modelsr   r   Údjango.forms.modelsr   Údjango.httpr   Údjango.shortcutsr   r   Údjango.template.loaderr   Údjango.urlsr   Údjango.utilsr   Údjango.utils.timezoner   Údjango.views.decorators.csrfr   Útwilio.restr   ré  r�   Úsetting.modelsr   Úurllib.parser   Úrequests.authr   Úmodelsr   r    r!   r"   r#   r$   r%   r&   r'   Úurllib3r(   r)   r*   Údecimalr+   r,   r-   Úemail_template.utilsr.   r/   Úpricing_plan.modelsr0   rE  Úcashfree_pg.api_clientr1   r2   Údjango.contrib.auth.decoratorsr3   Ú'cashfree_pg.models.create_order_requestr4   r#  r5   r6   r7   ÚCrypto.Hashr8   r  r9   Ú
PRODUCTIONÚCASHFREE_APP_IDÚCASHFREE_SECRET_KEYr'  Údisable_warningsrŸ   ÚInsecureRequestWarningÚ	getLoggerrI  ró   rA   râ   ÚRAZORPAY_SECRETr  r  r  r  r‘  rK   r   r‰   rª   rì   rø   rü   r  r  r<  r?  rO  rR  r[  r^  rÞ  r  r¯  r%  rn   r7  r3  rq   rr   r  r  r  r  r  r•  rœ  rŸ  rª  r¬  r¯  rË   rÁ  rß  ræ  rè  rì  r  r  r  r  r
  r  r  r  r,  r/  r4  rU  r>   rB   r@   ú<module>r|     si  ðÛ Ý Û Û Û Û Û 	Û ß (Ý ß *Ý  Ý #Ý &Ý 2Ý &Ý 1ß 'Ý -Ý $ß -Ý 3Ý Ý !Ý ,Ý 4Ý Û Û Ý &Ý "Ý '÷
÷ 
õ 
ó Ý "Ý %Ý ß <Ñ <Ý 9Ý Ý $ã Û ß -Ý #Ý $Û õ ,Ý .Ý 9Ý FÝ 4Û Ý #ß 2Ý  Ý 1ó å ð ×Ñ 	Ò)ð ×Òà	×	Ñ	ð ñ Ø×&Ñ&Ø×.Ñ.Øô€ð €× Ñ ˜×+Ñ+×BÑBÔ Cà	ˆ×	Ñ	˜8Ó	$€òCð* ,€Ø,€ð 9€à'€Ø€	Ø#€ñ ‘Ø%�h—o‘o¨O¸_Ð+MÔN�Oà€OØ
‡L�LÐMÔNð ñ.?ó ð.?ð` àñ;ó ó ð;ò00TònfòT),ò^/òò$3òH[ò|[ò~8ò@.òBTòJ0TòfL0ðr ØØØØóu0ònð* ñQCó ðQCòh ð
 %€ò6ò	>ò(òrp;òfJLòZUOònHò
Hð ñ#Ló ð#LðL ñBó ðBò>Tò <òJRòpòPò
-ò``bòF0Jòf ò,}ò0_òF_òJJò4@òòòòð, ñ;ó ð;õz òòWðp ñRó ñRrB   