
    ~öh                     ,   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 d dlmZ d d	lmZ d d
lZd dlmZ ddlT d dlmZmZmZ d dlmZmZ d dlmZ d d
lZd dlmZ d dlmZ d d
l Z d dl!m"Z" d dl m#Z# d dl$m%Z% d dl&T d dl'm(Z( d dl)m*Z*m+Z+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 e
j3        Z4e
j5        Z6e
j7        Z8e
j9        Z:e
j;        Z<e
j=        Z> e.e4e6          Z? G d de          Z@d dl&T  G d de          ZAd d
lBZBd d
lCZCd d
lDZDd d
lEZEd ZF G d  d!e          ZG G d" d#e          ZH G d$ d%e          ZI G d& d'e          ZJ G d( d)e          ZK G d* d+e          ZL G d, d-e          ZM G d. d/e          ZN G d0 d1e          ZO G d2 d3e          ZP G d4 d5e          ZQ G d6 d7e          ZR G d8 d9e          ZS G d: d;e          ZT G d< d=e          ZU G d> d?e          ZV G d@ dAe          ZWd d
lXZX G dB dCe          ZY G dD dEe          ZZ G dF dGe          Z[ G dH dIe          Z\ G dJ dKe          Z]d d
l^Z^ G dL dMe          Z_ G dN dOe          Z` G dP dQe          Za G dR dSe          Zb G dT dUe          Zcd
S )V    )render)APIView)Responsestatus)datetime)settings)RefreshToken)TokenBackend)get_authorization_headerN)
exceptions   )*)	PaginatorPageNotAnInteger	EmptyPage)QAvg)date)render_to_string)HttpResponse)JsonResponse)redirect)authenticated)EmailMultiAlternatives)	SyncGrant	ChatGrant
VideoGrant)Client)AccessToken)	timesincec                       e Zd Zd ZdS )LawyerChangePasswordc                    	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |d          	                                }|st          ddit          j
                  S |j                            d          }|st          ddit          j
                  S |j                            d          }|st          dd	it          j
                  S |j                            d
          }|st          ddit          j
                  S |j                            |          dk    r(t          t          j
        ddt          j
                  S |j                            |          dk    r(t          t          j
        ddt          j
                  S |j                            |           |j                                         t          t          j        ddd          S # t          $ rN}t%          |           t          t          j        t          |          dt          j                  cY d }~S d }~ww xY w)Nmessager   lawyeruserloginUserTypeno user foundold_passwordzOld password is requiredpasswordzPassword is requiredconfirm_passwordzConfirm password is requiredFz$Does not match with the old passwordstatus_codestatus_messageTz0You cannot set new password same as old passwordzSuccessfully Password Changed r/   r0   data)r   	Exceptionr   strr   HTTP_401_UNAUTHORIZEDCustomerobjectsfilterfirstHTTP_400_BAD_REQUESTr3   getr(   check_passwordset_passwordsaveHTTP_200_OKprintHTTP_500_INTERNAL_SERVER_ERROR)selfrequestuidecustomer_objr+   r,   r-   s           1/var/www/html/Sam_Eipo/Eipo/lawyer_panel/views.pypostzLawyerChangePassword.post/   s   	XX#G,, X X X3q66 2&:VWWWWWWWWWX!)00c0QQWWYYL `? ;6C^____"<++N;;L k+E FfNijjjj|''
33H g+A B&Jeffff&|//0BCC# o+I JRXRmnnnn //==FFv/J  ]C  !D  !D  LR  Lg  h  h  h  h //0@AATII#63N  aS  %T  %T  \b  \w  x  x  x  x**+;<<<""$$$6+=Onvxyyzzz 	X 	X 	X!HHH6+Pbefgbhbhiiqw  rW  X  X  X  X  X  X  X  X  X	Xsl    H- 
A)AAH- AAH- &8H- 8H- 8H- AH- AH- AH- -
J7AJ :J JN__name__
__module____qualname__rI        rH   r#   r#   .   s(        X X X X XrO   r#   c                       e Zd Zd ZdS )LawyeremailVerifyOtpc                    	 |j         }|                    d          }|                    d          }t          j                            |                                          }t          j                            |                                          }|st          ddit          j	                  S |j
        |k    rt          ddit          j	                  S d	|_        |                                 t          j        |          }|j        |j        |j        |j        |j        |j
        |j        |j        |j        |j        |j        d
}t1          |          t1          |j                  |d}	t          d|	d          S # t4          $ r4}
t          dt1          |
          it          j                  cY d }
~
S d }
~
ww xY w)NemailotprS   )usernamer%   zotp is requiredr   zInvalid OtpT)
first_name	last_namecompanyprofile_imagerS   rT   email_verifiedisProfileCompletedphoneVerifiedcustomer_idhas_subscription)refreshaccessr(   zOTP Verifiedr%   r3   )r3   r<   r7   r8   r9   r:   Userr   r   r;   rT   emailVerifiedr?   r
   for_user	firstNamelastNameagency_companyprofileImagerS   r\   r]   idr_   r5   access_tokenr4   rB   )rC   rD   r3   rS   rT   customerObjuserObjrefresh_tokenuserDataallDatarF   s              rH   rI   zLawyeremailVerifyOtp.postO   s   )	]DHHW%%E((5//C (//e/<<BBDDKl))5)99??AAG b+< =VE`aaaa#%%= 9A\]]]](,K%(1'::M "-!6 + 4)8$/$<'-%/%0%>)4)G$/$="-.'2'C H"  #=11!-"<==$ G
 ~WEEFFF 	] 	] 	]Ys1vv.f6[\\\\\\\\\	]s+   B3F	 6'F	 B*F	 	
G)G<GGNrJ   rN   rO   rH   rQ   rQ   N   s(        *] *] *] *] *]rO   rQ   c                      d} d}t          d          D ]3}|| t          j        t          j                    dz                     z  }4|S )zFunction for gernate otp
0123456789r1      
   )rangemathfloorrandom)digitsOTPis      rH   
GernateOTPr|   ~   sL    F
C1XX 8 8vdj2!56677JrO   c                       e Zd Zd ZdS )LawyerregisterResendOtpc                    	 |j         }|                    d          }t          j                            |                                          }t                      }||_        |                                 d|z   }i }|}d}	t          |	t          j        |g|          }|                    d           t          d|d	          S # t          $ r4}
t          d
t          |
          it           j                  cY d }
~
S d }
~
ww xY w)NrS   rU   z9
OTP has been sent on you registered email successfully:
zVerify OTP:)subject
from_emailtobodyF)fail_silentlyzThank you for registering with us! To complete your sign-up process and verify your account, please use the One-Time Password (OTP) below:

Your OTP is:)r%   rT   r%   r   )r3   r<   r7   r8   r9   r:   r|   rT   r?   r   r	   EMAIL_HOST_USERsendr   r4   r5   r   rB   )rC   rD   r3   rS   rl   rz   r%   context	to_emailsr   rF   s              rH   rI   zLawyerregisterResendOtp.post   s4   	]DHHW%%E (//e/<<BBDDKCKOSVYYGGI#G,WIagpfqw~GLLuL---  (D  KN  O  O  P  P  P 	] 	] 	]Ys1vv.f6[\\\\\\\\\	]s   CC
 

D)D=DDNrJ   rN   rO   rH   r~   r~      s(        ] ] ] ] ]rO   r~   c                       e Zd Zd ZdS )UserContractRequestc                     	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |d          	                                }|st          ddit          j
                  S t          j                            |j                  }g }|D ]}|j        |j        j        |j        j        j        dz   |j        j        j        z   |j        j        j        |j        j        j        |j        j        |j        j        |j        j        dz   |j        j        z   |j        j        |j        d
}|                    |           t          t          j        d	||j        d
          S # t          $ rN}t3          |           t          t          j        t          |          dt          j                  cY d }~S d }~ww xY w)Nr%   r   r&   r'   r*   r&    )
rj   
inquire_idproperty_project_customer_nameproperty_project_customer_email&property_project_customer_phone_numbercustomer_emailcustomer_phone_numbercustomer_namecompany_name
req_statussuccessr/   r0   r3   r_   r.   )r   r4   r   r5   r   r6   r7   r8   r9   r:   r;   LawyerContractDealsrj   inquiry
customerIdrf   rg   rS   phoneNumbercustomerr   r   appendr@   r_   rA   rB   )	rC   rD   rE   rF   rG   contract_objall_Datacontractall_datas	            rH   r<   zUserContractRequest.get   sV   	XX#G,, X X X3q66 2&:VWWWWWWWWWX!)00c0QQWWYYL `? ;6C^____.6==lo=VVLH( * *!!)!1!45=5E5P5Z[^5^_g_o_z  `D  6D6>6F6Q6W=E=M=X=d%-%6%<,4,=,I$,$5$?$CHDUD^$^#+#3#@!)!4  ))))6+=y`h  }I  }Z  [  [  \  \  \ 	X 	X 	X!HHH6+Pbefgbhbhiiqw  rW  X  X  X  X  X  X  X  X  X	XsL    F% 
A)AAF% AAF% &C>F% %
G=/AG82G=8G=NrK   rL   rM   r<   rN   rO   rH   r   r      s(        X X X X XrO   r   c                       e Zd Zd ZdS )UserContractDetailsc                    	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |d          	                                }|st          ddit          j
                  S |j                            d          }|st          ddit          j
                  S t          j                            |          	                                }|st          dd	it          j
                  S |r|j        r|j        nd |r|j        r|j        j        r|j        j        nd |rX|j        rQ|j        j        rE|j        j        j        r4|j        j        j        j        pd
dz   |j        j        j        j        pd
z   nd |rP|j        rI|j        j        r=|j        j        j        r,|j        j        j        j        r|j        j        j        j        nd |rP|j        rI|j        j        r=|j        j        j        r,|j        j        j        j        r|j        j        j        j        nd |r|j        r|j        j        r|j        j        nd |r|j        r|j        j        r|j        j        nd |r|j        r|j        j        r|j        j        nd |r|j        r|j        j        r|j        j        nd |r|j        r|j        j        r|j        j        nd d
}t          t          j        d|d          S # t          $ rN}t7          |           t          t          j        t          |          dt          j                  cY d }~S d }~ww xY w)Nr%   r   r&   r'   r*   contract_idzcontract id is requiredrj   zNo contract foundr1   r   )
rj   r   r   r   r   r   r   r   r%   contract_statusr   r2   r.   )r   r4   r   r5   r   r6   r7   r8   r9   r:   r;   query_paramsr<   r   rj   r   property_projectr   rf   rg   rS   r   	telephoner   r%   r   r@   rA   rB   )rC   rD   rE   rF   rG   r   r   r   s           rH   r<   zUserContractDetails.get   s:   #	XX#G,, X X X3q66 2&:VWWWWWWWWWX!)00c0QQWWYYL `? ;6C^____!.22=AAK j+D EVMhiiii.6===MMSSUUL d+> ?vGbcccc *6S,/Sloot9E  E,J^  Ecocwcz  El255  AE "3d '3&:3d @L?S?d3d jvi}  jO  jZ3d!):EOUSUY\\!):ENTRTV V `dmy  4w  K  S  4w  Xd  Xl  X}  4w  BN  BV  Bg  Br  4w  wC  wK  w\  wg  wm  4w<3G3X3c3i3i  sw {G  ;J  LX  L`  ;J  eq  ey  eJ  ;J  O[  Oc  Ot  O  ;J  DP  DX  Di  Dt  D@  ;J,:N:_:j:v:v  FJ@L  #OQ]Qe  #Ojvj~  kE  #O,"6"<"<  KOKW  *^\h\p  *^  vB  vJ  vT  *^)=)G)G  Z^EQ  ![VbVj  ![o{  pD  pQ  ![ 4 A A  W[;G  LLL`  Leqey  fB  L</77  HLKW  $d\h\p  $d  vB  vJ  vZ  $d<#7#G#G  `d H  6+=y`hiijjj 	X 	X 	X!HHH6+Pbefgbhbhiiqw  rW  X  X  X  X  X  X  X  X  X	XsY    L. 
A)AAL. AAL. &8L. AL. 0G=L. .
N8AN;NNNr   rN   rO   rH   r   r      s(        $X $X $X $X $XrO   r   c                       e Zd Zd ZdS )AcceptRejectUserContractRequestc                 l   	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }|j
                            d          }|j
                            d          }|st          ddit          j                  S |st          ddit          j                  S t          j                            |          	                                }|st          dd	it          j                  S ||_        |                                 t          dd
i          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)Nr%   r   r(   r   r   req_status is requiredzcontract_id is requiredr   zLawyerContractDeals not foundSuccess)r   r4   r   r5   r   r6   r7   r8   r9   r:   r3   r<   r;   r   r   r?   rB   )rC   rD   rE   rF   rl   r   r   get_datas           rH   rI   z$AcceptRejectUserContractRequest.post   s   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK )),77J!,**=99K i+C DFLghhhh j+D EVMhiiii(077;7GGMMOOH p+J KSYSnoooo *HMMOOOY	2333 	_ 	_ 	_YA/8]^^^^^^^^^	_sW    E5 
A)AAE5 ABE5 E5 8AE5 	+E5 5
F3?)F.(F3.F3NrJ   rN   rO   rH   r   r      (        _ _ _ _ _rO   r   c                       e Zd Zd ZdS )LawyerSubscriptionExpiresc                    	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            d          	                                }|D ]}t          j                            |j        d                              d          	                                }t          j                    }|j        |k    r6d|_        |                                 d|_        |                                 t          dd	i          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)
Nr%   r   agency)r)   T)r   	is_active-idFr   )r   r4   r   r5   r   r6   r7   r8   r9   r:   LawyerSubscriptionsrj   order_byr   todaysub_expiry_dater_   r?   r   rB   )rC   rD   rE   rF   rl   r   
agency_objr   s           rH   r<   zLawyerSubscriptionExpires.get   s   	aX#G,, X X X3q66 2&:VWWWWWWWWWX (//h/GGMMOOK' & &08??ae?ffoopuvv||~~

-6605H-MMOOO+0J(OO%%%Yy1222 	a 	a 	a3q66 2&:_`````````	asD    D; 
A)AAD; AC)D; ;
E9)E4.E94E9Nr   rN   rO   rH   r   r      s(        a a a a arO   r   c                       e Zd Zd ZdS )LawyerAddRatingReviewc                    	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }|j
                            d          }|st          ddit          j                  S |j
                            d          }|st          ddit          j                  S |j
                            d          }|st          dd	it          j                  S t          j                            |
          	                                }t          j                            ||||           t          ddi          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)Nr%   r   r   rating_datarating_data is requiredreview_datareview_data is requiredreceive_customer_idzreceive_customer_id is requiredr   )send_user_customerlawyer_receive_customerratingreviewr   )r   r4   r   r5   r   r6   r7   r8   r9   r:   r3   r<   r;   lawyerRatingAndReviewcreaterB   )	rC   rD   rE   rF   rl   r   r   r   receieve_customer_objs	            rH   rI   zLawyerAddRatingReview.post  s   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK!,**=99K j+D EVMhiiii!,**=99K j+D EVMhiiii"),"2"23H"I"I& r+L MU[Upqqqq$,$4$;$;AT$;$U$U$[$[$]$]!!)00Kh}  FQ  Yd0  e  e  eY	2333 	_ 	_ 	_YA/8]^^^^^^^^^	_sW    F 
A)AAF AA-F ?8F 88F 1A%F 
G!)G
GGNrJ   rN   rO   rH   r   r     r   rO   r   c                       e Zd Zd Zd ZdS )LawyerEditRatingReviewc                    	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }|j
                            d          }|st          ddit          j                  S t          j                            |          	                                }|st          ddit          j                  S |j        |j        d}t          d	|d
          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)Nr%   r   r   	rating_idrating_id is requiredr   z No rating data found is requiredr   r   r   rb   )r   r4   r   r5   r   r6   r7   r8   r9   r:   r   r<   r;   r   r   r   rB   )rC   rD   rE   rF   rl   r   
rating_objr   s           rH   r<   zLawyerEditRatingReview.get(  s   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK -11+>>I h+B C6Kfgggg.6===KKQQSSJ s+M NV\Vqrrrr$+$+ H
 	BBCCC 	_ 	_ 	_YA/8]^^^^^^^^^	_sQ    D1 
A)AAD1 AA-D1 ?AD1  D1 1
E/;)E*$E/*E/c                 p   	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }|j
                            d          }|st          ddit          j                  S |j
                            d          }|st          ddit          j                  S |j
                            d          }|st          dd	it          j                  S t          j                            |
                              ||           t          ddi          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)Nr%   r   r   r   r   r   r   r   r   r   r   r   )r   r4   r   r5   r   r6   r7   r8   r9   r:   r3   r<   r;   r   updaterB   )rC   rD   rE   rF   rl   r   r   r   s           rH   rI   zLawyerEditRatingReview.post?  s   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK((55I h+B C6Kfgggg!,**=99K j+D EVMhiiii!,**=99K j+D EVMhiiii!)00I0>>EE[`kElllY	2333 	_ 	_ 	_YA/8]^^^^^^^^^	_sW    E7 
A)AAE7 AA-E7 ?8E7 88E7 1AE7 7
F5)F0*F50F5NrK   rL   rM   r<   rI   rN   rO   rH   r   r   '  s:        _ _ _._ _ _ _ _rO   r   c                       e Zd Zd ZdS )LawyerDeleteRatingReviewc                    	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }|j
                            d          }|st          ddit          j                  S t          j                            |          	                                }|                                 t          ddi          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)Nr%   r   r   r   r   r   r   )r   r4   r   r5   r   r6   r7   r8   r9   r:   r3   r<   r;   r   deleterB   )rC   rD   rE   rF   rl   r   r   s          rH   rI   zLawyerDeleteRatingReview.postU  sl   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK((55I h+B C6Kfgggg.6==9=MMSSUUJY	2333 	_ 	_ 	_YA/8]^^^^^^^^^	_sK    D 
A)AAD AA-D ?AD 
E )E	EENrJ   rN   rO   rH   r   r   T  s(        _ _ _ _ _rO   r   c                       e Zd Zd ZdS )LawyerGetMyRatingsc                    	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }t          j                            |          }g }|D ]L}|j        j        dz   |j        j        z   |j        j        |j        |j        d}|                    |           Mt          d|d          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)	Nr%   r   r   r   r   )r   customer_imager   rating_dater   rb   )r   r4   r   r5   r   r6   r7   r8   r9   r:   r   send_customerrf   rg   ri   r   
created_atr   rB   )	rC   rD   rE   rF   rl   r   r   r   r   s	            rH   r<   zLawyerGetMyRatings.getg  s|   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK.6==Va=ccJH$ * *%+%9%CS%H&J^Jg%g&,&:&G$m#)#4	  ))))	BBCCC 	_ 	_ 	_YA/8]^^^^^^^^^	_D    D	 
A)AAD	 AB7D	 	
E)E<EENr   rN   rO   rH   r   r   f  (        _ _ _ _ _rO   r   c                       e Zd Zd ZdS )LawyerGetMyReviewsc                    	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }t          j                            |          }g }|D ]L}|j        j        dz   |j        j        z   |j        j        |j        |j        d}|                    |           Mt          d|d          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)	Nr%   r   r   r   r   )r   r   reviewsreview_dater   rb   )r   r4   r   r5   r   r6   r7   r8   r9   r:   r   r   rf   rg   ri   r   
start_dater   rB   )	rC   rD   rE   rF   rl   
review_objr   r   r   s	            rH   r<   zLawyerGetMyReviews.get}  s|   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK.6==Va=ccJH$ * *$*$8$B3$FvG[Gd$d%+%9%F$m"("3	  ))))	BBCCC 	_ 	_ 	_YA/8]^^^^^^^^^	_r   Nr   rN   rO   rH   r   r   |  r   rO   r   c                       e Zd Zd ZdS )LawyerViewRatingReviewsc                 L   	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }|j
                            d          }|st          ddit          j                  S t          j                            |          }|rt          j                            |                              t          d                    d         }t          j                            |                                          }g }	|D ]R}
|
j        j        d	z   |
j        j        z   |
j        j        |
j        |
j        |
j        d
}|	                    |           St          d|	t1          |          |d          S t          dd	d	d	d          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)Nr%   r   r   r^   customer_id is requiredr   r   rating__avgr   )r   r   r   r   rating_review_dater   )r%   rating_review_dataaverage_ratingtotal_reviews)r   r4   r   r5   r   r6   r7   r8   r9   r:   r   r<   r;   r   	aggregater   countr   rf   ri   r   r   r   r   roundrB   )rC   rD   rE   rF   rl   r^   r   r   r   r   r   r   s               rH   r<   zLawyerViewRatingReviews.get  s   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK"/33MBBK j+D EVMhiiii.6==Xc=ddJ z!6!>!E!E^i!E!j!j!t!tux  zB  vC  vC  "D  "D  ER  "S 5 = D D_j D k k q q s s%'"( 	8 	8F(.(<(Fs(J6K_Ki(i)/)=)J!'!'-3->   H '--h7777IK]ot  vD  pE  pE  Vc  !d  !d  e  e  eI3`ctw x xyyy 	_ 	_ 	_YA/8]^^^^^^^^^	_sQ    G% 
A)AAG% AA-G% ?DG% G% %
H#/)HH#H#Nr   rN   rO   rH   r   r     s(        _ _ _ _ _rO   r   c                       e Zd Zd ZdS )lawyerConverstationTokenc                 *   	 t          |          }|r[t          j        |t          j                  }|d         }t
          j                            |                                          }d S d}|j	        }t          t          t          t          |          }t          r*t          t                    }|                    |           t"          j        j                            t                    j                                                            ddd	          }||                                d
}	t3          t4          j        d|	d          S # t8          $ r4}
t3          dt;          |
          it4          j                  cY d }
~
S d }
~
ww xY w)Nuser_idr   r   identityservice_sidTdefault5You have a new message in ${CONVERSATION}: ${MESSAGE}new_message_enablednew_message_soundnew_message_templater   tokenzToken Created Successfullyr2   r%   r   )r   jwtdecoder	   
SECRET_KEYr7   r8   r9   r:   rj   r    account_sidapi_sid
api_secretchat_service_sidr   	add_grantclientconversationsv1servicesconfigurationnotificationsr   to_jwtr   r   r@   r4   r5   rB   rC   rD   r	  decodedr   rl   r   
chat_grantnotificationalldatarF   s              rH   r<   zlawyerConverstationToken.get  s   !	_,W55E B*UH,?@@!),$,333AAGGII&>#K
HUUU# 0!*7G!H!H!HJOOJ///%3*++(,&/)`     $   0BTpx  "A  "A  B  B  B 	_ 	_ 	_YA/8]^^^^^^^^^	_s%   A*E .C%E 
F)FFFNr   rN   rO   rH   r   r     s(        "_ "_ "_ "_ "_rO   r   c                       e Zd Zd ZdS )lawyerConverstationListingc                 2   	 t          |          }|rZt          j        |t          j                  }|d         }t
          j                            |                                          }nd}t          j                            |j
                                      d          }g }|D ]}t          j        j                            |j                  j                            dd          }	d	}
d	}d	}|	D ]V}|j        r&|j        }
t'          |j                  d
z   }|j        }/|j        r d}
t'          |j                  d
z   }|j        }W|j
        |j        |j        j
        |j        j        |j        j        |j        j
        |j        j        |j        j        |
||d}|                    |           t7          t8          j        d|d          S # t<          $ r4}t7          dt?          |          it8          j                   cY d }~S d }~ww xY w)Nr   r   r   r   r   descr   orderlimitr1    agofile)rj   twilio_channel_sidr^   r   r   	lawyer_idlawyer_namelawyer_imagelast_messagetimemessage_dater   r2   r%   r   )!r   r
  r  r	   r  r7   r8   r9   r:   ConversationLawyerrj   r   r  r  r  r'  messageslistr   r!   date_createdmediar   nameimager&   r   r   r   r@   r4   r5   rB   rC   rD   r	  r  r   rl   r  conversation_listconversationr/  r+  r,  r-  recordconversation_datarF   s                   rH   r<   zlawyerConverstationListing.get  s8   /	_,W55E *UH,?@@!),$,333AAGGII.6=={~=WW``afggM " - !< !<!/"]<#BCCTaT00	 
  "!& ; ;F{ ;'-{()<==fD'-': ;'-()<==fD'-': '/*6*I#/#8#;%1%:%?&2&;&A , 3 6#/#6#;$0$7$=#/#/% %! "(():;;;;F,>PYarssttt 	_ 	_ 	_YA/8]^^^^^^^^^	_s   GG 
H")HHHNr   rN   rO   rH   r  r    s(        0_ 0_ 0_ 0_ 0_rO   r  c                       e Zd Zd ZdS )lawyerConverstationDeletec                    	 t          |          }|rZt          j        |t          j                  }|d         }t
          j                            |                                          }nd}|j	        
                    d          }|st          t          j        dd          S t          j                            |                                          }|                                 t          t          j        dd          S # t"          $ r4}t          d	t%          |          it          j        
          cY d }~S d }~ww xY w)Nr   r   r   converstation_idNo customer foundr.   r   r   r%   r   )r   r
  r  r	   r  r7   r8   r9   r:   r3   r<   r   r   r;   r.  r   r@   r4   r5   rB   )	rC   rD   r	  r  r   rl   r=  r  rF   s	            rH   r<   zlawyerConverstationDelete.get  sF   	_,W55E *UH,?@@!),$,333AAGGII&|//0BCC# u0K_r s sttt.6==CS=UU[[]]M  """F,>PYZZ[[[ 	_ 	_ 	_YA/8]^^^^^^^^^	_s%   B$D	 'A!D	 	
E)E<EENr   rN   rO   rH   r;  r;    r   rO   r;  c                       e Zd Zd ZdS )getPrivacyPolicyc                    	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }|j
                            d          }|st          ddit          j                  S t          j                            d          	                                }|j        |j        |j        |j        |j        d}t          t          j        d	|d
          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)Nr%   r   r   r^   r   lawyer_privacypage_type_namerj   rD  
page_titlepage_contentr   r   r/   r0   r   )r   r4   r   r5   r   r6   r7   r8   r9   r:   r   r<   r;   ContentPagesAdminobjectrj   rD  rF  rG  r@   rB   )rC   rD   rE   rF   rl   r^   privacy_objr   s           rH   r<   zgetPrivacyPolicy.get+  s   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK"/33MBBK j+D EVMhiiii,3::L\:]]cceeK ^!,!;(3*7$+ H F,>PYemnnooo 	_ 	_ 	_YA/8]^^^^^^^^^	_sK    D/ 
A)AAD/ AA-D/ ?A/D/ /
E-9)E("E-(E-Nr   rN   rO   rH   r@  r@  *  r   rO   r@  c                       e Zd Zd ZdS )getTermsConditionc                 n   	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }t          j                            d          	                                }|j        |j        |j        |j        |j        d}t          t          j        d|d          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)	Nr%   r   r   lawyer_termsrC  rE  r   rH  )r   r4   r   r5   r   r6   r7   r8   r9   r:   rI  rJ  rj   rD  rF  rG  r@   rB   )rC   rD   rE   rF   rl   	terms_objr   s          rH   r<   zgetTermsCondition.getC  sU   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK*188.8YY__aaI\!*!9&1(5") H F,>PYemnnooo 	_ 	_ 	_YA/8]^^^^^^^^^	_sD    C6 
A)AAC6 AB$C6 6
D4 )D/)D4/D4Nr   rN   rO   rH   rM  rM  B  s(        _ _ _ _ _rO   rM  c                       e Zd Zd ZdS )getFAQLawyerc                 f   	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |          	                                }t          j                            d          }g }|D ]*}|                    |j        |j        |j        d           +t          t          j        d|d          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)	Nr%   r   r   T)end_date__isnull)rj   titlecontentr   )r/   r0   r   )r   r4   r   r5   r   r6   r7   r8   r9   r:   	AgencyFaqr   rj   rU  rV  r@   rB   )rC   rD   rE   rF   rl   faq_objr   faqs           rH   r<   zgetFAQLawyer.getY  sh   	_Z#G,, Z Z ZCFF 3F<XYYYYYYYYYZ"*11s1;;AACCK!)00D0IIGH  I!k! !    
 F,>PYemnnooo 	_ 	_ 	_YA/8]^^^^^^^^^	_sD    C2 
A)AAC2 AB C2 2
D0<)D+%D0+D0Nr   rN   rO   rH   rR  rR  X  s(        _ _ _ _ _rO   rR  c                       e Zd Zd ZdS )ListingFinalizeLawyerc           	         	 t          |          }|r]t          j        |t          j        dg          }|d         }t
          j                            |                                          }nd }t          j                            |          }|
                                s(t          t          j        ddt          j                  S t          |j                            d	d
                    }t          |j                            dd                    }|d
z
  |z  }	|	|z   }
|                                }||	|
         }g }|D ]}|                    i d|j        d|j        r|j        j        nd d|j        r|j        j        ndd|j        r|j        j        ndd|j        r|j        j        ndd|j        r|j        j        ndd|j        r|j        j        nd d|j        r|j        j        ndd|j        r|j        j        ndd|j        d|j        d|j        d|j        d|j        d|j        d|j         d|j!        d|j"        i           t          t          j        d ||||d!t          j                  S # tF          $ rN}tI          |           t          t          j%        tM          |          dt          j%                  cY d }~S d }~ww xY w)"NHS256
algorithmsr   r   r   zNo records found .r.   r   pager   	page_sizert   rj   r^   customer_firstNamer1   customer_lastNamer   customer_phoneNumberr(  lawyer_emaillawyer_phoneNumberproperty_typefinal_amountcustomer_signaturelawyer_signaturefinalized_statusr   r   
updated_atend_dateListed Successfully)r/   r%   r   r`  ra  total_records)'r   r
  r  r	   r  r7   r8   r9   r:   FinalizeLawyerTableexistsr   r   r@   intGETr<   r   r   rj   r   rf   rg   rS   r   r&   rg  rh  ri  rj  rk  r   r   rl  rm  r4   rA   rB   r5   )rC   rD   r	  r  r   rl   finalise_qsr`  ra  startendro  paginated_qsr   finaliserF   s                   rH   r<   zListingFinalizeLawyer.geto  s   C	=,W55E #*UH,?WIVVV!),&.5575CCIIKK" .5<<" =  K %%'' .#)#5&:! ! !,. . . . w{vq1122DGKOOK<<==IAX*E)#C'--//M&uSy1LH(   !(+!!8;L#V8#4#7#7RV! )IZ*b(*;*E*E`b! (xGX)`):)C)C^`	!
 %AR&Zh&7&=&=XZ! +XM^,fH,=,I,Idf!  x!P!3!3D! #X_$THO$9$9RT! )*`(/*E*E^`! $X%;! #H$9! )(*E! '(A! '(A!  "8#7!!$ !("5%!& !("5'!(  1)! !    . %10$&!.  (* * * *  	= 	= 	=!HHH%D"%a&&  ;= = = = = = = = =	=s&   CJ GJ 
K,AK'!K,'K,Nr   rN   rO   rH   r[  r[  n  s(        D= D= D= D= D=rO   r[  c                       e Zd Zd Zd ZdS )CompleteFinalizeLawyerc           	      >   	 t          |          }|r]t          j        |t          j        dg          }|d         }t
          j                            |                                          }nd}g }|j	        
                    d          }|s(t          t          j        ddt          j        	          S t          j                            |
                                          }|s(t          t          j        ddt          j        	          S |j        dk    r(t          t          j        ddt          j        	          S |                    i d|j        d|j        r|j        j        nd d|j        r|j        j        ndd|j        r|j        j        ndd|j        r|j        j        ndd|j        r|j        j        ndd|j        r|j        j        nd d|j        r|j        j        ndd|j        r|j        j        ndd|j        r|j        j        ndd|j        dt5          j        |j                  d|j        d|j        d|j        d|j        d|j         |j!        |j"        |j#        |j        |j$        d            t          t          j%        d!|d         d"t          j%        	          S # tL          $ rN}	tO          |	           t          t          j(        tS          |	          dt          j(        	          cY d }	~	S d }	~	ww xY w)#Nr]  r^  r   r   r   finalize_request_id finalize_request_id  is requiredr.   r   r   finalise_table not found finalized by customer and lawyerzAlready finalizedrj   r^   rb  r1   rc  r   rd  r(  lawyer_companyre  rf  rg  property_imageproperty_videoproperty_documentproperty_namerh  ri  )rj  r   rl  rk  rm  rn  )r/   r%   r   )*r   r
  r  r	   r  r7   r8   r9   r:   rs  r<   r   r   r;   rp  rk  r   rj   r   rf   rg   rS   r   r&   rh   rg  astliteral_evalr  r  property_docrh  ri  rj  r   rl  rm  r@   r4   rA   rB   r5   )
rC   rD   r	  r  r   rl   r   r|  rx  rF   s
             rH   r<   zCompleteFinalizeLawyer.get  s   2	X,W55E *UH,?G9UUU!),$,333AAGGIIH")+//2G"H"H& e 0K]  "A  "A  IO  Id  e  e  e  e(077;N7OOUUWWH Uv/J\v w w  @F  @[  \  \  \  \*,NNNv/J\o p px~  yT  U  U  U  UOO (+!8;L#V8#4#7#7RV )IZ*b(*;*E*E`b (xGX)`):)C)C^`	
 %AR&Zh&7&=&=XZ +XM^,fH,=,I,Idf  x!P!3!3D %&_ho&D&D]_ #X_$THO$9$9RT )*`(/*E*E^` $X%; %c&6x7N&O&O %h&=  ()>!" $X%;#$ #H$9%& )(*E'( )1(A"*"5"*"5'/'@ ( 11     : 6+=H]iqrsituu  ~D  ~P  Q  Q  Q  Q 	X 	X 	X!HHH6+Pbefgbhbhiiqw  rW  X  X  X  X  X  X  X  X  X	Xs3   B5K 8AK 2K E<K 
LALLLc                    	 t          |          }|r]t          j        |t          j        dg          }|d         }t
          j                            |                                          }nd}g }|j	        
                    d          }|j	        
                    d          }|s(t          t          j        dd	t          j        
          S |s(t          t          j        dd	t          j        
          S t          j                            |                                          }	|	s(t          t          j        dd	t          j        
          S ||	_        d|	_        d|	j        _        |	j        xj        dz  c_        |	j                                         |	                                 |	j                                         t          t          j        ddt          j        
          S # t.          $ rN}
t1          |
           t          t          j        t5          |
          d	t          j        
          cY d }
~
S d }
~
ww xY w)Nr]  r^  r   r   r   r|  rj  r}  r.   r   zlawyer_signature  is requiredr   r~  r  r   zSignature added Successfullyr/   r%   )r   r
  r  r	   r  r7   r8   r9   r:   r3   r<   r   r   r;   rp  rj  rk  r   r   r&   total_hire_countr?   r@   r4   rA   rB   r5   )rC   rD   r	  r  r   rl   r   r|  rj  rx  rF   s              rH   rI   zCompleteFinalizeLawyer.post  s    	X,W55E *UH,?G9UUU!),$,333AAGGIIH"),"2"23H"I"I&|//0BCC& e 0K]  "A  "A  IO  Id  e  e  e  e# b 0K]|!}!}  FL  Fa  b  b  b  b(077;N7OOUUWWH \v/J\v w w  @F  @[  \  \  \  \&6H%&HH%)KH(O,,a/,,O  """MMOOO""$$$ 6+=Hfggou  pB  C  C  C  C 	X 	X 	X!HHH6+Pbefgbhbhiiqw  rW  X  X  X  X  X  X  X  X  X	Xs3   CG5 )G5 <AG5 BG5 5
I?AIIINr   rN   rO   rH   rz  rz    s;        3X 3X 3Xh!X !X !X !X !XrO   rz  c                       e Zd Zd ZdS )createConverstationCustomerc                    t          |          }|r]t          j        |t          j        dg          }|d         }t
          j                            |                                          }nd}|j	        
                    d          }|s(t          t          j        ddt          j        	          S t
          j                            |
                                          }|s(t          t          j        ddt          j        	          S t          j                            ||                                          }|rt          d           |j        }	nt          d           t#          |j                  t#          |j                  z   t#          |j                  z   t#          |j                  z   }
t)          |
          }t+          j        |           d                    |          }t0          j        j        j                            |          }t          j                            t9          ||          t9          ||          z                                            }|s-t          j                            ||          }|j        |_        t=          j                    |_         |!                                 t#          |j                  t#          |j                  t#          |j"                  d}tG          j$        |          }t0          j        j                            |j                  j%                            t#          |j                  |          }t#          |j                  t#          |j                  t#          |j"                  d}tG          j$        |          }t0          j        j                            |j                  j%                            t#          |j                  |          }|j        |_&        |j        |_'        |!                                 |j        }	t          t          j(        d|	dt          j(        	          S )Nr]  r^  r   r   r   chat_customerzchat_customer is required.r.   r   r   r>  )customer_twocustomer_oneherehere2r1   )friendly_name)r  r  )rj   r3  r4  )r   
attributeszconversation Added successfully)r/   r0   r'  ))r   r
  r  r	   r  r7   r8   r9   r:   r3   r<   r   r   r;   ConversationCustomersrA   r'  r5   rf   rj   r0  rx   shufflejoinr  r  r  r   r   sidr   nowr+  r?   ri   jsondumpsparticipantscustomer_one_twilio_idcustomer_two_twilio_idr@   )rC   rD   r	  r  r   rl   r  chat_customer_objexisting_conversationr'  concatinate_namessuffle_stringconversation_namer7  conversation_objuser_attributesuser_json_attributeschat_user_participantuser_two_attributes#user_two_attributes_json_attributesuser_two_attributes_participants                        rH   rI   z createConverstationCustomer.post  s   (11 	j(;yQQQGi(G (//W/==CCEEKKK((99 	^F,G[wxx  BH  B]  ^  ^  ^  ^$,33}3EEKKMM  	UF,G[noox~  yT  U  U  U  U 5 = D DRcr} D ~ ~  !E  !E  !G  !G  3	E&MMM!6!I'NNN"#4#>??#kF[B\B\\_bctcw_x_xx{~  @K  @N  |O  |O   O !233MN=))) " 6 6!/"V*;V<< 
  5<CCAS^l}D~D~D~  BC  Sd  r}  B~  B~  B~  E~         E   E   G   G# G#8#@#G#GU`n#G  $B  $B 6B6F 3,4LNN)!!####&{~#6#6c+BW>X>XK455 O $(:o#>#> $*$8|/00[^!4!4@TUU	 " (++<+?'@'@L]LgHhHh-:;;" " 37*=P2Q2Q/.4.B|/00%6%9!:!:Fijj	 , 7L6O36U6Y3!!###!1!D(:Lm  DV  W  W  `f  `r  s  s  s  	srO   NrJ   rN   rO   rH   r  r    s-        Es Es Es Es EsrO   r  c                       e Zd Zd ZdS )createTokenc                 \   	 t          |          }|r]t          j        |t          j        dg          }|d         }t
          j                            |                                          }nd}|j	        }t          t          t          t          |          }t          r*t          t                    }|                    |           t"          j        j                            t                    j                                                            dd	d
          }||                                d}	t3          t4          j        d|	dt4          j                  S # t8          $ r?}
t3          t4          j        t=          |
          dt4          j                  cY d }
~
S d }
~
ww xY w)Nr]  r^  r   r   r   r   r   Tr  r  r  r  zToken Added successfullyr2   r   r   r%   )r   r
  r  r	   r  r7   r8   r9   r:   rj   r    r  r  r  r  r   r  r  r  r  r  r  r  r   r  r   r   r@   r4   rB   r5   r  s              rH   r<   zcreateToken.get\  s   !	N,W55E *UH,?G9UUU!),$,333AAGGII"~HGJQQQE ,&3CDDD

+++!/X&'']__V$("+%\      LLNN G F,>Pjryzz  CI  CU  V  V  V  V 	N 	N 	Nf&KWZ[\W]W]^^gm  hM  N  N  N  N  N  N  N  N  N	Ns   EE" "
F+,4F& F+&F+Nr   rN   rO   rH   r  r  [  s(        "N "N "N "N "NrO   r  c                       e Zd Zd ZdS )customerConverstationListingc                 4   	 t          |          }|rlt          j        |t          j        dg          }|d         }t
          j                            |                                          }t          |           nd}t          d|           t          j                            t          |j        d          t          |j        d	          z                                |
                              d          }|s`t          d           t          j                            t          |          t          |          z                                d          }t          |           t          |           g }|D ]}t           j        j                            |j                  j                            dd          }	t          d           t          |	           d}
d}d}|	D ]}t          d           t          d|j                   t          d|j                   |j        rtt          d           t          |j                   |j        }
t          |
           t1          j        |
          }
|
d         }
t5          |j                  dz   }|j        }|j        sCt          d           t          |j                   d}
t5          |j                  dz   }|j        }t          |           |j        |j        |j        j        dz   |j        j        z   |j        j        |j        j        |j        j         |j!        j        dz   |j!        j        z   |j!        j        |j!        j        |j!        j         |
||d}|"                    |           tG          tH          j%        d|dtH          j%                  S # tL          $ r?}tG          tH          j'        tQ          |          dtH          j'                  cY d }~S d }~ww xY w) Nr]  r^  r   r   r   rl   r   r  customer_two__loginUserTyper  customer_one__loginUserTypecustomer_deletedr   r  )r   )r   r!  r   r"  
messages:-r1   record:-record.bodyr%   r%  record.media
Media filer   rj   r'  customer_one_namecustomer_one_imagecustomer_one_idcustomer_one_phone_numbercustomer_two_namecustomer_two_imagecustomer_two_idcustomer_two_phone_numberr+  r,  r-  r   r2   r   r  ))r   r
  r  r	   r  r7   r8   r9   r:   rA   r  r   rj   excluder   ConversationAgencyr  r  r  r'  r/  r0  r   r2  r  loadsr!   r1  r  rf   rg   ri   r   r  r   r   r   r@   r4   rB   r5   r5  s                   rH   r<   z customerConverstationListing.get  sO   T	N,W55E *UH,?G9UUU!),$,333AAGGIIk""""-,,,19@@{~:VVV{~:VVVW  g!,   huoo  ! 7f 2 : A A![BYBYBY%%%C& !' !''/x -    -    " - 5< 5<!/"]<#BCCTaT00	 
 l###h!!& ; ;F*%%%*V[111*V\222{ ;m,,,fk***'-{l+++'+z,'?'?'3I'>  ))<==fD'-':#\ ;n---fl+++'3()<==fD'-':l###&/*6*I)5)B)Lc)QR^RkRt)t*6*C*P&2&?&B0<0I0U)5)B)Lc)QR^RkRt)t*6*C*P'3'@'C0<0I0U#/#/% %! "(():;;;;F,>PYarss  |B  |N  O  O  O  O 	N 	N 	Nf&KWZ[\W]W]^^gm  hM  N  N  N  N  N  N  N  N  N	Ns   OO 
P4PPPNr   rN   rO   rH   r  r    s-        UN UN UN UN UNrO   r  c                       e Zd Zd ZdS )AgencyConverstationListingc                    	 t          |          }|r]t          j        |t          j        dg          }|d         }t
          j                            |                                          }nd}t          j                            t          |j        d          t          |j        d          z                                |	                              d
          }g }|D ]}t          j        j                            |j                  j                            dd          }	t)          d           t)          |	           d}
d}d}|	D ]}t)          d           t)          d|j                   t)          d|j                   |j        rtt)          d           t)          |j                   |j        }
t)          |
           t/          j        |
          }
|
d         }
t3          |j                  dz   }|j        }|j        sCt)          d           t)          |j                   d}
t3          |j                  dz   }|j        }t)          |           |j        |j        |j        j        dz   |j        j        z   |j        j        |j        j        |j        j        |j         j        dz   |j         j        z   |j         j        |j         j        |j         j        |
||d}|!                    |           tE          tF          j$        d|dtF          j$                  S # tJ          $ r?}tE          tF          j&        tO          |          dtF          j&                  cY d }~S d }~ww xY w)Nr]  r^  r   r   r   r   r  r  r  r   r!  r   r"  r  r1   r  r  r%   r%  r  r  r   r  r   r2   r   r  )(r   r
  r  r	   r  r7   r8   r9   r:   r  r   rj   r  r   r  r  r  r'  r/  r0  rA   r   r2  r  r  r!   r1  r  rf   rg   ri   r   r  r   r   r   r@   r4   rB   r5   r5  s                   rH   r<   zAgencyConverstationListing.get  s   I	N,W55E *UH,?G9UUU!),$,333AAGGII19@@{~8TTT{~8TTTU  g!,   huoo  !# - 5< 5<!/"]<#BCCTaT00	 
 l###h!!& ; ;F*%%%*V[111*V\222{ ;m,,,fk***'-{l+++'+z,'?'?'3I'>  ))<==fD'-':#\ ;n---fl+++'3()<==fD'-':l###&/*6*I)5)B)Lc)QR^RkRt)t*6*C*P&2&?&B0<0I0U)5)B)Lc)QR^RkRt)t*6*C*P'3'@'C0<0I0U#/#/% %! "(():;;;;F,>PYarss  |B  |N  O  O  O  O 	N 	N 	Nf&KWZ[\W]W]^^gm  hM  N  N  N  N  N  N  N  N  N	Ns   L,L/ /
M894M3-M83M8Nr   rN   rO   rH   r  r    s-        JN JN JN JN JNrO   r  c                       e Zd Zd ZdS )LawyerConverstationListingc                    	 t          |          }|r]t          j        |t          j        dg          }|d         }t
          j                            |                                          }nd}t          j                            t          |j        d          t          |j        d          z                                |	                              d
          }t          |           g }|D ]}t          j        j                            |j                  j                            dd          }	t          d           t          |	           d}
d}d}|	D ]}t          d           t          d|j                   t          d|j                   |j        rtt          d           t          |j                   |j        }
t          |
           t/          j        |
          }
|
d         }
t3          |j                  dz   }|j        }|j        sCt          d           t          |j                   d}
t3          |j                  dz   }|j        }t          |           |j        |j        |j        j        dz   |j        j        z   |j        j        |j        j        |j        j        |j         j        dz   |j         j        z   |j         j        |j         j        |j         j        |
||d}|!                    |           tE          tF          j$        d|dtF          j$                  S # tJ          $ r?}tE          tF          j&        tO          |          dtF          j&                  cY d }~S d }~ww xY w)Nr]  r^  r   r   r   r&   r  r  r  r   r!  r   r"  r  r1   r  r  r%   r%  r  r  r   r  r   r2   r   r  )(r   r
  r  r	   r  r7   r8   r9   r:   r  r   rj   r  r   rA   r  r  r  r'  r/  r0  r   r2  r  r  r!   r1  r  rf   rg   ri   r   r  r   r   r   r@   r4   rB   r5   r5  s                   rH   r<   zLawyerConverstationListing.get*  s   L	N,W55E *UH,?G9UUU!),$,333AAGGII19@@{~8TTT{~8TTTU  g!,   huoo  -    " - 5< 5<!/"]<#BCCTaT00	 
 l###h!!& ; ;F*%%%*V[111*V\222{ ;m,,,fk***'-{l+++'+z,'?'?'3I'>  ))<==fD'-':#\ ;n---fl+++'3()<==fD'-':l###&/*6*I)5)B)Lc)QR^RkRt)t*6*C*P&2&?&B0<0I0U)5)B)Lc)QR^RkRt)t*6*C*P'3'@'C0<0I0U#/#/% %! "(():;;;;F,>PYarss  |B  |N  O  O  O  O 	N 	N 	Nf&KWZ[\W]W]^^gm  hM  N  N  N  N  N  N  N  N  N	Ns   L;L> >
N4N<NNNr   rN   rO   rH   r  r  )  s-        MN MN MN MN MNrO   r  c                       e Zd Zd ZdS )LawyerPropertyRequestc                 D   	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |d          	                                }t          j                            |j                  }g }|D ]}t          j                            |j                  }|rd}	nd}	|j        |j        |j        |j        |j        |j        |	|j        j        |j        j        |j        |j        d}
|                    |
           t          t          j        d	||j        d
          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)Nr%   r   r&   r'   r   TF)rj   mobile_numberr3  rS   rg  r   is_requestedr^   customer_mailis_contract_createdr   r   r   )r   r4   r   r5   r   r6   r7   r8   r9   r:   LawyerPropertyRequestsrj   LawyerApprovedPropertyr  r3  rS   rg  r   r  r   r   r@   r_   rB   )rC   rD   rE   rF   rl   propertyObjpropertyDatapropertyapproved_requestedr  r3   s              rH   r<   zLawyerPropertyRequest.get}  s   	]X#G,, X X X3q66 2&:VWWWWWWWWWX (//Sx/PPVVXXK19@@+.@YYKL' * *%;%C%J%JT_Tb%J%c%c"% )#'LL#(L "$,$:#=$N$,$:!)#/"*"3"6$,$5$;*2*F#.  ##D))))6+=y`l  AL  A]  ^  ^  _  _  _ 	] 	] 	]Ys1vv.f6[\\\\\\\\\	]sD    E! 
A)AAE! ADE! !
F+)FFFNr   rN   rO   rH   r  r  |  s(         ]  ]  ]  ]  ]rO   r  c                       e Zd Zd ZdS )ApprovePropertyRequestc                 J   	 	 t          |          }nA# t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY wt          j                            |d          	                                }|j
                            d          }|st          ddit          j                  S |j
                            d          }|st          ddit          j                  S t          j                            |	          	                                }|st          dd
it          j                  S ||_        |                                 t          j                            |j        j        	          	                                }t"          j                            |j        ||           t          t          j        dd          S # t          $ r4}t          dt          |          it          j                  cY d }~S d }~ww xY w)Nr%   r   r&   r'   property_idproperty_id is requiredr   r   r   zProperty request not found)r(  r   property_requestr   r.   )r   r4   r   r5   r   r6   r7   r8   r9   r:   r3   r<   r;   r  r?   r   rj   r  r   r@   rB   )	rC   rD   rE   rF   rl   r  r   property_objrequest_customers	            rH   rI   zApprovePropertyRequest.post  s7   	]X#G,, X X X3q66 2&:VWWWWWWWWWX (//Sx/PPVVXXK!,**=99K j+D EVMhiiii )),77J i+C DFLghhhh19@@[@QQWWYYL m+G HPVPkllll",L'/66,:O:R6SSYY[["*11knXh  }I1  J  J  J6+=yYYZZZ 	] 	] 	]Ys1vv.f6[\\\\\\\\\	]sX    G$ 
A)AAG$ AA.G$  8G$ 9AG$ 
BG$ $
H".)HH"H"NrJ   rN   rO   rH   r  r    s(        ] ] ] ] ]rO   r  c                       e Zd Zd ZdS )DoItLawyerContractc           	      H   	 	 t          |          }nL# t          $ r?}t          t          j        t          |          dt          j                  cY d }~S d }~ww xY wt          j                            |d          	                                }|j
        }|                    d          }|s(t          t          j        ddt          j                  S t          j                            |          	                                }|s(t          t          j        d	dt          j                  S |                    d
          }t          j                            |          	                                }	|	s(t          t          j        ddt          j                  S |                    d          }
|                    d          }|                    d          }|
s(t          t          j        ddt          j                  S |s(t          t          j        ddt          j                  S |s(t          t          j        ddt          j                  S t          j                            |
||||	|d          }d|_        d|_        |                                 t          t          j        d|j        dt          j                  S # t          $ r?}t          t          j        t          |          dt          j                  cY d }~S d }~ww xY w)Nr  r   r&   r'   r  r  r  r   z)No do it by lawyer property request foundr^   r>  contract_filer   	full_namezPlease select contract filezfull_name is requiredzcompany_name is requiredcontract_created)r  r   r  lawyer_doitcustomer_doitr  r   Tzcontract createdz'Contract start from Seller Successfully)r   r%   r   )r   r4   r   r   r6   r5   r7   r8   r9   r:   r3   r<   r;   r  LawyerDoItPropertyContractr   r  r?   r@   rj   rB   )rC   rD   rE   rF   rl   r3   r  request_objr^   customer_newr  r   r  contractObjs                 rH   rI   zDoItLawyerContract.post  s   $	QE#G,, E E Ev/KWZ[\W]W] ^ ^gm  hD  E  E  E  E  E  E  E  E  EE (//Sx/PPVVXXK<D88M22K O&*EPi j jrx  sN  O  O  O  O08??k?RRXXZZK a&*EP{ | |  EK  E`  a  a  a  a((=11K!)00K0@@FFHHL I&*EPc d dlr  mH  I  I  I  I !HH_55M88N33L--I  S&*EPm n nv|  wR  S  S  S  S M&*EPg h hpv  qL  M  M  M  M P&*EPj k ksy  tO  P  P  P  P4<CCR_my  EN  ]h  xD  Xc  mC  @  @K.2K+!3Kf&8Cl  |G  |J  K  K  SY  Se  f  f  f  f 	Q 	Q 	Q6+P[^_`[a[abbjp  kP  Q  Q  Q  Q  Q  Q  Q  Q  Q	Qsl    K 
A4AAK AA;K AK 4A0K %A(K )K 8)K "A5K 
L!"4LL!L!NrJ   rN   rO   rH   r  r    s(        %Q %Q %Q %Q %QrO   r  )ddjango.shortcutsr   rest_framework.viewsr   rest_framework.responser   rest_frameworkr   r   django.confr	   rest_framework_simplejwt.tokensr
   !rest_framework_simplejwt.backendsr   rest_framework.authenticationr   r
  r   modelsdjango.core.paginatorr   r   r   django.db.modelsr   r   r   django.template.loaderr   django.http.responser   requestsdjango.httpr   r   customer_api.authenticationr   customer_api.modelsdjango.core.mailr   twilio.jwt.access_token.grantsr   r   r   twilio.restr   twilio.jwt.access_tokenr    django.utils.timesincer!   TWILIO_ACCOUNT_SIDr  TWILIO_AUTH_TOKEN
auth_tokenTWILIO_CHAT_SIDr  TWILIO_SYNC_SIDsync_service_sidTWILIO_API_SIDr  TWILIO_API_SECRETr  r  r#   rQ   rv   rx   pytzstringr|   r~   r   r   r   r   r   r   r   r   r   r   r   r  r;  r@  rM  rR  r  r[  rz  r  r  r  r  r  r  r  r  r  rN   rO   rH   <module>r     s   # # # # # # ( ( ( ( ( ( , , , , , , ! ! ! ! ! !                   8 8 8 8 8 8 : : : : : : B B B B B B 



 % % % % % %     H H H H H H H H H H " " " " " " " "        3 3 3 3 3 3 - - - - - -  $ $ $ $ $ $ % % % % % % 5 5 5 5 5 5 ! ! ! ! 3 3 3 3 3 3         
       / / / / / / , , , , , , ('
+ + 

!&
	Z	(	(X X X X X7 X X X< " ! ! !+] +] +] +] +]7 +] +] +]Z " ! ! ! ! ! ! ! ! ! ! ! ! ! ! !  ] ] ] ] ]g ] ] ](X X X X X' X X XB%X %X %X %X %X' %X %X %XN_ _ _ _ _g _ _ _.a a a a a a a a._ _ _ _ _G _ _ _.+_ +_ +_ +_ +_W +_ +_ +_Z_ _ _ _ _w _ _ _$_ _ _ _ _ _ _ _,_ _ _ _ _ _ _ _0_ _ _ _ _g _ _ _H#_ #_ #_ #_ #_w #_ #_ #_L1_ 1_ 1_ 1_ 1_ 1_ 1_ 1_j_ _ _ _ _ _ _ _._ _ _ _ _w _ _ _0_ _ _ _ _ _ _ _,_ _ _ _ _7 _ _ _( 


E= E= E= E= E=G E= E= E=PVX VX VX VX VXW VX VX VXtFs Fs Fs Fs Fs' Fs Fs FsV#N #N #N #N #N' #N #N #NNVN VN VN VN VN7 VN VN VNp KN KN KN KN KN KN KN KN\NN NN NN NN NN NN NN NNf!] !] !] !] !]G !] !] !]L] ] ] ] ]W ] ] ]:&Q &Q &Q &Q &Q &Q &Q &Q &Q &QrO   