a
    Ng\                    @   s  d dl mZ d dlmZ d dlmZ d dlmZ ddlT d dl	Z	d dl
m
Z
mZ d d	lmZ d d
lmZ d dlT d dlmZ d dlZd dl	Z	d dlZd dl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#T ddl$T 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,Z,d dl-T d dl.Z.d dl/Z/d dl
m0Z0 d dl1T d dl2m3Z3 d dl4Z4d dl5Z5d dl2m6Z6 d dl7m8Z8 d dl9Z9d dl:T d dl;T d dlm<Z<m=Z=m>Z>m?Z?m@Z@ d dlAmBZB d dlCmDZDmEZEmFZF d dlGmHZH d dlImJZJ d dlKmLZL d dl4Z4d dlMZMejNZOejPZQejRZSejTZUejVZWejXZYeHeOeQZZdd Z[d d! Z\G d"d# d#eZ]G d$d% d%eZ^G d&d' d'eZ_G d(d) d)eZ`G d*d+ d+eZaG d,d- d-eZbG d.d/ d/eZcG d0d1 d1eZdG d2d3 d3eZeG d4d5 d5eZfG d6d7 d7eZgG d8d9 d9eZhG d:d; d;eZiG d<d= d=eZjG d>d? d?eZkG d@dA dAeZlG dBdC dCeZmG dDdE dEeZnG dFdG dGeZoG dHdI dIeZpG dJdK dKeZqG dLdM dMeZrG dNdO dOeZsG dPdQ dQeZtG dRdS dSeZuG dTdU dUeZvG dVdW dWeZwG dXdY dYeZxG dZd[ d[eZyG d\d] d]eZzG d^d_ d_eZ{G d`da daeZ|G dbdc dceZ}G ddde deeZ~G dfdg dgeZG dhdi dieZG djdk dkeZG dldm dmeZG dndo doeZG dpdq dqeZG drds dseZG dtdu dueZG dvdw dweZG dxdy dyeZG dzd{ d{eZG d|d} d}eZG d~d deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG ddÄ deZG ddń deZG ddǄ deZG ddɄ deZG dd˄ deZG dd̈́ deZG ddτ deZG ddф deZG ddӄ deZG ddՄ deZG ddׄ deZG ddل deZG ddۄ deZG dd݄ deZG dd߄ deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d deZG dd deZG dd deZG dd deZG dd	 d	eZG d
d deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d! d!eZG d"d# d#eZG d$d% d%eZG d&d' d'eZG d(d) d)eZG d*d+ d+eZG d,d- d-eZG d.d/ d/eZG d0d1 d1eZG d2d3 d3eZG d4d5 d5eZG d6d7 d7eZG d8d9 d9eZG d:d; d;eZG d<d= d=eZG d>d? d?eZG d@dA dAeZG dBdC dCeZG dDdE dEeZG dFdG dGeZG dHdI dIeZG dJdK dKeZG dLdM dMeZG dNdM dMeZG dOdP dPeZG dQdR dReZG dSdT dTeZdS (U      )	parse_qsl)APIView)Responsestatus   )*N)datetime	timedeltasettings)django_pbkdf2_sha256)authenticate)render_to_string)mail)EmailMultiAlternatives)User)RefreshToken)authenticated)
Categories)	PaginatorPageNotAnInteger	EmptyPage)date)Q)Avg)get_authorization_header)radianssincossqrtatan2)
strip_tags)	SyncGrant	ChatGrant
VideoGrant)Client)AccessToken)	timesincec                 C   s   d}t | }t |}t |}t |}|| }	|| }
t|
d d t|t| t|	d d   }dtt|td|  }|| }|S )Ng     @   r   )r   r   r   r!   r    )Zlat1Zlon1Zlat2Zlon2RZlat1_radZlon1_radZlat2_radZlon2_radZdlonZdlatacZdistance r-   1/var/www/html/Sam_Eipo/Eipo/customer_api/views.py	haversineC   s    0r/   c                 C   s.   |   D ] }t|trtj|r dS qdS )zP
    Returns True if any value in data contains vulgarity, False otherwise.
    TF)values
isinstancestrbetter_profanityZ	profanityZcontains_profanity)datavaluer-   r-   r.   contains_vulgarityT   s    r6   c                   @   s   e Zd Zdd ZdS )registerc                 C   s  z|j }|d}|d}|d}|d}|d}|d}d}	|sfttjdd	tjd
W S |sttjdd	tjd
W S |sttjdd	tjd
W S |sttjdd	tjd
W S t|	|sttjdd	tjd
W S tjj	|d
 }
|
rttjdd	tjd
W S tjj||d}
tjj|
| | |||d}|dkrptjj| d |  d ddd n&tjj| d |  d ddd t }||_|  d| }i }|j}d}t|tj|g|d}|jdd t|
}|dkrtjj	|dd d!
 }ntjj	|dd d!
 }|r8|j}nd}|j|j|j |j|j!|j|j"|j|j#||j$|j%d"}t&|t&|j'|d#}ttj(d$|d%tj(d
W S W n@ t)y } z&ttj*t&|d	tj*d
W  Y d }~S d }~0 0 d S )&N
first_name	last_nameemailpasswordcompanyNameloginUserTypez*^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$first_name is requiredstatus_codemessager   last_name is requiredemail is requiredpassword is requiredInvalid EmailusernamezThe email is already registeredrG   r;   )user	firstNamelastNamer:   r=   agency_companylawyer z1 lawyer has been successfully registered with us.TZnew_lawyer_registeredrA   is_readnotification_typez4  customer has been successfully registered with us.Znew_registeredz9
This is the email verification OTP to verify the email:
zEmail Verification:subject
from_emailtobodyFfail_silentlycustomer	is_active-id)customer_idr8   r9   r:   dobotpemail_verifiedr]   has_subscriptionsubscription_idprofileImagephoneNumberrefreshaccessrI   zYou are registered successfullyr@   rA   r4   )+r4   getr   r   HTTP_400_BAD_REQUESTresearchr   objectsfilterfirstcreate_userCustomercreatestripAdminNotifications
GernateOTPr_   saver:   r   r   EMAIL_HOST_USERsendr   for_userLawyerSubscriptionsorder_byCustomersSubscriptionsplan_ididrJ   rK   r^   emailVerifiedra   rc   rd   r2   access_tokenHTTP_200_OK	ExceptionHTTP_500_INTERNAL_SERVER_ERROR)selfrequestr4   r8   r9   r:   r;   company_namer=   regexuserObjcustomerObjOTPrA   context	to_emailsrS   refresh_tokensub_datar}   userDataallDataer-   r-   r.   post^   s~    





 
(&

zregister.postN__name__
__module____qualname__r   r-   r-   r-   r.   r7   ]   s   r7   c                   @   s   e Zd Zdd ZdS )SocialLoginc                 C   s  zr|j }|d}|d}|d}|d}|d}|d}|rN|sfttjddtjd	W S |sttjd
dtjd	W S |sttjddtjd	W S |sttjddtjd	W S ztjj|d}	W n: tjy   tjj	|d}
tjj
|
||||d}	Y n0 t|	j}|	j|	j|	j|	j|	j|	j|	j|	j|	j|	j|	jd}t|t|j|d}ttjd|dtjd	W S  ty } z&ttjt|dtjd	W  Y d }~S d }~0 0 d S )Nprovider	social_idr8   r9   r^   r:   z$Provider and social_id are required.r?   r   r>   rB   dob is required)socialIdrF   )rI   rJ   rK   r   r^   )r]   r8   r9   r:   r^   r_   r`   r]   ra   rc   rd   re   Login successfullyrh   )r4   ri   r   r   rj   rq   rm   DoesNotExistr   rp   rr   r   ry   rI   r~   rJ   rK   r:   r^   r_   r   ra   rc   rd   r2   r   r   r   r   )r   r   r4   r   r   r8   r9   r^   r:   r   r   r   r   r   r   r-   r-   r.   r      sR    





zSocialLogin.postNr   r-   r-   r-   r.   r      s   r   c                   @   s   e Zd Zdd ZdS )emailVerifyOtpc                 C   s  z~|j }|d}|d}tjj|d }tjj|d }|s^ttj	ddtj	dW S |j
|krttj	ddtj	dW S d	|_|  t|}tjj|d	d
d }|r|j}	nd}	|j}
t|jt|jd}td}|j|j|j|j|j|j|j|j|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|	|j|j,|	d}t|t|j-|d}ttj.d|dtj.dW S  t/y } z&ttj0t|dtj0dW  Y d }~S d }~0 0 d S )Nr:   r_   r:   rF   otp is requiredr?   r   Invalid OtpTrY   r\   rN   )nameavatarr   )r]   r8   r9   rG   phone_numbergenderr^   phone_number_twor:   facebook_urlinstagram_urlblogaddresslatitude	longituder=   house_numberstreet_nameregioncityzipcodecountryr}   profile_imagera   rb   re   zOTP verified successfullyrh   )1r4   ri   rq   rm   rn   ro   r   r   r   rj   r_   r   rv   r   ry   r|   r{   r}   r~   r2   rJ   rc   jsondumpsrK   rG   rd   r   r^   phoneNumberTwor:   r   r   r   r   r   r   r=   r   r   r   r   r   r   ra   r   r   r   r   )r   r   r4   r:   r_   r   r   r   r   r}   identityZ
python_objZj_datar   r   r   r-   r-   r.   r      sp    





zemailVerifyOtp.postNr   r-   r-   r-   r.   r      s   r   c                   @   s   e Zd Zdd ZdS )registerResendOtpc              
   C   s   z|j }|d}tjj|d }t }||_|  d| }i }|}d}	t	|	t
j|g|d}|jdd ttjd|d	tjd
W S  ty }
 z&ttjt|
dtjd
W  Y d }
~
S d }
~
0 0 d S )Nr:   r   9
OTP has been sent on you registered email successfully:
Verify OTP:rR   FrW   6OTP has been sent on you registered email successfullyr@   rA   r_   r   r?   )r4   ri   rq   rm   rn   ro   ru   r_   rv   r   r   rw   rx   r   r   r   r   r   r2   )r   r   r4   r:   r   r   rA   r   r   rS   r   r-   r-   r.   r   W  s     
zregisterResendOtp.postNr   r-   r-   r-   r.   r   V  s   r   c                   @   s   e Zd Zdd ZdS )loginc                 C   sN  z|j }|d}|d}|s:ttjddtjdW S |sVttjddtjdW S t||d}|s~ttjddtjdW S tjj|d		 }|sttjd
dtjdW S |j
dkrt }||_|  d| }i }	|j}
d}t|tj|
g|d}|jdd t|}|jdkr4tjj|ddd	 }ntjj|ddd	 }|r\|j}nd}|j|j|j|j|j|j|j |j!|j|j"|j#|j$|j%|j&|j'|j|j(|j)|j*|j+|j,|j-||j.|j/||j|j
|j|j0d}t1|t1|j2|d}ttj3d|dtj3dW S  t4yH } z&ttj5t1|dtj5dW  Y d }~S d }~0 0 d S )Nr:   r;   rC   r?   r   rD   rH   zLogin credentials are invalidrI   zInvalid Credentialsr   r   r   rR   FrW   rM   TrY   r\   rN   )r]   r8   r9   rG   r   r   r^   r   r:   r   r   r   r   r   r   r=   r   r   r   r   r   r   r}   r   ra   rb   r=   r`   roleisProfileCompletedre   r   rh   )6r4   ri   r   r   rj   r   rq   rm   rn   ro   r   ru   r_   rv   r:   r   r   rw   rx   r   ry   r=   rz   r{   r|   r}   r~   rJ   rK   rG   rd   r   r^   r   r   r   r   r   r   r   r   r   r   r   r   r   rc   ra   r   r2   r   r   r   r   )r   r   r4   r:   r;   r   r   r   rA   r   r   rS   r   r   r}   r   r   r   r-   r-   r.   r   k  s    


#z
login.postNr   r-   r-   r-   r.   r   j  s   r   c                   @   s   e Zd Zdd ZdS )forgotPasswordc              
   C   sF   z|j }|d}|d}|s:ttjddtjdW S |sVttjddtjdW S tjj|d }|sttjddtjdW S t	
|}|j}d	t| }|| }	||_|  d
|	 }
i }|}d}t|tj|g|
d}
|
jdd ttjddtjdW S  ty@ } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr:   base_urlEmail is requiredr?   r   zbase_url is requiredr   rE   z/auth/reset-password?token=z,
Forgot your Password click following link:
zForgot Password Link:rR   FrW   zLink sent successfully)r4   ri   r   r   rj   rq   rm   rn   ro   r   ry   r   r2   forgotPasswordLinkrv   r   r   rw   rx   r   r   r   )r   r   r4   r:   r   r   Zforgot_tokentokenZforgot_linkZcomplete_linkrA   r   r   rS   r   r-   r-   r.   r     s2    


zforgotPassword.postNr   r-   r-   r-   r.   r     s   r   c                   @   s   e Zd Zdd ZdS )ForgetPasswordVerificationc              
   C   s   z|j }|d}|d}|s8ttjddtjdW S |sTttjddtjdW S tjj|d }t	jj|j
jd }|| |  ttjd	dtjdW S  ty } z.tt| ttjd
dtjdW  Y d }~S d }~0 0 d S )Nnew_passwordr   ztoken Password is requiredr?   r   zNew Password is required)r   r~   zVerification done successfullyz4The link you are using is invalid, generate new link)r4   ri   r   r   rj   rq   rm   rn   ro   r   rI   r~   set_passwordrv   r   r   printr2   )r   r   r4   r   r   Zcustomer_ObjrI   r   r-   r-   r.   r     s     


zForgetPasswordVerification.postNr   r-   r-   r-   r.   r     s   r   c                   @   s   e Zd Zdd ZdS )appForgetPasswordc                 C   s   |j }|d}|s*ttjddtjdS tjj|d }|dkrZttjddtjdS tjj|d	 }|rt
dd	d
}||_|  |j}d}tdd|i}	|	}
d}tj||
||g|	d ttjd|dtjdS ttjddtjdS d S )Nr:   rC   r?   r   r   r   zPThis email does not exist in our database, please enter the valid email address.i  i'     zForget Password OTPzforget_password_otp.htmlr_   ztestsingh28@gmail.comhtml_messagezOTP send successfullyr   Email not exist)r4   ri   r   r   rj   rq   rm   rn   countro   random	randrangeforgotPasswordOTPrv   r:   r   r   	send_mailr   )r   r   r4   r:   rI   user_objZtheotpto_emailrS   r   plain_messagerT   r-   r-   r.   r     s(    
zappForgetPassword.postNr   r-   r-   r-   r.   r     s   r   c                   @   s   e Zd Zdd ZdS )verifyForgetPasswordOTPc              
   C   s  z|j d}|s*ttjddtjdW S |j d}|sRttjddtjdW S tjj|d }|sttjddtjdW S tjj||d		 }|rttj
d
dtj
dW S ttjddtjdW S W nH ty } z.t| ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr:   r   r?   r   r_   zOtp is requiredr   r   )r:   r   zSuccessfully VerifiedzInvalid otp)r4   ri   r   r   rj   rq   rm   rn   ro   lastr   r   r   r   r2   )r   r   r:   r_   Zcheck_emailr   r   r-   r-   r.   r     s"    zverifyForgetPasswordOTP.postNr   r-   r-   r-   r.   r     s   r   c                   @   s   e Zd Zdd ZdS )changeForgetPasswordc              
   C   s<  z|j d}|s*ttjddtjdW S tjj|d	 }|sXttjddtjdW S |j d}|sttjddtjdW S |j d	}|sttjd
dtjdW S ||krttj
ddtj
dW S |j}|| |  ttjddtjdW S  ty6 } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr:   rC   r?   r   r   zuser not foundr   znew password is requiredconfirm_passwordzconfirm password is requiredz+Password and confirm password are not same.Password changed successfully)r4   ri   r   r   rj   HTTP_404_NOT_FOUNDrq   rm   rn   ro   HTTP_403_FORBIDDENrI   r   rv   r   r   r   r2   )r   r   r:   r   r   r   rI   r   r-   r-   r.   r   3  s*    
zchangeForgetPassword.postNr   r-   r-   r-   r.   r   2  s   r   c                   @   s   e Zd Zdd Zdd ZdS )completeProfilec                 C   s`  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 i }tjj|d	 }t
jj|d	 }d }d }|r|jdkrtjj|ddd	 }ntjj|ddd	 }|r|j}	nd	}	|r|j}	|jj}
nd	}	d	}
|r(||j|j|j|j|j|j|jj|jjd
 |rtjj|jd tjj|jd tjj|jd t jj|jd t!jj|jd t"jj|jd t#jj|jd g}t$|}||j|j|j|j|j%|j&|j'|j|j(|j)|j|j*|	|
|j|j+|d ttj,d|dtj,dW S  tyZ } z&ttj-t|dtj-dW  Y d }~S d }~0 0 d S )Nr?   r   r   )user_idrM   TrY   r\   rN   )r:   r   r   r8   r9   r   	role_name
permission
customerId)r]   r8   r9   r:   r^   r[   r   r   r   phoneVerifiedr]   ra   rb   property_countr   nationalitytotal_property_uploadProfile fetched successfullyrh   ).r   r   r   r   HTTP_401_UNAUTHORIZEDr2   rq   rm   rn   ro   
SuperAdminr=   rz   r{   r|   r}   planr   updater:   rd   r   rJ   rK   r   r   r   SalePropertyr~   r   RentPropertyBussinessForSaleHouseWantedForRentInvestmentMyProjectInvestmentMyCompanyPropertyProjectsumr^   r[   rc   r   r   ra   r   r   r   )r   r   uidr   r   r   	admin_objZlawyer_sub_dataZcustomer_sub_datar}   r   countsr   r-   r-   r.   ri   L  s    2


zcompleteProfile.getc                 C   s  zVzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }|d}|d}|d}|d}	|d}
|d	}|d
}|d}|d}|d}|d}|d}||_||_||_|	|_|
|_||_||_||_||_||_||_d|_|dkr|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}tjj||||||||||||d |  tjj|jd |j d dd d! |j|j|j|j|j|j|j|j|j|j|j|j |j!|j!d"}|j"d#|d$}ttj#d%|d&tj#dW S  ty } z&ttj$t|dtj$dW  Y d }~S d }~0 0 d S )'Nr?   r   r   	user_typer   r   r   	your_selfpast_experiencer8   r9   r:   r^   
user_levelr   Tcompanyr   company_urlcompany_slogancompany_categorycompany_emailcompany_telephonecompany_detailfacebook_linktwitter_linkyoutube_linklinkedin_link)r   r<   
companyUrlcompanySlogancompanyCategorycompanyEmailcompanyTelephonecompanyDetailfacebookLinktwitterLinkyoutubeLinklinkedinLinkrN   z has completed their profilecomplete_profilerO   )r]   r8   r9   r:   r^   r   r   r   r`   r]   rd   ra   r=   r   Authorizationrg   rI   zProfile Added successfully)r@   rA   all_data)%r   r   r   r   r   r2   r4   rq   rm   rn   ro   ri   userTyper   r   r   biopastExperiencerJ   rK   r:   r^   rc   r   Companyrr   rv   rt   r~   r   r   rd   ra   r=   headersr   r   )r   r   r   r   r4   r   r   r   r   r   r   r   r8   r9   r:   r^   r   r   r   r   r   r   r  r  r  r  r  r  r  r   r   r-   r-   r.   r     s    2























"
zcompleteProfile.postNr   r   r   ri   r   r-   r-   r-   r.   r   K  s   Rr   c                   @   s   e Zd Zdd ZdS )uploadImagec              
   C   s   zT|j }|d}|r8ddlm} t|}t|j| }ttj	dt|dtj	dW S  t
y } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nfiler   r   uploaded successfullyr@   rA   urlr   r?   r4   ri   django.confr   ZuploadTheProfiler2   BASE_URLr   r   r   r   r   )r   r   r4   r   r   fileUrlr   r-   r-   r.   r     s    
zuploadImage.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )uploadImagePropertyProjectc              
   C   s\  z|j }|d}|d}|d}|d}|d}|rbddlm} t|}	t|j|	 }	|rddlm} t|}	t|j|	 }	|rddlm} t|}	t|j|	 }	|rddlm} t|}	t|j|	 }	|rddlm} t|}	t|j|	 }	ttj	dt|	d	tj	d
W S  t
yV }
 z&ttjt|
dtjd
W  Y d }
~
S d }
~
0 0 d S )N	image_one	image_twoimage_three
image_four
image_fiver   r   r  r  r   r?   r!  )r   r   r4   r&  r'  r(  r)  r*  r   r$  r   r-   r-   r.   r     s<    




zuploadImagePropertyProject.postNr   r-   r-   r-   r.   r%    s   r%  c                   @   s   e Zd Zdd ZdS )mobileVerifiedc           	   
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }|dsttjddtjdW S t }||_|d|_|  d| }i }ttjd|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )	Nr?   r   r   r   phone_number is requiredr   r   r   )r   r   r   r   r   r2   r4   rq   rm   rn   ro   ri   rj   ru   r_   rd   rv   r   r   )	r   r   r   r   r4   r   r   rA   r   r-   r-   r.   r   "  s$    2
	zmobileVerified.postNr   r-   r-   r-   r.   r+  !  s   r+  c                   @   s   e Zd Zdd ZdS )	resendOtpc              
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }t }||_|  d| }i }|j}	d}
t|
tj|	g|d}|jdd ttjd	|d
tjdW S  ty
 } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r   r   rR   FrW   r   r   )r   r   r   r   r   r2   r4   rq   rm   rn   ro   ru   r_   rv   r:   r   r   rw   rx   r   r   )r   r   r   r   r4   r   r   rA   r   r   rS   r-   r-   r.   r   @  s&    2zresendOtp.postNr   r-   r-   r-   r.   r-  ?  s   r-  c                   @   s   e Zd Zdd ZdS )mobileVerifyOtpc              
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|sttjddtjdW S |j|krttjddtjdW S d|_|  ttjddtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )	Nr?   r   r   r_   r   r   TzOTP has been verified)r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r_   r   rv   r   r   )r   r   r   r   r   r4   r_   r-   r-   r.   r   \  s"    2

zmobileVerifyOtp.postNr   r-   r-   r-   r.   r.  [  s   r.  c                   @   s   e Zd Zdd ZdS )	ContactUsc              
   C   sn  z&|j }|d}|d}|d}|d}|d}|sXttjddtjdW S |stttjd	dtjdW S |sttjd
dtjdW S |sttjddtjdW S |sttjddtjdW S |}d}	t|	tj|gd| d| d}
|
jdd t	j
j|d ddd ttjddtjdW S  tyh } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )N	full_namer:   phoneinterset_inrA   full_name is requiredr?   r   rC   phone is requiredzinterset_in is requiredmessage is requiredzContact Us:hello z, your message is rR   FrW   z try to contact you.TZ
contact_usrO   z#Contact us form submit successfully)r4   ri   r   r   rj   r   r   rw   rx   rt   rm   rr   r   r   r   r2   )r   r   r4   r0  r:   r1  r2  rA   r   rS   message_sendr   r-   r-   r.   r   r  s2    




 zContactUs.postNr   r-   r-   r-   r.   r/  q  s   r/  c                   @   s   e Zd Zdd ZdS )ChangePasswordc              
   C   sl  z$zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}|d}|d}|sttjddtjdW S |sttjddtjdW S t	j
j|d }||krttjddtjdW S ||d	k rttjd
dtjdW S || |  ttjddtjdW S  tyf } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   old_passwordr   zold_password is requiredznew_password is requiredr   z)Your old password is same as new passwordFzDoesn't match with old passwordr   )r   r   r   r   r   r2   r4   ri   rj   r   rm   rn   ro   check_passwordr   rv   r   r   )r   r   r   r   r4   r9  r   rI   r-   r-   r.   r     s(    2


zChangePassword.postNr   r-   r-   r-   r.   r8    s   r8  c                   @   s   e Zd Zdd Zdd ZdS )createCompanyc                 C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 g }tjj|d}t	jj
|d }|r|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jd}ttjd|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r   )Z	companyIdr<   r  r	  r
  r  r  r  r  r  r  r  companyVisioncompany_addressr   r   Fetched successfullyrh   )r   r   r   r   r   r2   rq   rm   ri   r  rn   ro   r~   r<   r  r	  r
  r  r  r  r  r  r  r  r<  r=  r   r   r   r   )r   r   r   r   r   r   
companyObjr-   r-   r.   ri     s:    2zcreateCompany.getc                 C   s  z8zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|d
 }|d}|d}|d}	|d}
|d	}|d
}|d}|d}|d}|d}|d}|d}|d}|sttjddtjdW S |s:ttjddtjdW S |	sXttjddtjdW S |
svttjddtjdW S |sttjddtjdW S |sttjddtjdW S |sttjddtjdW S |sttjddtjdW S |sttjddtjdW S |s*ttjddtjdW S |sHttjddtjdW S |sfttjddtjdW S |sttjddtjdW S |r||_||_|	|_|
|_||_||_||_||_||_||_||_||_||_|  n(tjj||||	|
|||||||||d tjjd | d! d"d#d$ ttjd%dtjdW S  tyz } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )&Nr?   r   r   r   r   r   r   r   r  r  r  r<  r  r  r  r  r=  company_name is requiredzcompany_url is requiredzcompany_slogan is requiredzcompany_category is requiredcompany_email is requiredzcompany_telephone is requiredzcompany_detail is requiredzfacebookLink is requiredzyoutubeLink is requiredzlinkedinLink is requiredztwitterLink is requiredzcompanyVision is requiredcompany_address is required)r   r<   r  r	  r
  r  r  r  r  r  r  r  r<  r=  zA new z, company is successfully registered with us.TZcompany_registeredrO   zCompany Added successfully) r   r   r   r   r   r2   r4   rq   rm   rn   ro   r  ri   rj   r<   r  r	  r
  r  r  r  r  r  r  r  r<  r=  rv   rr   rt   r   r   )r   r   r   r   r4   r   r?  r   r   r   r   r  r  r  r<  r  r  r  r  r=  r-   r-   r.   r     sp    2













zcreateCompany.postNr  r-   r-   r-   r.   r;    s    r;  c                   @   s   e Zd Zdd Zdd ZdS )updateProfilec                 C   s  zBzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
dkrtjj|ddd	 }ntjj|ddd	 }|r|j}nd}|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j
|j|j|j|j |j!|j"|j#||j$|j%||j
|j&|j
dd	}ttj'd
|dtj'dW S  ty } z&ttj(t|dtj(dW  Y d }~S d }~0 0 d S )Nr?   r   r   rM   TrY   r\   rN   )r]   r8   r9   r   r   r^   r   r:   r   r   r   r   r   r   r=   r   r   r   r   r   r   
created_atr}   r   ra   rb   r=   r`   r   r   r   rh   ))r   r   r   r   r   r2   rq   rm   rn   ro   r=   rz   r{   r|   r}   r~   rJ   rK   rd   r   r^   r   r:   r   r   r   r   r   r   r   r   r   r   r   r   rD  rc   ra   r   r   r   )r   r   r   r   r   r   r}   r   r-   r-   r.   ri     s\    2
!zupdateProfile.getc                 C   s^  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }|d}|d}|d}|d}	|d}
|d	}|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}tjj	|dj|d }|dkrnttjddtjdW S ||_||_||_|
|_||_||_||_||_||_||_||_|	|_||_||_||_||_||_||_ ||_!||_"d|_#|$  t%jj&|jd |j d ddd tjj	|d
 }|j'd krPt(jj	|dd!)d"
 }nt*jj	|dd!)d"
 }|rx|j+}nd}|j,|j|j|j|j|j|j|j|j|j|j"|j|j|j|j'|j|j|j|j|j |j!||j|j-||j'|j.|j'd#}|j/d$|d%}ttj0d&|d'tj0dW S  tyX } z&ttj1t|dtj1dW  Y d }~S d }~0 0 d S )(Nr?   r   r   r8   r9   r:   r   r   r   r^   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   z!This email is already registered.TrN   z has updated their profiler  rO   rM   rY   r\   )r]   r8   r9   r   r   r^   r   r:   r   r   r   r   r   r   r=   r   r   r   r   r   r   r}   r   ra   rb   r=   r`   r   r  r  zProfile updated successfullyrh   )2r   r   r   r   r   r2   r4   rq   rm   rn   ro   ri   excluder   rj   rJ   rK   r:   rd   r   r   r   r   r   r   r   rc   r   r   r   r   r^   r   r   r   r   rv   rt   rr   r=   rz   r{   r|   r}   r~   ra   r   r  r   r   )r   r   r   r   r4   r   r8   r9   r:   r   r   r   r^   r   r   r   r   r   r   r   r   r   r   r   r   r   Zcheck_usernamer   r}   r   r   r-   r-   r.   r   D  s    2




















" 
zupdateProfile.postNr  r-   r-   r-   r.   rC    s   5rC  c                   @   s   e Zd Zdd ZdS )addPropertyRentc           7   
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|d&}'|d'}(|d(})|d)}*|d*}+|d+},|d,}-|d-}.|d.}/|d/}0|d0}1|d1}2|d2}3|d3}4|srttjd4dtjdW S |	sttjd5dtjdW S |
sttjd6dtjdW S |sttjd7dtjdW S |sttjd8dtjdW S |sttjd9dtjdW S |'s&ttjd:dtjdW S |(sDttjd;dtjdW S |sbttjd<dtjdW S |sttjd=dtjdW S |sttjd>dtjdW S |sttjd?dtjdW S |sttjd@dtjdW S |sttjdAdtjdW S |sttjdBdtjdW S |s4ttjdCdtjdW S |sRttjdDdtjdW S |&spttjdEdtjdW S |sttjdFdtjdW S |sttjdGdtjdW S |sttjdHdtjdW S |sttjdIdtjdW S |*sttjdJdtjdW S |+s$ttjdKdtjdW S |,sBttjdLdtjdW S |-s`ttjdMdtjdW S |.s~ttjdNdtjdW S |/sttjdOdtjdW S |0sttjdPdtjdW S |1sttjdQdtjdW S |2sttjdRdtjdW S |3sttjdSdtjdW S |4s2ttjdTdtjdW S |sPttjdUdtjdW S tjj|dV}5||5_|	|5_|
|5_||5_||5_||5_||5_||5_||5_||5_||5_||5_||5_| |5_ |!|5_!|"|5_"|#|5_#|$|5_$|%|5_%||5_&||5_'||5_(||5_)||5_*||5_+||5_,||5_-||5_.||5_/||5_0|&|5_1|'|5_2|(|5_3||5_4|)|5_5|*|5_6|+|5_7|,|5_8|-|5_9|.|5_:|/|5_;|0|5_<|1|5_=|2|5_>|3|5_?|4|5_@|5A  dW|5ji}6tBjjdX|jC dY |jD ddZd[ ttjEd\|6d]tjEdW S  ty } z&ttjFt|dtjFdW  Y d }~S d }~0 0 d S )^Nr?   r   r   TrY   r   titlecategorysub_category
image_datavideovideos_thumbnailfloorroomsbedroomssize
facilitiesdepositbenefitsrental_periodavailable_from_datemonthly_rentmonthly_rent_includessecuritysecurity_amountheadingdescriptiondisplay_information
name_of_ad	visibiltyr   stater   postal_codelandmarkr   locationr   r   is_draftproperty_overviewtype_propertydescription_home
spend_timeuseless_skillfun_act	biographyprimary_roomhousing_typekey_info_bedroomstorytitle is requiredcategory is requiredsub_category is requireddescription is requiredbedrooms is requiredimage is requiredlatitude is requiredlongitude is requiredvideo is requiredrooms is requiredsize is requiredmonthly_rent is requiredrental_period is requiredfacilites is requiredavaiable_from_date is required!monthly_rent_includes is requiredsecurity is requiredlocation is requiredsecurity_amount is requiredheading is requireddisplay_information is requiredname_of_ad is requiredproperty_overview is requiredtype_property is requireddescription_home is requiredspend_time is requireduseless_skill is requiredfun_act is requiredbiography is requiredprimary_room is requiredhousing_type is requiredkey_info_bedroom is requiredstory is requireddeposit is requiredr   r~   z.A new property for rent has been added by the rN   rent_propertyrO   Added successfullyrh   )Gr   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   	tyre_typeri   rj   r   rr   rG  rH  subCategoryrJ  rK  rL  rM  rN  rO  rP  	facilitesrR  rS  r   r_  r   r`  ra  r   rT  avaiable_from_daterV  rW  rX  rY  rZ  r[  r\  r]  r^  rb  r   r   subscription_typerc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  rv   rt   rJ   rK   r   r   )7r   r   r   r   r4   r   plan_objsubscription_tyrerG  rH  rI  imagerK  rL  rM  rN  rO  rP  r  rR  rS  rT  r  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r   r_  r   r`  ra  r   rb  r   r   rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  rentpropr   r-   r-   r.   r     s    2













































"zaddPropertyRent.postNr   r-   r-   r-   r.   rF    s   rF  c                   @   s   e Zd Zdd ZdS )editPropertyRentc           7   
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |jd}|szttjddtjdW S |j}t	j
j|d }tj
j|jdd }|r|jj}nd}|d	}	|d
}
|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d } |d!}!|d"}"|d#}#|d$}$|d%}%|d&}&|d'}'|d(}(|d)})|d*}*|d+}+|d,},|d-}-|d.}.|d/}/|d0}0|d1}1|d2}2|d3}3|d4}4|d5}5|	sttjd6dtjdW S |
sttjd7dtjdW S |sttjd8dtjdW S |#sttjd9dtjdW S |sttjd:dtjdW S |s0ttjd;dtjdW S |(sNttjd<dtjdW S |)slttjd=dtjdW S |sttjd>dtjdW S |sttjd?dtjdW S |sttjd@dtjdW S |sttjdAdtjdW S |sttjdBdtjdW S |s ttjdCdtjdW S |s>ttjdDdtjdW S |s\ttjdEdtjdW S | szttjdFdtjdW S |'sttjdGdtjdW S |!sttjdHdtjdW S |"sttjdIdtjdW S |$sttjdJdtjdW S |%sttjdKdtjdW S |+s.ttjdLdtjdW S |,sLttjdMdtjdW S |-sjttjdNdtjdW S |.sttjdOdtjdW S |/sttjdPdtjdW S |0sttjdQdtjdW S |1sttjdRdtjdW S |2s ttjdSdtjdW S |3sttjdTdtjdW S |4s<ttjdUdtjdW S |5sZttjdVdtjdW S |sxttjdWdtjdW S tj
j||dX }6|	|6_|
|6_||6_||6_||6_||6_||6_||6_||6_||6_||6_||6_||6_||6_||6_ ||6_!||6_"||6_#||6_$||6_%||6_&||6_'| |6_(|!|6_)|"|6_*|#|6_+|$|6_,|%|6_-|&|6_.|'|6_/|(|6_0|)|6_1||6_2|*|6_3|+|6_4|,|6_5|-|6_6|.|6_7|/|6_8|0|6_9|1|6_:|2|6_;|3|6_<|4|6_=|5|6_>d|6_|6?  ttj@dYdtj@dW S  ty } z&ttjAt|dtjAdW  Y d }~S d }~0 0 d S )ZNr?   r   rent_idRent id is requiredr   TrY   r   rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  r   r_  r   r`  ra  r   rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  rb  r   r   rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r~   r   Updated successfully)Br   r   r   r   r   r2   r4   ri   rj   rq   rm   rn   ro   r|   r~   r   r  r   rG  rH  r  rJ  rK  rL  rM  rN  rO  rP  r  rR  rS  r   r_  r   r`  r   rT  r  rV  rW  rX  rY  rZ  r[  r\  r]  r^  rb  r   r   r  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  rv   r   r   )7r   r   r   r   r  r4   r   r  r  rG  rH  rI  r  rK  rL  rM  rN  rO  rP  r  rR  rS  r   r_  r   r`  ra  r   rT  r  rV  rW  rX  rY  rZ  r[  r\  r]  r^  rb  r   r   rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  r  r-   r-   r.   r   ]  s    2













































zeditPropertyRent.postNr   r-   r-   r-   r.   r  \  s   r  c                   @   s   e Zd Zdd ZdS )propertyRentDetailc           	   1   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj|d	 }|sttjddtjdW S |jdkrd	}n|jd
krd}nd}|j|jj|jjd |jj |jj|j|j|jt|j|j|j|j|j|jt|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|d0}ttj@d|dtj@dW S  ty } z&ttjAt|dtjAdW  Y d }~S d }~0 0 d S )Nr?   r   r   r  r  r   zNo rent property foundr   Pendingr   ApprovedDisapproved )0r~   r]   fullnamecustomer_imagerG  rH  rI  rJ  rK  rM  rN  rO  rP  r  rR  r   r_  r   r`  r   rT  r  rV  rW  rX  rY  rZ  r[  r\  r]  r^  rb  r   r   r  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  r   r  rh   )Br   r   r   r   r   r2   rq   rm   rn   ro   query_paramsri   rj   r   r~   r   rJ   rK   rc   rG  rH  r  astliteral_evalrJ  rK  rM  rN  rO  rP  r  rR  r   r_  r   r`  r   rT  r  rV  rW  rX  rY  rZ  r[  r\  r]  r^  rb  r   r   r  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  r   r   )	r   r   r   r   r   r  Zrentobjstatus_infoalldatar-   r-   r.   ri     s    2



7zpropertyRentDetail.getNr   r   r   ri   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )addSalePropertyc           2   
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|d&}'|d'}(|d(})|d)}*|d*}+|d+},|d,}-|d-}.|d.}/|s@ttjd/dtjdW S |	s^ttjd0dtjdW S |
s|ttjd1dtjdW S |sttjd2dtjdW S |sttjd3dtjdW S |sttjd4dtjdW S |sttjd5dtjdW S |sttjd6dtjdW S |s0ttjd7dtjdW S |sNttjd8dtjdW S |slttjd9dtjdW S |sttjd:dtjdW S |sttjd;dtjdW S |sttjd<dtjdW S |sttjd=dtjdW S | sttjd>dtjdW S |#s ttjd?dtjdW S |$s>ttjd@dtjdW S |%s\ttjdAdtjdW S |&szttjdBdtjdW S |'sttjdCdtjdW S |(sttjdDdtjdW S |)sttjdEdtjdW S |*sttjdFdtjdW S |,sttjdGdtjdW S |"s.ttjdHdtjdW S |+sLttjdIdtjdW S tjj|dJ}0||0_|	|0_|
|0_||0_||0_||0_||0_||0_||0_||0_||0_||0_||0_||0_ ||0_!||0_"||0_#||0_$||0_%||0_&||0_'||0_(||0_)||0_*| |0_+|!|0_,|#|0_-|$|0_.|%|0_/|&|0_0|'|0_1|(|0_2|)|0_3|*|0_4|,|0_5|-|0_6|.|0_7|"|0_8|+|0_9|/|0_:||0_;|0<  dK|0ji}1t=jjdL|j> dM |j? ddNdO ttj@dP|1dQtj@dW S  ty } z&ttjAt|dtjAdW  Y d }~S d }~0 0 d S )RNr?   r   r   TrY   r   rG  main_categoryrI  rJ  rK  rL  property_namer   r`  r   r_  r   rS  
youtubeUrlrd   priceproperty_demensionvisionrentaldescriptioon
closingFeerO  	bathroomsreadyBypropertyReferenceIdmaintenanceFeerQ  finance_rentalfinance_total_closing_feefinance_maintaince_feefinance_bill_utilitescashflow_forecast
disclaimerproperty_informationrequired_capitalresidental_property_detailsrb  r   r   rc  ro  main_category is requiredrq  rw  property_name is requiredpostal_code is requiredphoneNumber is requiredprice is requiredproperty_demension is requiredvision is requiredrental is requireddescriptioon is requiredrs  bathrooms is requiredreadyBy is requiredpropertyReferenceId is requiredfinance_rental is required%finance_total_closing_fee is required"finance_maintaince_fee is required!finance_bill_utilites is requiredcashflow_forecast is requireddisclaimer is required property_information is requiredrequired_capital is requiredr  facilities is required'residental_property_details is requiredr   r~   z.A new property for sale has been added by the rN   sale_propertyrO   r  rh   )Br   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   r   rr   rG  r  r  rJ  rK  rL  r  r   r   r_  r   benfitsr`  r  rd   r  r  r  r  r  r  rO  r  r  r  r  r  r  r  r  r  r  r  r  rb  r   r   rQ  r  rc  r  rv   rt   rJ   rK   r   r   )2r   r   r   r   r4   r   r  r  rG  r  rI  rJ  rK  rL  r  r   r`  r   r_  r   r  r  rd   r  r  r  r  r  r  rO  r  r  r  r  rQ  r  r  r  r  r  r  r  r  r  rb  r   r   rc  sale_objr   r-   r-   r.   r   T  s    2








































"zaddSaleProperty.postNr   r-   r-   r-   r.   r  S  s   r  c                   @   s   e Zd Zdd ZdS )editSalePropertyc           2   
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |jd}|szttjddtjdW S |j}t	j
j|d }tj
j|jdd }|r|jj}nd}|d	}	|d
}
|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d } |d!}!|d"}"|d#}#|d$}$|d%}%|d&}&|d'}'|d(}(|d)})|d*}*|d+}+|d,},|d-}-|d.}.|d/}/|d0}0|	shttjd1dtjdW S |
sttjd2dtjdW S |sttjd3dtjdW S |sttjd4dtjdW S |sttjd5dtjdW S |sttjd6dtjdW S |sttjd7dtjdW S |s:ttjd8dtjdW S |sXttjd9dtjdW S |svttjd:dtjdW S |sttjd;dtjdW S |sttjd<dtjdW S |sttjd=dtjdW S |sttjd>dtjdW S | sttjd?dtjdW S |!s*ttjd@dtjdW S |$sHttjdAdtjdW S |%sfttjdBdtjdW S |&sttjdCdtjdW S |'sttjdDdtjdW S |(sttjdEdtjdW S |)sttjdFdtjdW S |*sttjdGdtjdW S |+sttjdHdtjdW S |-s8ttjdIdtjdW S |#sVttjdJdtjdW S |,stttjdKdtjdW S tj
j|dL }1|	|1_|
|1_||1_||1_||1_||1_||1_||1_||1_||1_||1_||1_||1_||1_||1_ ||1_!||1_"||1_#||1_$||1_%||1_&||1_'||1_(| |1_)|!|1_*|"|1_+|$|1_,|%|1_-|&|1_.|'|1_/|#|1_0|(|1_1|)|1_2|*|1_3|+|1_4|-|1_5|.|1_6|/|1_7|,|1_8d|1_|19  ttj:dMdtj:dW S  ty } z&ttj;t|dtj;dW  Y d }~S d }~0 0 d S )NNr?   r   sale_idSale id is requiredr   TrY   r   rG  r  rI  rJ  rK  rL  r  r   r   r_  r   rS  r`  r  rd   r  r  r  r  r  r  rO  r  r  r  r  rQ  r  r  r  r  r  r  r  r  r  rb  r   r   rc  ro  r  rq  rw  r  r  r  r  r  r  r  r  rs  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  )<r   r   r   r   r   r2   r4   ri   rj   rq   rm   rn   ro   r|   r~   r   r  r   rG  r  r  rJ  rK  rL  r  r   r   r_  r   r  r`  r  rd   r  r  r  r  r  r  rO  r  r  r  r  r  r  r  r  rQ  r  r  r  r  rb  r   r   r  rv   r   r   )2r   r   r   r   r  r4   r   r  r  rG  r  rI  rJ  rK  rL  r  r   r   r_  r   r  r`  r  rd   r  r  r  r  r  r  rO  r  r  r  r  rQ  r  r  r  r  r  r  r  r  r  rb  r   r   rc  r  r-   r-   r.   r     s    2








































zeditSaleProperty.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )salePropertyDetailsc           
   /   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|jd}|sttjddtjdW S tjj|d	 }|sttjddtjdW S |jdkrd	}n|jd
krd}nd}|j|jj|jjd |jj |jj|j|j|jt|j|j|j|j|j|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8t|j9|j:|j;|j<|j=|j>|d.}	ttj?d|	dtj?dW S  ty } z&ttj@t|dtj@dW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   r  r   zNo sale property foundr   r  r   r  r  r  ).r~   r]   r  r  rG  r  rI  rJ  rK  rL  r  r   r   r_  r   rS  r`  r  rd   r  r  r  r  r  r  rO  r  r  r  r  r  r  r  r  r  r  r  r  r  facilityrb  r   r   r  rc  r   r>  rh   )Ar   r   r   r   r   r2   rq   rm   rn   ro   r4   r  ri   rj   r   r~   r   rJ   rK   rc   rG  r  r  r  r  rJ  rK  rL  r  r   r   r_  r   r  r`  r  rd   r  r  r  r  r  r  rO  r  r  r  r  r  r  r  r  r  r  r  r  r  rQ  rb  r   r   r  rc  r   r   )
r   r   r   r   r   r4   property_idsaleobjr  r  r-   r-   r.   ri   |  s    2



6zsalePropertyDetails.getNr  r-   r-   r-   r.   r  {  s   r  c                   @   s   e Zd Zdd ZdS )addCompanySeekingEquityc           :   
   C   s8  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|d&}'|d'}(|d(})|d)}*|d*}+|d+},|d,}-|d-}.|d.}/|d/}0|d0}1|d1}2|d2}3|d3}4|d4}5|d5}6|d6}7tjj|d7}8||8_|	|8_|
|8_||8_||8_||8_||8_||8_||8_||8_||8_||8_||8_||8_||8_ ||8_!||8_"||8_#||8_$||8_%||8_&||8_'||8_(||8_)| |8_*|!|8_+|"|8_,|#|8_-|$|8_.|%|8_/|&|8_0|'|8_1|(|8_2|)|8_3|*|8_4|+|8_5|,|8_6|-|8_7|.|8_8|/|8_9|0|8_:|1|8_;|2|8_<|3|8_=|4|8_>|5|8_?|6|8_@|7|8_A||8_B|8C  d8|8ji}9tDjjd9|jE d: |jF dd;d< ttjGd=|9d>tjGdW S  ty2 } z&ttjHt|dtjHdW  Y d }~S d }~0 0 d S )?Nr?   r   r   TrY   r   short_titler[  about_the_ownerr   property_imageproperty_videorL  company_logomaximum_drawingminimum_drawingshare_for_saleprice_per_sharenumber_of_shareself_reportnominal_share_pricee_postissue_account_numbershare_before_sharename_of_shareholderbeskrivelseestablish_yearpremises_frombackground_for_salecompany_websitenumber_of_employeer  r  youtubeupload_team_dataupload_team_sizeupload_team_nameupload_board_dataupload_board_nameupload_board_sizeupload_partner_dataupload_partner_nameupload_partner_sizerb  r   r_  r   zip_codera  share_holder_imageenter_sharesr   r   rc  r   r~   7A new company seeking for equity has been added by the rN   r  rO   r  rh   )Ir   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   CompanySeekingEquityrr   r  r[  r  r   r  r  rL  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  r  r  r  rb  r   r_  r   r  ra  r  r  r   r   rc  r  rv   rt   rJ   rK   r   r   ):r   r   r   r   r4   r   r  r  r  r[  r  r   r  r  rL  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  r  r  r  rb  r   r_  r   r  ra  r  r  r   r   rc  r  r   r-   r-   r.   r     s    2
















































"zaddCompanySeekingEquity.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )updateCompanySeekingEquityc           :   
   C   s4  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|d}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|d&}'|d'}(|d(})|d)}*|d*}+|d+},|d,}-|d-}.|d.}/|d/}0|d0}1|d1}2|d2}3|d3}4|d4}5|d5}6|d6}7tjj	|d7
 }8||8_|	|8_|
|8_||8_||8_||8_||8_||8_||8_||8_||8_||8_||8_||8_||8_||8_||8_||8_ ||8_!||8_"||8_#||8_$||8_%||8_&| |8_'|!|8_(|"|8_)|#|8_*|$|8_+|%|8_,|&|8_-|'|8_.|(|8_/|)|8_0|*|8_1|+|8_2|,|8_3|-|8_4|.|8_5|/|8_6|0|8_7|1|8_8|2|8_9|3|8_:|4|8_;|5|8_<|6|8_=|7|8_>d8|8_|8?  d9|8ji}9t@jjAd:|jB d; |jC dd<d= ttjDd>|9d?tjDdW S  ty. } z&ttjEt|dtjEdW  Y d }~S d }~0 0 d S )@Nr?   r   r   TrY   r  r  r[  r  r   r  r  rL  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  r  r  r  rb  r   r_  r   r  ra  r  r  r   r   rc  r   r   r~   r	  rN   r  rO   r  rh   )Fr   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   ri   r
  r  r[  r  r   r  r  rL  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  r  r  r  rb  r   r_  r   r  ra  r  r  r   r   rc  rv   rt   rr   rJ   rK   r   r   ):r   r   r   r   r4   r   r  r  r  r[  r  r   r  r  rL  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  r  r  r  rb  r   r_  r   r  ra  r  r  r   r   rc  r  r   r-   r-   r.   r   f  s    2
















































"zupdateCompanySeekingEquity.postNr   r-   r-   r-   r.   r  e  s   r  c                   @   s   e Zd Zdd ZdS )addPropertyDevelopersc           Z   
   C   s   zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|d&}'|d'}(|d(})|d)}*|d*}+|d+},|d,}-|d-}.|d.}/|d/}0|d0}1|d1}2|d2}3|d3}4|d4}5|d5}6|d6}7|d7}8|d8}9|d9}:|d:};|d;}<|d<}=|d=}>|d>}?|d?}@|d@}A|dA}B|dB}C|dC}D|dD}E|dE}F|dF}G|dG}H|dH}I|dI}J|dJ}K|dK}L|dL}M|dM}N|dN}O|dO}P|dP}Q|dQ}R|dR}S|dS}T|dT}U|dS}T|dU}V|dV}Wtjj|dW}X|W|X_||X_|	|X_|
|X_||X_||X_||X_||X_||X_||X_||X_||X_||X_||X_||X_ ||X_!||X_"||X_#||X_$||X_%||X_&||X_'||X_(||X_)||X_*| |X_+|!|X_,|"|X_-|#|X_.|$|X_/|%|X_0|&|X_1|'|X_2|(|X_3|)|X_4|*|X_5|+|X_6|,|X_7|-|X_8|.|X_9|/|X_:|0|X_;|1|X_<|2|X_=|3|X_>|4|X_?|5|X_@|6|X_A|7|X_B|8|X_C|9|X_D|:|X_E|;|X_F|<|X_G|=|X_H|>|X_I|?|X_J|@|X_K|A|X_L|B|X_M|C|X_N|D|X_O|E|X_P|F|X_Q|G|X_R|H|X_S|I|X_T|J|X_U|K|X_V|L|X_W|M|X_X|N|X_Y|O|X_Z|P|X_[|Q|X_\|R|X_]|S|X_^|T|X__|U|X_`|V|X_a||X_b|Xc  dX|Xji}YttjddY|YdZtjddW S  ty } z&ttjet|dtjedW  Y d }~S d }~0 0 d S )[Nr?   r   r   TrY   r   r  videosrL  documentproperty_typeassest_equalityinvestment_highlightequity_pricelp_equity_percentgp_equity_percentdebt_percentr  r[  bussiness_planminimum_investmentinvestment_strategyexpected_periodfinancedtarget_return_on_cost
target_irr
offered_byestimated_first_distributiontype_of_investmentr   measure_of_multiplierr   minimum_goalr  the_valuationr  no_of_drawingsr  remaining_sharer  short_description
why_investproblem_to_be_solvedour_solutionstart_date_dataend_date_datar  price_of_shareissue_minimum_investmentissue_maximum_investmentvalue_before_issueraised_capital_minimum_limitraised_capital_maximum_limit#share_of_company_sold_minimum_limit#share_of_company_sold_maximum_limitr  discussion_descriptionnew_exisiting_detailsdrawing_on_behalf
foundationfoundation_namesatutessatutes_nameannual_accountannual_account_name	valuationvaluation_nameagreement_on_coagreement_on_co_nameconversion_of_debtconversion_of_debt_namebalance_sheetbalance_sheet_nameresult_reportresult_report_namer   r_  r   r`  ra  r   rb  r   r   rc  r  r   r~   r  rh   )fr   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   PropertyDevelopersrr   r  r  r  rL  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  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r+  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  r   r_  r   r`  ra  r   rb  r   r   rc  r  rv   r   r   )Zr   r   r   r   r4   r   r  r  r  r  rL  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  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r+  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  r   r_  r   r`  ra  r   rb  r   r   rc  r  r  r   r-   r-   r.   r     sh   2

















































































zaddPropertyDevelopers.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )updatePropertyDevelopersc           [   
   C   s.  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|d&}'|d'}(|d(})|d)}*|d*}+|d+},|d,}-|d-}.|d.}/|d/}0|d0}1|d1}2|d2}3|d3}4|d4}5|d5}6|d6}7|d7}8|d8}9|d9}:|d:};|d;}<|d<}=|d=}>|d>}?|d?}@|d@}A|dA}B|dB}C|dC}D|dD}E|dE}F|dF}G|dG}H|dH}I|dI}J|dJ}K|dK}L|dL}M|dM}N|dN}O|dO}P|dP}Q|dQ}R|dR}S|dS}T|dT}U|dU}V|dT}U|dV}W|dW}Xtjj	|dX
 }Y|X|Y_|	|Y_|
|Y_||Y_||Y_||Y_||Y_||Y_||Y_||Y_||Y_||Y_||Y_||Y_||Y_||Y_ ||Y_!||Y_"||Y_#||Y_$||Y_%||Y_&||Y_'||Y_(| |Y_)|!|Y_*|"|Y_+|#|Y_,|$|Y_-|%|Y_.|&|Y_/|'|Y_0|(|Y_1|)|Y_2|*|Y_3|+|Y_4|,|Y_5|-|Y_6|.|Y_7|/|Y_8|0|Y_9|1|Y_:|2|Y_;|3|Y_<|4|Y_=|5|Y_>|6|Y_?|7|Y_@|8|Y_A|9|Y_B|:|Y_C|;|Y_D|<|Y_E|=|Y_F|>|Y_G|?|Y_H|@|Y_I|A|Y_J|B|Y_K|C|Y_L|D|Y_M|E|Y_N|F|Y_O|G|Y_P|H|Y_Q|I|Y_R|J|Y_S|K|Y_T|L|Y_U|M|Y_V|N|Y_W|O|Y_X|P|Y_Y|Q|Y_Z|R|Y_[|S|Y_\|T|Y_]|U|Y_^|V|Y__|W|Y_`||Y_a|Yb  dY|Yji}ZttjcdZ|Zd[tjcdW S  ty( } z&ttjdt|dtjddW  Y d }~S d }~0 0 d S )\Nr?   r   r   TrY   r   r  r  r  rL  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  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r+  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  r   r_  r   r`  ra  r   rb  r   r   rc  r  r   r~   r  rh   )er   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rF  r  r  r  rL  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  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r+  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  r   r_  r   r`  ra  r   rb  r   r   rc  r  rv   r   r   )[r   r   r   r   r4   r   r  r  r  r  r  rL  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  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r+  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  r   r_  r   r`  ra  r   rb  r   r   rc  r  r  r   r-   r-   r.   r   	  sj   2


















































































zupdatePropertyDevelopers.postNr   r-   r-   r-   r.   rG  	  s   rG  c                   @   s   e Zd Zdd ZdS )	myListingc              W      s  zt |}W n> tyJ } z&ttjt|dtjdW  Y d }~S d }~0 0 |jd |jd}|jd}|jd}|jd|jd}tj	j
|d	 }tj	j
|d
dd}	tj	j
|d
dd}
tj	j
|d
dd}tj	j
|d
dd}tj	j
|d
dd}tj	j
|d
dd}tj	j
|d
dd}tj	j
|d
dd}tj	j
|d
dd}g }|	D ]x}tj	j
|j|d }|rd
}nd}|jdkrd}n|jdkrd}nd}||j|jjd |jj |j|j|jr|j rt !|j ng |j"|j#|j|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/||j0|j1|j2|j3|j4|j5|j6|j7r|j7 rt !|j7 ng |j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|jD|jE|jF|jG||jH|jI|jJ|jKdd3 qt|
D ]}tLj	j
|j|d }|rd
}nd}|jdkr2d}n|jdkrDd}nd}|jMrj|jNrj|jMd |jN }n.|jMr|jNs|jM}n|jMs|jNr|jN}||j|j|jj||jO|jP|jQr|jQ rt !|jQng |jM|jN|jR|jS|jT|jU|jA|jV|jW|jX|jY|jZr"|jZ r"t !|jZng |j[|j\|j]|j^|jF|jG|jE|j_|j`|ja|jb|jc|jd|je|jf|jg|jd|j/|jh|j.|ji|jj|jk|j$|||jHdd/ q|D ]}tlj	j
|j|d }|rd
}nd}|jdkrd}n|jdkrd}nd}||j|jj|jjd |jj |jr4|j r4t !|j ng |jm|jE|jn|jo|jp|jo|jq|jr|j/|jh|j.|ji|jj|js|jE|jF|jG|||jHdd q|D ]}ttj	j
|j|d }|rd
}nd}|jdkrd}n|jdkrd}nd}||j|ju|jv|jw|jr |j r t !|j ng |jx|j#||jm|js|j/|jh|j.|ji|jy|jz|jr|j{|j||j}|j~|j|j|j|j|j|j|jE|jF|jG|jE|j|jr|jH|dd$ q|D ]2}tj	j
|j|d  }|rd
}nd}|jdkrd}n|jdkrd}nd}||j|ju|j|jw|jr4|j r4t !|j ng |jx|jk|j|j|j|jrn|j rnt !|j ng |j/|jh|j.|ji|jj|js|jW|j|j|j|j|j|j|j$|j|j|j|jE|jF|jG|j|j|||jHd!d"% q|D ],}tj	j
|j|d# }|r
d
}nd}|jdkr d}n|jdkr2d}nd}||j|jjd |jj |jj|jjz|jj|j|j$|j|j|j|j#|j|j|jr|j rt !|j ng |j|j|j|j|j|j|j|j|j|j|j|j|jj|j|j.|jh|j/|jE|jF|jG|j|||jHd$d%' q|D ]}|jdk	r.d}n|jdk	r@d}nd}tj	j
|j|d& }|	rfd
}nd}||j|jjd |jj |jj|jjz|jjt !|j|j"|j#|j7|jm|j|j|j|j|j|j|j|j|j$|j|j|j|j|j|j|j|j|j|j|jU|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j=|j|j|j|j|jE|j/|jh|j.|ji|jj|jF|jG|j|jא
r|jjnd |jf|jp|j||jH|d'd(S 	q|d)krΈ r
 fd*d+|D }|d,kr( fd-d+|D }n|d.krD fd/d+|D }|d0kr`t|d1d2 d3}n|d4kr|t|d5d2 d
d6}|d7krt|d8d2 d3}n|d9krt|d:d2 d
d6}rއfd;d+|D }nt|d<d2 d3}ttjd=|d>tjdS )?Nr?   r   type
sort_pricesort_upload_datefilter_datastatus_filterfeature_filterr   T)r   end_date__isnullr\   	bussinessr   Fr   r  r   r  r  r  BusinessSale)3r~   customer_namer   r  rJ  r  rL  r   r[  total_turnoverrentestablished_yearpremisesyears_of_workoperation_conceptoperation_opening_hoursturnover_last_yearsalary_percentager   r   is_favouritecostreason_for_salewebsite_linknumber_of_employesother_operating_costareaterm_of_leaser  detailsservice
operationsmarket_initativesadvantage_and_oppurtunityr<  
owner_namer1  	telephoner:   r   public_orderavaiable_attachmentrb  r   r   r   is_ad_featuredshareholder_nameshareholder_shareshareholder_descriptionrI  
house_rentr   	HouseRent)/r~   r  r]   r  profile_visiblityprofile_hiddenrJ  r8   r9   r   r^   r   r   r:   quantityrT  max_rent	from_daterl  number_of_peoplemax_month_pricedesired_start_datedesired_arear   r   rb  about	educationmartial_statuscleanlinessparty_habitsworkinterestr  rc  r  r   r_  r   r`  ra  rM  r[  r   r]  rn  rI  propertyr   r   )r~   r]   r  rJ  r  rb  rent_to_landlordreturn_on_investmentcreated_datefilter_pricecashflow_pcmr  r   r_  r   r`  ra  r   rb  r   r   r]  r   rn  rI  saler   r   )$r~   rG  r  rI  rJ  rK  rL  r]  r  r   r   r_  r   r`  r  rd   r  r  r  r  r  r  rO  r  r  r  r  rb  r   r   rb  r  r  rn  r   rI  rU  r   r   )%r~   rG  rH  rI  rJ  rK  rM  rN  rO  rP  r  r   r_  r   r`  ra  r   rT  r  rV  rW  rX  rY  rZ  r[  r\  r]  r^  rb  r   r   r  r  r]  r   rn  rI  )company_seek_idr   seeking_equity)'r~   rS  r]   customer_phone_numbercustomer_imagesr  r[  r  r   r  rL  r  r  rJ  r  r  r  r  r  r  r  r  r  r  r  r  ra  r  r   r_  r   rb  r   r   r  r]  r   rn  rI  )property_developer_idr   property_developers)Sr~   rS  r]   r  r  rJ  r  rL  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"  r  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  rb  r   r_  r   r  ra  r   r   r   agencyr  
start_dateend_dater   rn  r]  rI  truec                    s   g | ]}|d   kr|qS rI  r-   .0r4   selected_typer-   r.   
<listcomp>      z!myListing.get.<locals>.<listcomp>Truec                    s   g | ]}|d   kr|qS rn  r-   r  r  r-   r.   r    r  Falsec                    s   g | ]}|d   kr|qS r  r-   r  r  r-   r.   r    r  	ascendingc                 S   s   | d S Nr  r-   xr-   r-   r.   <lambda>  r  zmyListing.get.<locals>.<lambda>key	desendingc                 S   s   | d S r  r-   r  r-   r-   r.   r    r  r  reverseoldestc                 S   s   | d S Nr  r-   r  r-   r-   r.   r    r  latestc                 S   s   | d S r  r-   r  r-   r-   r.   r    r  c                    s   g | ]}|d   kr|qS r   r-   r  )rM  r-   r.   r    r  c                 S   s   |  dd S )Nrn  Tri   r  r-   r-   r.   r    r  r>  rh   )r   r   r   r   r   r2   GETri   rq   rm   rn   ro   r   r{   r   r   r   r   r   r   r
  rF  BussinessForSaleFavouriter~   appendr   rJ   rK   r   r  rJ  rs   r  r  r  rL  r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r   r   r^  r_  r`  ra  rb  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   is_featuredro  rp  rq  HouseRentFavouriter8   r9   ru  rv  r  r   r^   r   r   rw  rT  rx  ry  rl  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  rc  r_  r`  ra  rM  PropertyProjectFavouriter  r  r  r  r  r  r   SalePropertyFavouriterG  r  r  rK  r  rd   r  r  r  r  r  rO  r  r  r  r  rD  RentPropertyFavouriterH  rN  rP  r  r  rV  rW  rX  rY  rZ  r\  r]  r^  CompanySeekingEquityFavouriterc   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  PropertyDevelopersFavouriter  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)  r*  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r8  r:  r>  r@  rB  rD  r  r  sortedr   )r   r   r   r   rJ  rK  rL  rN  r   bussinessSalehouseWantedRentinvestmentProjectinvestmentCompanypropertyProjectsalePropertyrentPropertyr  propertyDeveloperr   bsfavourite_obj	favouriter  hWrr   ppsprpcspdr-   )r  rM  r.   ri   
  s   0
&&5
""P&
&(
&&)
&)

X






zmyListing.getNr  r-   r-   r-   r.   rH  
  s   rH  c                   @   s   e Zd Zdd ZdS )getCategoriesc              
   C   s   zNg }t jjdd}|D ]}|j|jd}|| qttjd|dtjdW S  t	y } z&ttj
t|dtj
dW  Y d }~S d }~0 0 d S )Nr   r   )r~   category_namer>  rh   r?   )r   rm   rn   r~   r  r  r   r   r   r   r   r2   )r   r   r   ZcategoryObjrH  r4   r   r-   r-   r.   ri     s    zgetCategories.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )bussinessForSalec           <   6   C   s`  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|d&}'|d'}(|d(})|d)}*|d*}+|d+},|d,}-|d-}.|d.}/|d/}0|d0}1|d1}2|d2}3|d3}4|d4}5|d5}6|d6}7|d7}8|d8}9|sttjd9dtjdW S |	sttjd:dtjdW S |
sttjd;dtjdW S |sttjd<dtjdW S |s&ttjd=dtjdW S |sDttjd>dtjdW S |sbttjd?dtjdW S |sttjd@dtjdW S |sttjdAdtjdW S |sttjdBdtjdW S |sttjdCdtjdW S |sttjdDdtjdW S |sttjdEdtjdW S |s4ttjdFdtjdW S |sRttjdGdtjdW S |spttjdBdtjdW S |sttjdHdtjdW S |sttjdCdtjdW S |sttjdIdtjdW S |sttjdJdtjdW S |sttjdKdtjdW S |s$ttjdLdtjdW S |sBttjdMdtjdW S |s`ttjdNdtjdW S |s~ttjdOdtjdW S | sttjdPdtjdW S |!sttjdQdtjdW S |"sttjdRdtjdW S |#sttjdSdtjdW S |$sttjdTdtjdW S |%s2ttjdUdtjdW S |&sPttjdVdtjdW S |'snttjdWdtjdW S |(sttjdXdtjdW S |)sttjdYdtjdW S |*sttjdZdtjdW S |0sttjd[dtjdW S |1sttjd\dtjdW S |2s"ttjd]dtjdW S |3s@ttjd^dtjdW S |9s^ttjd_dtjdW S tjj|||	|
|9|||||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|,|-t ||/|0|1|2|3|4|5|6|7|8d`4}:da|:ji};tjjdb|j dc |j dddde ttjdf|;dgtjdW S  tyZ } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )hNr?   r   r   TrY   r   r  rJ  r  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   	agency_idturnoverr   r_  r   r`  ra  rM  ro  rp  rq  rL  short_title is requiredimage_data  is requiredvideos is requiredr@  rr  ztotal_turnover is requiredrent hours is requiredestablished_year is requiredyears_of_work  is requiredoperation_concept is requiredreason_for_sale is required$operation_opening_hours  is requiredturnover_last_year is requiredsalary_percentage is required other_operating_cost is requiredcost is requiredwebsite_link is requirednumber_of_employes is requiredarea is requiredrent is requiredterm_of_lease is requireddetails is requiredservice is requiredoperations is requiredmarket_initatives is required%advantage_and_oppurtunity is requiredvaluation is requiredowner_name is requiredr4  telephone is requiredrC   company is requiredpublic_order is requiredavaiable_attachment is requiredcountry is requiredstate is requiredcity is requiredr  zvideos_thumbnail is required)4r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r  r  r  r   r_  r   r`  ra  rM  ro  rp  rq  r~   z/A new bussiness for sale has been added by the rN   Zbussiness_salerO   z4A new bussiness for sale has been Added successfullyrh   )r   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   r   rr   r	   nowrt   rJ   rK   r   r   )<r   r   r   r   r4   r   r  r  r  rJ  r  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r  r  r   r_  r   r`  ra  rM  ro  rp  rq  rL  Zbussine_saler   r-   r-   r.   r     sF   2




















































8"zbussinessForSale.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )editBussinessForSalec           5   
   C   s$  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|sttjddtjdW S tjj	|d	
 }	|d
}
|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d } |d!}!|d"}"|d#}#|d$}$|d%}%|d&}&|d'}'|d(}(|d)})|d*}*|d+}+|d,},|d-}-|d.}.|d/}/|d0}0|d1}1|d2}2|d3}3|d4}4|
sttjd5dtjdW S |sttjd6dtjdW S |sttjd7dtjdW S |sttjd8dtjdW S |sttjd9dtjdW S |s6ttjd:dtjdW S |sTttjd;dtjdW S |srttjd<dtjdW S |sttjd=dtjdW S |sttjd>dtjdW S |sttjd?dtjdW S |sttjd@dtjdW S |sttjdAdtjdW S |s&ttjdBdtjdW S |sDttjd=dtjdW S |sbttjdCdtjdW S |sttjd>dtjdW S |sttjdDdtjdW S |sttjdEdtjdW S |sttjdFdtjdW S |sttjdGdtjdW S |sttjdHdtjdW S |!s4ttjdIdtjdW S |"sRttjdJdtjdW S |#spttjdKdtjdW S |$sttjdLdtjdW S |%sttjdMdtjdW S |&sttjdNdtjdW S |'sttjdOdtjdW S |(sttjdPdtjdW S |)s$ttjdQdtjdW S |*sBttjdRdtjdW S |+s`ttjdSdtjdW S |,s~ttjdTdtjdW S |-sttjdUdtjdW S |
|	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_ ||	_!||	_"||	_#||	_$||	_%||	_&||	_||	_'| |	_(|!|	_)|"|	_*|#|	_+|$|	_,|%|	_-|&|	_.|'|	_/|(|	_0|)|	_1|*|	_2|+|	_3|,|	_4|-|	_5|.|	_6|/|	_7|0|	_8|/|	_7|0|	_8t9: |	_;||	_<d|	_|2|	_=|3|	_>|4|	_?|	@  ttjAdVdtjAdW S  ty } z&ttjBt|dtjBdW  Y d }~S d }~0 0 d S )WNr?   r   r   TrY   r   r  property_id is requiredr   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r  ro  rp  rq  r  r  r  r@  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  zowner_mobile_number is requiredrC   r  r  r  z%Business for sale edited successfully)Cr   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r	   r  r  r  ro  rp  rq  rv   r   r   )5r   r   r   r   r4   r   r  r  r  ZbusinessSaler  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r  ro  rp  rq  r-   r-   r.   r     s"   2














































zeditBussinessForSale.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )myBussinessForsalec                 C   s$  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }| j
jd}|sttjddtjdW S | j
jd}|sttjddtjdW S tjj|d	}tj  }t||}	z|	|}W n< ty
   |	d
}Y n  ty(   |	|	j}Y n0 g }
|D ]}|jdkrHd}n|jd
krZd}nd}|j|jj|jjd |jj |j|j|j|j|j|j|j |j!|d}|
"| ttj#d|
|r|nd
|	jt$||d  W S W n@ ty } z&ttj%t|dtj%dW  Y d }~S d }~0 0 d S )Nr?   r   r   pagePage Number id is requiredr@   status_messagepage_per_dataPage per data id is requiredr   r   r   r  r  r  r  )r~   r]   rS  rj  owner_mobile_numberowner_emailr  rV  rT  r[  rb  r   r>  r@   r  r4   r  Z
page_countper_pagetotal)&r   r   r   r   r   r2   rq   rm   rn   ro   r   r  ri   rj   r   allr   r   r  r   r   	num_pagesr~   r   rJ   rK   rj  r  r  r  rV  rT  r[  rb  r  r   lenr   )r   r   r   r   r   r  r  r  total_count	paginatorr   r  r  r  r-   r-   r.   ri   1  sZ    2

4zmyBussinessForsale.getNr  r-   r-   r-   r.   r  0  s   r  c                   @   s   e Zd Zdd ZdS )bussinessForSaleDetailc           	   5   C   s&  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }| j
jd}|stdditjdW S tjj||d	 }|stdditjdW S |jd	krd
}n|jdkrd}nd}|j|jjd |jj |j|jt|j|j|j|j|j|j|j|j|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j$|j)|j*t|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<||j=|j>|j?|j@|jA|jB|jCd4}ttjDd|dtjDdW S  ty  } z&ttjEt|dtjEdW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   rA   zBussiness sale Id is requiredr  zNo bussiness sale foundr   r  r   r  r  r  )4r~   rS  r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rb  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   rc  r   r  r   r_  r   r`  ra  rM  r>  rh   )Fr   r   r   r   r   r2   rq   rm   rn   ro   r   r  ri   rj   r   r~   r   rJ   rK   r   r  r  r  rJ  r  rL  r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   rc  r  r   r_  r   r`  ra  rM  r   r   )	r   r   r   r   r   bussiness_idbussiness_objr  r  r-   r-   r.   ri   f  s    2



7zbussinessForSaleDetail.getNr  r-   r-   r-   r.   r  e  s   r  c                   @   s   e Zd Zdd ZdS )houseWantedForRentc           0   
   C   s  z>zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|d&}'|d'}(|d(})|d)}*|d*}+|d+},|d,}-|s(td-d.itjdW S |sBtd-d/itjdW S |s\td-d0itjdW S |svtd-d1itjdW S |std-d2itjdW S |std-d3itjdW S |std-d4itjdW S |std-d5itjdW S |std-d6itjdW S |std-d7itjdW S |s,td-d8itjdW S |sFtd-d9itjdW S |%s`td-d:itjdW S |'sztd-d;itjdW S |(std-d<itjdW S |)std-d=itjdW S |*std-d>itjdW S |+std-d?itjdW S |,std-d@itjdW S tjj|dA}.||._|	|._|
|._||._||._||._||._||._||._||._||._||._||._||._ ||._!||._"||._#||._$||._%||._&|&|._'|'|._(|(|._)|)|._*|*|._+|+|._,|,|._-||._.||._/||._0||._1||._2| |._3|!|._4|"|._5|#|._6|$|._7|%|._8|-|._9|.:  dB|.ji}/t;jjdC|j< dD |j= ddEdF ttj>dG|/dHtj>dW S  ty } z&ttj?t|dtj?dW  Y d }~S d }~0 0 d S )INr?   r   r   TrY   r   r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r   r_  r   r`  ra  rM  r[  r   r   rb  r~  r  r  r  r  r  r  rc  rA   rt  r>   rB   gender is requiredr   nationality is requiredr,  rC   r{  r  number_of_people is requiredmax_month_price is requiredr  education is requiredmartial_status is requiredcleanliness is requiredparty_habits is requiredwork is requiredinterest is requiredr   r~   z2A new house wanted for rent has been added by the rN   rs  rO   r  rh   )@r   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   r   rr   r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r   r_  r   r`  ra  rM  r[  r   r   rb  rc  rv   rt   rJ   rK   r   r   )0r   r   r   r   r4   r   r  r  r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r   r_  r   r`  ra  rM  r[  r   r   rb  r~  r  r  r  r  r  r  rc  rs  r   r-   r-   r.   r     s    2






































"zhouseWantedForRent.postNr   r-   r-   r-   r.   r	    s   r	  c                   @   s   e Zd Zdd ZdS )edithouseWantedForRentc           0   
   C   s  ztzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|sttjdd	tjdW S tjj	|d

 }	|d}
|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d }|d!} |d"}!|d#}"|d$}#|d%}$|d&}%|d'}&|d(}'|d)}(|d*})|d+}*|d,}+|d-},|d.}-|d/}.|d0}/|
s`td1d2itjdW S |sztd1d3itjdW S |std1d4itjdW S |std1d5itjdW S |std1d6itjdW S |std1d7itjdW S |std1d8itjdW S |std1d9itjdW S |s0td1d:itjdW S |sJtd1d;itjdW S |sdtd1d<itjdW S |s~td1d=itjdW S |std1d>itjdW S |std1d?itjdW S |'std1d@itjdW S |)std1dAitjdW S |*s td1dBitjdW S |+std1dCitjdW S |,s4td1dDitjdW S |-sNtd1dEitjdW S |.shtd1dFitjdW S |
|	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_ ||	_!||	_"||	_#||	_$||	_%|(|	_&|)|	_'|*|	_(|+|	_)|,|	_*|-|	_+|.|	_,||	_-|%|	_.|&|	_/|'|	_0|/|	_1||	_2||	_3| |	_4|!|	_5|"|	_6|#|	_7|$|	_8d|	_|	9  ttj:dGdtj:dW S  ty } z&ttj;t|dtj;dW  Y d }~S d }~0 0 d S )HNr?   r   r   TrY   r   r  r  r   rA   r   r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r   r_  r   r`  ra  rM  r[  r   r   rb  r~  r  r  r  r  r  r  rc  rA   r  rt  r>   rB   r
  r   r  r,  rC   r{  r  r  r  zdesired_start_date is requiredr  r  r  r  r  r  r  r  )<r   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   r   r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r   r   rb  rc  r   r_  r   r`  ra  rM  r[  rv   r   r   )0r   r   r   r   r4   r   r  r  r  rs  r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r   r_  r   r`  ra  rM  r[  r   r   rb  r~  r  r  r  r  r  r  rc  r-   r-   r.   r   =  s    2







































zedithouseWantedForRent.postNr   r-   r-   r-   r.   r  <  s   r  c                   @   s   e Zd Zdd ZdS )myHouseWantedForRentc                 C   s$  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }| j
jd}|sttjddtjdW S | j
jd}|sttjddtjdW S tjj|d	}tjj|d	 }t||}	z|	|}W n< ty   |	d
}Y n  ty,   |	|	j}Y n0 g }
|D ]}|jdkrLd}n|jd
kr^d}nd}|j|j|jj|jd |j |j|j|j|j|j|j|j |d}|
!| ttj"d|
|r|nd
|	jt#||d  W S W n@ ty } z&ttj$t|dtj$dW  Y d }~S d }~0 0 d S )Nr?   r   r   r  r  r  r  r  r   r   r   r  r  r  r  )r~   r  r]   r  r   r{  rT  rz  r|  rb  r  r   r>  r  )%r   r   r   r   r   r2   rq   rm   rn   ro   r   r  ri   rj   r   r   r   r  r   r   r  r~   r  r   r8   r9   r   r{  rT  rz  r|  rb  r  r  r   r  r   )r   r   r   r   r   r  r  rent_objr  r  r   rU  r  r  r-   r-   r.   ri     sZ    2

4zmyHouseWantedForRent.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )myHouseWantedForRentDetailsc           	   -   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }| j
jd}|sttjddtjdW S tjj||d	 }|sttjddtjdW S |jd	krd
}n|jdkrd}nd}|j|j|jj|jd |j |j|jt|j|j|j|j|j|j|j|j|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j/|j3|j4|j5|j6|j7|j8|j9|d,}ttj:d|dtj:dW S  ty  } z&ttj;t|dtj;dW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   Rent sale Id is requiredr  r  No house for rent foundr   r  r   r  r  r  ),r~   r  r]   r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r   r   rb  r~  r  r  r  r  r  r  r  rc  r  r   r_  r   r`  ra  rM  r[  r   r>  rh   )<r   r   r   r   r   r2   rq   rm   rn   ro   r   r  ri   rj   r   r~   r  r   r8   r9   ru  rv  r  r  r  r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r   r   rb  r~  r  r  r  r  r  r  r  rc  r   r_  r   r`  ra  rM  r[  r   r   )	r   r   r   r   r   r  r  r  r  r-   r-   r.   ri     s    2


5zmyHouseWantedForRentDetails.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )investmentMyProjectc           =   
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|d&}'|d'}(|d(})|d)}*|d*}+|d+},|d,}-|d-}.|d.}/|d/}0|d0}1|d1}2|d2}3|d3}4|d4}5|d5}6|d6}7|d}|d7}8|d8}9|d&}'|d&}'|d&}'|d&}'|d&}'|d&}'|d&}'|d&}'|d&}'|d&}'|d&}'|d&}'|'r,tjj	|'d9
 }:nd }:|sNttjd:d;tjdW S |	slttjd<d;tjdW S |
sttjd=d;tjdW S |sttjd>d;tjdW S |sttjd?d;tjdW S |sttjd@d;tjdW S |sttjdAd;tjdW S |s ttjdBd;tjdW S |s>ttjdCd;tjdW S |s\ttjdDd;tjdW S |szttjdEd;tjdW S |sttjdFd;tjdW S |sttjdGd;tjdW S |sttjdHd;tjdW S |sttjdId;tjdW S |sttjdJd;tjdW S |s.ttjdKd;tjdW S |sLttjdLd;tjdW S |sjttjdMd;tjdW S |sttjdNd;tjdW S |sttjdCd;tjdW S |sttjdOd;tjdW S |sttjdPd;tjdW S |s ttjdQd;tjdW S |sttjdRd;tjdW S | s<ttjdSd;tjdW S |!sZttjdTd;tjdW S tsxttjdUd;tjdW S tsttjdVd;tjdW S tsttjdWd;tjdW S tsttjdXd;tjdW S tsttjdYd;tjdW S |"sttjdZd;tjdW S |$s,ttjd[d;tjdW S |%sJttjd\d;tjdW S tjj|d]};||;_|	|;_|
|;_||;_||;_||;_||;_||;_||;_ ||;_!||;_"||;_#||;_$||;_%||;_&||;_'||;_(||;_)||;_*||;_+||;_ ||;_,||;_-||;_.||;_/| |;_0|!|;_1|"|;_2t|;_t|;_t|;_t|;_t|;_|#|;_3|$|;_4|%|;_5|&|;_6t78 |;_9|:|;_:||;_;|;<  d^|;ji}<t=jjd_|j> d` |j? ddadb ttj@dc|<ddtj@dW S  ty } z&ttjAt|dtjAdW  Y d }~S d }~0 0 d S )eNr?   r   r   TrY   r   r  rJ  r  documents_datar  r  r  r  r  r  r  property_at_glance_titler[  r  r  r  expected_attitude_pricer  r  r  r  r  r  r   measure_for_multiplierr   location_detailsrb  r   r   rc  r  minimal_goalr  r"  r  no_of_drawingr  r$  r  r%  r&  problem_to_solvedr(  issue_info_start_dateissue_info_end_dater  r+  maximum_investmentraised_capital_minimumr   r  r  image_data is requiredr  documents_data is requiredproperty_type is requiredassest_equality is required investment_highlight is requiredequity_price is requiredlp_equity_percent is requiredgp_equity_percent is requireddebt_percent is required$property_at_glance_title is requiredrr  bussiness_plan is requiredminimum_investment is requiredinvestment_strategy is required#expected_attitude_price is requiredfinanced is required!target_return_on_cost is requiredtarget_irr is requiredoffered_by is required(estimated_first_distribution is requiredtype_of_investment is requiredr,  "measure_for_multiplier is requiredaddress is requiredproperty_summary is requiredproperty_detail is requiredoverview is requireddebt_assumption is required%financial_debt_assumption is requiredlocation_details is requiredrv  ru  r   r~   z3A new investment for project has been added by the rN   Zinvestment_projectrO   r  r   rA   r4   )Br   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   property_summaryproperty_detailoverviewdebt_assumptionfinancial_debt_assumptionr   rr   r  rJ  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   rb  r   r   rc  r	   r  r  r  r  rv   rt   rJ   rK   r   r   )=r   r   r   r   r4   r   r  r  r  rJ  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   rb  r   r   rc  r  r!  r  r"  r  r"  r  r$  r  r%  r&  r#  r(  r$  r%  r  r+  r&  r'  
agency_objproject_objr   r-   r-   r.   r   C  sB   2

































































"zinvestmentMyProject.postNr   r-   r-   r-   r.   r  B  s   r  c                   @   s   e Zd Zdd ZdS )editInvestmentMyProjectc           .   
   C   s  zfzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|sttjdd	tjdW S tjj	|d

 }	|d}
|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d }|d!} |d"}!|d#}"|d$}#|d%}$|d&}%|d'}&|d(}'|d)}(|d*})|d+}*|d,}+|d-},|d.}-|
sZttjd/d	tjdW S |sxttjd0d	tjdW S |sttjd1d	tjdW S |sttjd2d	tjdW S |sttjd3d	tjdW S |sttjd4d	tjdW S |sttjd5d	tjdW S |s,ttjd6d	tjdW S |sJttjd7d	tjdW S |shttjd8d	tjdW S |sttjd9d	tjdW S |sttjd:d	tjdW S |sttjd;d	tjdW S |sttjd<d	tjdW S |sttjd=d	tjdW S |sttjd>d	tjdW S |s:ttjd?d	tjdW S |sXttjd@d	tjdW S |svttjdAd	tjdW S |sttjdBd	tjdW S |sttjd7d	tjdW S |sttjdCd	tjdW S |sttjdDd	tjdW S | sttjdEd	tjdW S |!s*ttjdFd	tjdW S |"sHttjdGd	tjdW S |#sfttjdHd	tjdW S |%sttjdId	tjdW S |&sttjdJd	tjdW S |'sttjdKd	tjdW S |(sttjdLd	tjdW S |)sttjdMd	tjdW S |$sttjdNd	tjdW S |+s8ttjdOd	tjdW S |,sVttjdPd	tjdW S |
|	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_ ||	_!||	_"||	_#||	_$||	_%||	_||	_&||	_'| |	_(|!|	_)|"|	_*|#|	_+|$|	_,|%|	_-|&|	_.|'|	_/|(|	_0|)|	_1|*|	_2|+|	_3|,|	_4|-|	_5||	_6t78 |	_9d|	_|	:  ttj;dQd	tj;dW S  ty } z&ttj<t|dtj<dW  Y d }~S d }~0 0 d S )RNr?   r   r   TrY   r   r  r  r  r   r  rJ  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   rE  rF  rG  rH  rI  rb  r   r   rc  r  r(  r  r)  r*  r+  r,  r-  r.  r/  r0  r1  rr  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r,  r<  r=  r>  r?  r@  rA  rB  rC  rv  ru  Updated Successfully)=r   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   r   r  rJ  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   rE  rF  rG  rH  rI  rb  r   r   rc  r  r	   r  r  rv   r   r   ).r   r   r   r   r4   r   r  r  r  rK  r  rJ  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   rE  rF  rG  rH  rI  rb  r   r   rc  r-   r-   r.   r     s   2







































zeditInvestmentMyProject.postNr   r-   r-   r-   r.   rL    s   rL  c                   @   s   e Zd Zdd ZdS )myInvestmentMyProjectc              +   C   sv  z.zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }| j
jd}|sttjddtjdW S | j
jd}|sttjddtjdW S tjj|d	}tjj|d	 }t||}	z|	|}W n< ty   |	d
}Y n  ty,   |	|	j}Y n0 g }
|D ]}|j|jj|jjd |jj |j|j|j|j|j|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j!|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j|j<d)}|
=| ttj>d|
|r|nd
|	jt?||d  W S W n@ typ } z&ttj@t|dtj@dW  Y d }~S d }~0 0 d S )Nr?   r   r   r  r  r  r  r  r   r   r  )r~   r]   r  r  rJ  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   rE  property_detailsrG  rH  rb  r   r   r  r   rc  r>  r  )Ar   r   r   r   r   r2   rq   rm   rn   ro   r   r  ri   rj   r   r   r   r  r   r   r  r~   r   rJ   rK   r  rJ  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   rE  rP  rG  rH  rb  r   r   r  rc  r  r   r  r   )r   r   r   r   r   r  r  Z
invest_objr  r  r   Zinvestr  r-   r-   r.   ri   ~  s    2
,
4zmyInvestmentMyProject.getNr  r-   r-   r-   r.   rN  }  s   rN  c                   @   s   e Zd Zdd ZdS )myInvestmentMyProjectDetailsc              *   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }| j
jd}|sttjddtjdW S tjj||d	 }|sttjddtjdW S |j|jj|jjd	 |jj |j|j|j|j|j|j|j|j|j|j|j|j|j|j |j!|j"|j#|j$|j%|j&|j|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j|j6d
)}ttj7d|dtj7dW S  ty } z&ttj8t|dtj8dW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   r  r  r  r  r  rO  fetched successfullyrD  )9r   r   r   r   r   r2   rq   rm   rn   ro   r   r  ri   rj   r   r~   r   rJ   rK   r  rJ  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   rE  rP  rG  rH  rb  r   r   r  rc  r   r   r   r   r   r   r   
project_idpro_objr  r-   r-   r.   ri     sr    2+z myInvestmentMyProjectDetails.getNr  r-   r-   r-   r.   rQ    s   rQ  c                   @   s   e Zd Zdd ZdS )!myInvestmentPropertyFavouriteListc           	      C   s(  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|d}g }|D ]P}|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjd
}|| qxttjd|dtjdW S  ty" } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r   )
r~   r  rJ  r  r  r  r  r  r[  r  rR  rD  )r   r   r   r   r   r2   rq   rm   rn   ro   InvestmentMyProjectFavouriteinvest_projectr~   r  rJ  r  r  r  r  r  r[  r  r  r   r   	r   r   r   r   r   r  r   r  r  r-   r-   r.   ri     s0    2z%myInvestmentPropertyFavouriteList.getNr  r-   r-   r-   r.   rV    s   rV  c                   @   s   e Zd Zdd ZdS )investmentMyCompanyc           *   
   C   sz  z2zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|&rtjj	|&d&
 }'nd }'|sttjd'd(tjdW S |
s"ttjd)d(tjdW S |s@ttjd*d(tjdW S |s^ttjd+d(tjdW S |s|ttjd,d(tjdW S |sttjd-d(tjdW S |sttjd.d(tjdW S |sttjd/d(tjdW S |sttjd0d(tjdW S |sttjd1d(tjdW S |s0ttjd2d(tjdW S |sNttjd3d(tjdW S |slttjd4d(tjdW S |sttjd5d(tjdW S |sttjd6d(tjdW S |sttjd7d(tjdW S |sttjd8d(tjdW S |"sttjd9d(tjdW S |#s ttjd:d(tjdW S |s>ttjd;d(tjdW S |s\ttjd<d(tjdW S |$szttjd=d(tjdW S |sttjd>d(tjdW S | sttjd?d(tjdW S |sttjd@d(tjdW S |sttjd@d(tjdW S |!sttjd@d(tjdW S tjj|dA}(||(_|	|(_|
|(_||(_||(_||(_||(_||(_||(_||(_||(_||(_||(_||(_ ||(_!||(_"||(_#||(_$||(_%||(_&||(_'||(_(||(_)||(_*| |(_+|!|(_,|"|(_-|#|(_.|$|(_/||(_0|%|(_1t23 |(_4|'|(_5|(6  dB|(ji})t7jjdC|j8 dD |j9 ddEdF ttj:dG|)dHtj:dW S  tyt } z&ttj;t|dtj;dW  Y d }~S d }~0 0 d S )INr?   r   r   TrY   r   r  r  company_videor  r  company_establishedr  company_phonenumberr=  shareholderssharer[  r"  shares_for_saler  r`  bank_acc_createdissue_account_nopost_numberr  r  max_drawingremaninig_sharesno_share_bfr_issuer  r  rb  r   r   rc  r  r   r  r  company_video is requiredcompany_established is requiredr)  rr  rA  r*  max_drawing is requiredthe_valuation is requiredshares_for_sale is requiredremaninig_shares is requiredminimum_drawing is requiredcompany_phonenumber is requiredrB  share is requiredr  post_number is requiredr  ru  issue_account_no is requiredbank_acc_created is requiredrv  no_share_bfr_issue is requirednominal_share_price is requiredprice_per_share is requiredr   r~   z3A new investment for company has been added by the rN   Zinvestment_companyrO   z2investment for company has been Added successfullyrD  )<r   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   r   rr   r  r  r[  r  r  r\  r  r]  r=  r_  r^  r[  r"  r`  r  r`  ra  rb  rc  r  r  rd  re  rf  r  r  rb  r   r   r  rc  r	   r  r  r  rv   rt   rJ   rK   r   r   )*r   r   r   r   r4   r   r  r  r  r  r[  r  r  r\  r  r]  r=  r^  r_  r[  r"  r`  r  r`  ra  rb  rc  r  r  rd  re  rf  r  r  rb  r   r   rc  r  rJ  company_objr   r-   r-   r.   r   %  s    2
































"zinvestmentMyCompany.postNr   r-   r-   r-   r.   rZ  $  s   rZ  c                   @   s   e Zd Zdd ZdS )editInvestmentMyCompanyc           (   
   C   sN  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|sttjdd	tjdW S tjj	|d

 }	|d}
|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d }|d!} |d"}!|d#}"|d$}#|d%}$|d&}%|d'}&|d(}'|
sttjd)d	tjdW S |s2ttjd*d	tjdW S |sPttjd+d	tjdW S |snttjd,d	tjdW S |sttjd-d	tjdW S |sttjd.d	tjdW S |sttjd/d	tjdW S |sttjd0d	tjdW S |sttjd1d	tjdW S |s"ttjd2d	tjdW S | s@ttjd3d	tjdW S |s^ttjd4d	tjdW S |s|ttjd5d	tjdW S |sttjd6d	tjdW S |sttjd7d	tjdW S |sttjd8d	tjdW S |sttjd9d	tjdW S |$sttjd:d	tjdW S |%s0ttjd;d	tjdW S |sNttjd<d	tjdW S |slttjd=d	tjdW S |&sttjd>d	tjdW S |!sttjd?d	tjdW S |"sttjd@d	tjdW S |sttjdAd	tjdW S |sttjdAd	tjdW S |#s ttjdAd	tjdW S |
|	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_ ||	_!||	_"||	_#||	_$||	_%||	_&||	_'| |	_(|!|	_)|"|	_*|#|	_+|$|	_,|%|	_-|&|	_.||	_/|'|	_0t12 |	_3d|	_|	4  ttj5dBd	tj5dW S  tyH } z&ttj6t|dtj6dW  Y d }~S d }~0 0 d S )CNr?   r   r   TrY   r   r  r  r  r   r  r  r[  r  r  r\  r  r]  r=  r^  r_  r[  r"  r`  r  r`  ra  rb  rc  r  r  rd  re  rf  r  r  rb  r   r   rc  r  rg  rh  r)  rr  rA  r*  ri  rj  rk  rl  rm  rn  rB  ro  r  rp  r  ru  rq  rr  rv  rs  rt  ru  r  )7r   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   r   r  r  r[  r  r  r\  r  r]  r=  r_  r^  r[  r"  r`  r  r`  ra  rb  rc  r  r  rd  re  rf  r  r  rb  r   r   r  rc  r	   r  r  rv   r   r   )(r   r   r   r   r4   r   r  r  r  rv  r  r  r[  r  r  r\  r  r]  r=  r^  r_  r[  r"  r`  r  r`  ra  rb  rc  r  r  rd  re  rf  r  r  rb  r   r   rc  r-   r-   r.   r     s    2
































zeditInvestmentMyCompany.postNr   r-   r-   r-   r.   rw    s   rw  c                   @   s   e Zd Zdd ZdS )myInvestmentMyCompanyc                 C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }| j
jd}|sttjddtjdW S | j
jd}|sttjddtjdW S tjj|d	}tjj|d	 }t||}	z|	|}W n< ty   |	d
}Y n  ty,   |	|	j}Y n0 g }
|D ]V}|j|jj|jjd |jj |j|j|j|j|j|j|j|j |jd}|
!| q6ttj"d|
|r|nd
|	jt#||dW S  ty } z&ttj$t|dtj$dW  Y d }~S d }~0 0 d S )Nr?   r   r   r  r  r  r  r  r   r   r  )r~   r]   r  r   r\  r  r"  r  r`  r  rd  r   r>  r  )%r   r   r   r   r   r2   rq   rm   rn   ro   r   r  ri   rj   r   r   r   r  r   r   r  r~   r   rJ   rK   r  r\  r  r"  r  r`  r  rd  r  r   r  r   )r   r   r   r   r   r  r  property_objr  r  r   rU  r  r-   r-   r.   ri     sP    2
,zmyInvestmentMyCompany.getNr  r-   r-   r-   r.   rx    s   rx  c                   @   s   e Zd Zdd ZdS )myInvestmentMyCompanyDetailsc              %   C   s  ztzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|stdditjdW S tjj|d	 }|sttjdd	tjdW S |j|j|j|jj|jjd
 |jj |j|j|j|j|j|j|j|j|j|j|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j|j-|j.j|j/|j0|j1d$}ttj2d|dtj2dW S  ty } z&ttj3t|dtj3dW  Y d }~S d }~0 0 d S )Nr?   r   r   rT  rA   zInvestment Id is requiredr   z"No Investment for my company foundr  r  )$r~   r  r[  r]   r  r  r  r  r\  r  r]  r=  r^  r_  r[  r"  r`  r  r`  ra  rb  rc  r  r  rd  re  rf  r  r  r  r   rc  r  rb  r   r   rR  rD  )4r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r   r~   r  r[  r   rJ   rK   r  r  r  r\  r  r]  r=  r^  r_  r[  r"  r`  r  r`  ra  rb  rc  r  r  rd  re  rf  r  r  r  rc  r  rb  r   r   r   r   rS  r-   r-   r.   ri   F  sh    2'z myInvestmentMyCompanyDetails.getNr  r-   r-   r-   r.   rz  E  s   rz  c                   @   s   e Zd Zdd ZdS )buyCompanySharec           	   
   C   sP  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S |j
d}|sttjddtjdW S tjj|d		 }|sttjd
dtjdW S tjj|||d}ttjddtjdW S  tyJ } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   
company_idzCompany id is requiredr  r   zurl is requiredr   zNo company found)r   r   r   r  )r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r   BuyCompanySharerr   r   r   )	r   r   r   r   r   r|  r   r?  inquireRentObjr-   r-   r.   r     s&    2zbuyCompanyShare.postNr   r-   r-   r-   r.   r{    s   r{  c                   @   s   e Zd Zdd ZdS )myShareRequestsc           
   
   C   s  z^zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }| j
jd}|sttjddtjdW S g }|dkrtjj|jd}|D ]6}|j|jj|j|j|j|jj|jjd	}	||	 qn`tjj|jd
}|D ]J}|j|jj|jjd |jj |jj|jj|j|j|jd}	||	  qttjd|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   request_typezrequest type is requiredr  sentr   )r~   r   r  share_statusr   r  company_phone_numbercompany__customerIdr  r~   r]   rS  customer_emailr  r  r  r   rR  rD  )r   r   r   r   r   r2   rq   rm   rn   ro   r   r  ri   rj   r}  r~   r   r   r  r  r   r  r  r  r   rJ   r:   rd   r   r   )
r   r   r   r   r   r  all_Data	share_objr_  r  r-   r-   r.   ri     sJ    2zmyShareRequests.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )shareRequestsRecievedc           	   
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|jd}g }|D ]H}|j|jj|jjd |jj |jj|jj|j|j|jd}|| qzttjd|dW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )	Nr?   r   r   r  rN   r  zrequest shared successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r}  r~   r   rJ   r:   rd   r  r  r   r  r   r   )	r   r   r   r   r   r  r  r_  r  r-   r-   r.   ri     s,    2zshareRequestsRecieved.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )approveShareRequestc              
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|stdditjdW S tjj||jd	 }d|_|  ttjd	d
tjdW S  ty  } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   
request_idrA   zrequest id is required)r~   r  r  z#share request approved successfullyr  )r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r}  r~   r  rv   r   r   )r   r   r   r   r   r  r  r-   r-   r.   r     s    2zapproveShareRequest.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )addPropertyProjectc           6   1   C   s  zDzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|d}	|d	}
|d
}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} |d }!|d!}"|d"}#|d#}$|d$}%|d%}&|d&}'|d'}(|d(})|d)}*|d*}+|d+},|d,}-|d-}.|d.}/|d/}0|d0}1|d1}2|d2}3|3rdtjj	|3d3
 }4nd }4|sttjd4dtjdW S |	sttjd5dtjdW S |
sttjd6dtjdW S |sttjd7dtjdW S |sttjd8dtjdW S |sttjd9dtjdW S |s:ttjd:dtjdW S |sXttjd;dtjdW S |svttjd<dtjdW S |sttjd=dtjdW S |sttjd>dtjdW S |sttjd?dtjdW S |sttjd@dtjdW S |sttjdAdtjdW S |s*ttjdBdtjdW S |sHttjdCdtjdW S |sfttjdDdtjdW S |sttjdEdtjdW S |sttjdFdtjdW S |sttjdGdtjdW S |sttjdHdtjdW S | sttjdIdtjdW S |!sttjdJdtjdW S |"s8ttjdKdtjdW S |#sVttjdLdtjdW S |$stttjdMdtjdW S |%sttjdNdtjdW S |&sttjdOdtjdW S |)sttjdPdtjdW S |*sttjdQdtjdW S |+s
ttjdRdtjdW S |,s(ttjdSdtjdW S |-sFttjdTdtjdW S |.sdttjdUdtjdW S |/sttjdVdtjdW S |0sttjdWdtjdW S tjj|||	|
|||||||||||||||||||||| |!|#|$|%|&|'|(|)|*|+|,|-|"|.|/|0|1t |2||4dX/}5tjjdY|j dZ |j d[d\d] ttjd^dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )_Nr?   r   r   TrY   r   spend_too_much_timemost_useless_skillri  rj  r  rd  property_descriptionrJ  r  rL  property_documentrH  r  property_dimensionr   r_  r   r`  ra  r   rb  r   r   r  rS  r  
finder_feegross_incomer  r  total_termination_feer  bill_utilitiespurchase_pricepotential_cashflow_pcminvestment_finder_fee#investment_return_on_investment_feer  
the_visioncost_to_considercapital_requiredr  rc  r  r   spend_too_much_time is requiredmost_useless_skill is requiredr  r  r  r   property_description is requiredr(  r  property_document is requiredrp  r  property_dimension is requiredr  r  r  r  r  ru  rv  facility is requiredbenefits is required return_on_investment is requiredfinder_fee is requiredgross_income is requiredr  cashflow_pcm is required!total_termination_fee is requiredpurchase_price is required"potential_cashflow_pcm is required!investment_finder_fee is required/investment_return_on_investment_fee is requiredr  the_vision is requiredcost_to_consider is requiredcapital_required is required)/r   r  r  ri  rj  r  rd  r  rJ  rL  r  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r  r  z-A new property project has been added by the rN   Fproperty_projectrO   r  )r   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   r   rr   r	   r  rt   rJ   rK   r   r   )6r   r   r   r   r4   r   r  r  r  r  ri  rj  r  rd  r  rJ  r  rL  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r  rJ  r  r-   r-   r.   r     s&   2












































1"zaddPropertyProject.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )editPropertyProjectc           5   
   C   s8  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }tjj	|jdd
 }|r|jj}nd}|d}|sttjddtjdW S tjj	|d	
 }	|	sttjd
dtjdW S |d}
|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d}|d }|d!} |d"}!|d#}"|d$}#|d%}$|d&}%|d'}&|d(}'|d)}(|d*})|d+}*|d,}+|d-},|d.}-|d/}.|d0}/|d1}0|d2}1|d3}2|d4}3|d5}4|
sttjd6dtjdW S |sttjd7dtjdW S |sttjd8dtjdW S |sttjd9dtjdW S |s*ttjd:dtjdW S |sHttjd;dtjdW S |sfttjd<dtjdW S |sttjd=dtjdW S |sttjd>dtjdW S |sttjd?dtjdW S |sttjd@dtjdW S |sttjdAdtjdW S |sttjdBdtjdW S |s8ttjdCdtjdW S |sVttjdDdtjdW S |stttjdEdtjdW S |sttjdFdtjdW S |sttjdGdtjdW S |sttjdHdtjdW S | sttjdIdtjdW S |!s
ttjdJdtjdW S |"s(ttjdKdtjdW S |#sFttjdLdtjdW S |&sdttjdMdtjdW S |'sttjdNdtjdW S |(sttjdOdtjdW S |)sttjdPdtjdW S |*sttjdQdtjdW S |+sttjdRdtjdW S |,sttjdSdtjdW S |-s6ttjdTdtjdW S |.sTttjdUdtjdW S |/srttjdVdtjdW S |0sttjdWdtjdW S |1sttjdXdtjdW S |2sttjdYdtjdW S |
|	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_||	_ ||	_!||	_"||	_#||	_$||	_%||	_&||	_'| |	_(|!|	_)|"|	_*|#|	_+|'|	_,|(|	_-|)|	_.|*|	_/|$|	_0|%|	_1|+|	_2|,|	_3|-|	_4|.|	_5|/|	_6|0|	_7|1|	_8|2|	_9|3|	_:||	_;|4|	_<d|	_|	=  ttj>dZdtj>dW S  ty2 } z&ttj?t|dtj?dW  Y d }~S d }~0 0 d S )[Nr?   r   r   TrY   r   r  r  r   No property project foundr  r  ri  rj  r  rd  r  rJ  r  rL  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r  r  r  r  r  r  r  r(  r  r  rp  r  r  r  r  r  r  r  ru  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rM  )@r   r   r   r   r   r2   r4   rq   rm   rn   ro   r|   r~   r   r  ri   rj   r   r  r  ri  rj  r  rd  r  rJ  r  rL  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  rv   r   r   )5r   r   r   r   r4   r   r  r  r  ZpropertyProject_objr  r  ri  rj  r  rd  r  rJ  r  rL  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r-   r-   r.   r     s   2












































zeditPropertyProject.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )myPropertyProjectc                 C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }| j
jd}|sttjddtjdW S | j
jd}|sttjddtjdW S tjj|d	}tjj|d	 }t||}	z|	|}W n< ty   |	d
}Y n  ty,   |	|	j}Y n0 g }
|D ]p}|jdkrLd}n|jd
kr^d}nd}|j|jj|jjd |jj |j|j|j|j|j|d	}|
| q6ttjd|
|r|nd
|	jt ||dW S  ty } z&ttj!t|dtj!dW  Y d }~S d }~0 0 d S )Nr?   r   r   r  r  r  r  r  r   r   r   r  r  r  r  )	r~   r]   r  r  rb  r  r  r  r   r>  r  )"r   r   r   r   r   r2   rq   rm   rn   ro   r   r  ri   rj   r   r   r   r  r   r   r  r~   r   rJ   rK   r  rb  r  r  r  r  r   r  r   )r   r   r   r   r   r  r  ry  r  r  r   rU  r  r  r-   r-   r.   ri   6  sT    2
,zmyPropertyProject.getNr  r-   r-   r-   r.   r  5  s   r  c                   @   s   e Zd Zdd ZdS )myPropertyProjectDetailsc              2   C   s  zZzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }| j
jd}|sttjddtjdW S tjj||d	 }|sttjddtjdW S |jdkrd	}n|jd
krd}nd}t|j}g }	|D ]D}
tjj|
d	 }|r(|	|j|jd n|	|
d d  q|j|jj|jjd |jj |jj|j|j|j|j|j|j |j!t|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2r|j23 rt|j23 ng t|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|j=|jD|jE|jF|d1}ttjGd|dtjGdW S  ty } z&ttjHt|dtjHdW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   zProject Id is requiredr  r  r   r  r   r  r  r   )r   iconr  )1r~   r]   r  r  r  r  ri  rj  r  rd  r  rJ  r  rL  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r   z-Property project details fetched successfullyrh   )Ir   r   r   r   r   r2   rq   rm   rn   ro   r   r  ri   rj   r   r  r  r  
Facilitiesr  r   r  r~   r   rJ   rK   rc   r  r  ri  rj  r  rd  r  rJ  r  rL  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   rQ  rs   rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r   r   )r   r   r   r   r   rT  rU  r  Zfacilities_listZfacility_detailsZfacility_namer  r  r-   r-   r.   ri   g  s    2



&
4zmyPropertyProjectDetails.getNr  r-   r-   r-   r.   r  f  s   r  c                   @   s   e Zd Zdd ZdS )deleteImagec              
   C   s   z|j }|d}|s.ttjddtjdW S tjtj	|}tj
|rlt| ttjddtjdW S ttjddtjdW S W n: ty } z"tdt|itjdW  Y d }~S d }~0 0 d S )	Nr  rt  r  r   zImage deleted successfully.r?   zImage not found.rA   )r4   ri   r   r   rj   ospathjoinr   
MEDIA_ROOTexistsremover   r   r   r2   r   )r   r   r4   Z
image_nameZ
image_pathr   r-   r-   r.   r     s    

zdeleteImage.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )myHouseRentFavouriteListc           	   
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|d}g }|D ]D}|jj|jj|jj|jj|jj|jj|jj|jjd}|| qxttjd|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r   )r~   r8   r9   r  Zmax_monthly_rentZ
house_typeZnumber_of_residentwanted_fromz.House rent favourite data fetched successfullyrh   )r   r   r   r   r   r2   rq   rm   rn   ro   r  rs  r~   r8   r9   r  r{  r  no_of_residentr  r  r   r   rY  r-   r-   r.   ri     s,    2
zmyHouseRentFavouriteList.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )homePageListingc           '   ;      sj  t |}|r<tj|tjdgd}|d }tjj|d }nd}t	jjdd}t
jjdd}tjjdd}tjjdd}	tjjdd}
tjjdd}tjjdd}tjjdd}|jd|jd	|jd
 |jd}|jd}|jd}|jd}|jd}|jd}|jdg }|r|D ]}tjj|j|d }|r\d}nd}|jdkrrd}n|jdkrd}nd}|j|j|j|j|j|j|j|j|j|j|j|j|j |j||j!|j |dd}|"| q6|r|D ]}t#jj|j|d }|rd}nd}|jdkr(d}n|jdkr:d}nd}|j|j|j|j$|j%|j|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j|j|j||dd}|"| q|r|D ]
}t1jj|j|d }|rd}nd}|"|j|j2j3d |j2j4 |j5|j6t78|j|j9|j:|j5|j;|j<|j=|j>|j?|j@|jA|jB|jC|jD|jE|jF|jG|jH|jI|jE|jJ|jKt78|jL|jM|jN|jO|jP|jQ|jR|jS|jT|jU|jV|jW|jX|jY|j|j|j|j!|jZ|dd / q|r&|D ]X}t[jj|j|d! }|rd}nd}|jdkrd}n|jdkrd}nd}|"|j|j2j3d |j2j4 |j5|j\|j;|j]t78|j^|j_|j:|j`|ja|jb|jc|jd|jd|je|jf|jg|jh|ji|jj|jk|jl|jm|jn|jo|jp|jq|jr|js|jt|ju|jv|jw|jx|jy|jz|j|j{|j||j}|j~|j|j|j|j|jr|jjnd |j!|j|j|jZ|j||d"d#7 q|	r\|	D ](}tjj|j|d$ }|rXd}nd}|jdkrnd}n|jdkrd}nd}|"|j|j6|j2j|jd |j |j|jt78|j|j|j|j|j|j|j|jV|j|j-|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j!|j|j||jZ||j{|j||j}|j|j|j|j;d%d&/ q0|
rP|
D ]}tjj|j|d' }|rd}nd}|"|j|j2j|j2j3d |j2j4 |j|j|j9|j|j|j|j|j|j|j|j|j|j;|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j!|d(d)) qf|r<|D ]}tjj|j|d* }|rd}nd}|"|j|j`|j|j2j|j2j3d |j2j4 |j|j|j|j|jo|j|j|j|j|j;|j|j|jd|j|j|j|j|jf|jb|j|j|j|jg|jm|j!|j|j|j|j|j|j||jZd+d,' qZ|	r||D ]2} tjj| j|d- }|rnd}nd}| jdkrd}n| jdkrd}nd}|"| j| j2j| j2j3d | j2j4 | j| j| j| j| j6| j| j| j| j9| j| j| j| j| j{| j|| j}| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| j| jZ|| j!d.|d/2 qF|d0k
r	rfd1d2|D }	rfd3d2|D }|d4k	rt|d5d6 d7}n|d8k	rt|d9d6 dd:}|d;k
r
t|d<d6 d7}n|d=k
r&t|d>d6 dd:}
rV 
rVtt   fd?d2|D }|rR|rRt|}!t|}"d@}#g }$|D ]h}%d|%v 
r~d|%v 
r~|%d d u
r~|%d d u
r~t|!|"t|%d t|%d }&|&|#k
r~|$"|% 
q~|$}ndrfdAd2|D }r6 r6tt   fdBd2|D }t| t|dCd6 dd:}ttjdD|dEtjdFS )GNHS256Z
algorithmsr   r   r   TrO  rI  	min_price	max_pricerb  r   r   rL  rJ  rK  r  r  Fr  r   r  r  r   )r~   rG  rJ  r  r  r   r   rb  r  r  rO  r  r  rb  r]  r  r  r   rI  r  r   )r~   rG  rJ  rK  rN  rO  rP  r   street_number	postal_nopost_officer  residence_numberrT  rZ  r]  r^  rb  r   r   r]  r   rI  rP  r  rR  )/r~   rS  r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rb  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r  r  r]  rI  company_seekr   companySeeking)7r~   rS  r   r  r[  r  rJ  r  rL  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  r  rb  r   r_  r   r  ra  r  r  r   r  r  r   r   r  r  r]  r   rI  rr  rt  )/r~   r  r]   r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r   r   rb  r~  r  r  r  r  r  r  r  rc  r  r]  r  r   r   r_  r   r`  ra  rM  r[  rI  rX  r   InvestmentProject))r~   r]   r  r  rJ  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   rE  rP  rG  rH  rb  r   r   r  r]  rI  invest_companyr   InvestmentCompany)'r~   r  r[  r]   r  r  r  r  r\  r  r]  r=  r^  r_  r[  r"  r`  r  r`  ra  rb  rc  r  r  rd  re  rf  r  r  r  r   rc  r  rb  r   r   r]  r  rI  r  r   )2r~   r]   r  r  r  ri  rj  r  rd  r  rJ  r  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r  r  r]  r  rI  r   r  c                    s   g | ]}|d   kr|qS r  r-   r  r  r-   r.   r    r  z'homePageListing.get.<locals>.<listcomp>c                    s    g | ]}|d  t  kr|qS r  intr  r  r-   r.   r    r  r  c                 S   s   | d S r  r-   r  r-   r-   r.   r    r  z%homePageListing.get.<locals>.<lambda>r  r  c                 S   s   | d S r  r-   r  r-   r-   r.   r    r  r  r  c                 S   s   | d S r  r-   r  r-   r-   r.   r    r  r  c                 S   s   | d S r  r-   r  r-   r-   r.   r    r  c                    s,   g | ]$}|d    kr  krn q|qS r  r-   r  r  r  r-   r.   r    r     c                    s   g | ]}|d   kr|qS r  r-   r  r  r-   r.   r    r  c                    s,   g | ]$}|d    kr  krn q|qS r  r-   r  r  r-   r.   r    r  c                 S   s   | d S )Nr  r-   r  r-   r-   r.   r    r  z&home page listing fetched successfullyrh   r   )r   jwtdecoder   
SECRET_KEYrq   rm   rn   ro   r   r   r   r   r   r   r   r
  r  ri   r  r~   r   rG  rJ  r  r  r   r   rb  r  rO  r  rD  r  r  r  rK  rN  rP  r   r  r  r  rV  r  rT  rZ  r]  r^  r  r   rJ   rK   r   r  r  r  r  rL  r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  r  r  Zshort_title_twor  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  r  r  r   r_  r   r  ra  r  r  r  r  r  r8   r9   ru  rv  r  r   r^   r   r   rw  rx  ry  rl  rz  r{  r|  r}  r~  r  r  r  r  r  r  rc  r`  rM  rW  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   rE  rP  rG  rH  InvestmentMyCompanyFavouriter[  r\  r]  r=  r^  r_  r"  r`  ra  rb  rc  rd  re  rf  r  r  r  ri  rj  rd  r  r  rH  r  r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  floatr/   r   shuffler   r   )'r   r   r   decodedr   r   r  r  r  r  r  r  r  r  rb  r   r   rL  rJ  rK  r   salelistr  r  r  r  rentlistr  r  r  ipicr  latlonkmrangefiltered_datar4   distr-   )r  r  r  r  r.   ri     s   


0

>

0*(
5




0

zhomePageListing.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )commonGetPropertiesDetailc              
   C   s$  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|stdditjdW S |jd}|stdditjdW S d|i}d| jj
di}z|d	krttjd
 }	tjd|	||d}
|
 }t|W W S |dkrFttjd }	tjd|	||d}
|
 }t|W W S |dkrttjd }	tjd|	||d}
|
 }t|W W S |dkrttjd }	tjd|	||d}
|
 }t|W W S |dkr ttjd }	tjd|	||d}
|
 }t|W W S |dkr>ttjd }	tjd|	||d}
|
 }t|W W S |dkr|ttjd }	tjd|	||d}
|
 }t|W W S ttjddtjdW W S W nB ty } z(ttjt|dtjdW  Y d }~W S d }~0 0 W n@ ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   rI  rA   ztoken is requiredr  r~   rR  z*customer-api/my-bussiness-for-sale-detailsr  )r  paramsrt  z-customer-api/my-house-wanted-for-rent-detailsr  z*customer-api/my-investment-project-detailsr  z-customer-api/my-investment-my-company-detailsr   z(customer-api/my-property-project-detailsr   z"customer-api/sale-property-detailsr   z!customer-api/rent-property-detailzNo Propertyr  )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r  r   r   r#  requestsr   r   )r   r   r   r   r   TypeZ	jwt_tokenr  payloadr   ZgetAPIZapiResponser-   r-   r.   ri     sn    2







6zcommonGetPropertiesDetail.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )myFavouriteBussinessListc           	   
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|d}g }|D ]>}|jj|jj|jj|jj|jj|jj|jjd}|| qxttjd|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r   )r~   r  rJ  r   r[  r^  rT  z6Bussiness for sale favourite data fetched successfullyrh   )r   r   r   r   r   r2   rq   rm   rn   ro   r  rQ  r~   r  rJ  r   r[  r^  rT  r  r   r   rY  r-   r-   r.   ri   <  s*    2	zmyFavouriteBussinessList.getNr  r-   r-   r-   r.   r  ;  s   r  c                   @   s   e Zd Zdd ZdS )myFavouritePropertyProjectc           	   
   C   s.  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|d}g }|D ]V}|jj|jjj|jjjd |jjj |jj|jj|jj|jj|jjd}|| qxttjd|dtjdW S  ty( } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )	Nr?   r   r   r   r  )r~   r]   r  r  rb  r  r  r  z,Property project favourite data successfullyrh   )r   r   r   r   r   r2   rq   rm   rn   ro   r  r  r~   r   rJ   rK   r  rb  r  r  r  r  r   r   rY  r-   r-   r.   ri   V  s,    2
zmyFavouritePropertyProject.getNr  r-   r-   r-   r.   r  U  s   r  c                   @   s   e Zd Zdd ZdS )myFavouriteListingc              P   C   s<  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |jd}tj	j
|d }tj	j
|dd}tj	j
|dd}tj	j
|dd}tj	j
|dd	}	tj	j
|dd
}
tj	j
|dd}tj	j
|dd}tj	j
|dd}tj	j
|dd}g }|dkrf|D ]L}||jj|jjj|jjjd |jjj |jj|jjt|jj|jj |jj!|jj|jj"|jj#|jj$|jj%|jj&|jj'|jj(|jj)|jj*|jj+|jj,|jj-|jj.|jj/|jj0|jj,|jj1|jj2|jj3|jj4|jj5|jj6|jj7|jj8|jj9|jj:|jj;|jj<|jj=|jj>|jj?|jj@|jjA|jjB|jjC|jjD|jjE|jjF|jjGdd1 qnp|dkr|D ]V}||jHj|jj|jjd |jj |jjI|jjJ|jHj|jHj|jHj"|jHjKt|jHjL|jHjM|jHj!|jHjN|jHjO|jHjP|jHjQ|jHjR|jHjS|jHjT|jHjU|jHjV|jHjW|jHjX|jHjY|jHjZ|jHj[|jHj\|jHj]|jHj^|jHj_|jHj`|jHja|jHjb|jHjC|jHj=|jHjc|jHj>|jHjd|jHje|jHjf|jHjg|jHj|jHjhr|jHjhjnd |jHjF|jHjD|jHjE|jHjG|jHjidd1 qtn|dkr|D ]}||jjj|jjj|jjjj|jjjkd |jjjl |jjjm|jjjnt|jjjo|jjjk|jjjl|jjjp|jjjq|jjjr|jjjs|jjj?|jjjt|jjju|jjjv|jjjwt|jjjx|jjjy|jjjz|jjj{|jjj||jjjD|jjjE|jjj=|jjjc|jjj>|jjj}|jjje|jjjC|jjj~|jjj|jjj|jjj|jjj|jjj|jjjdd' qn|dkr,|D ]}||jj|jjj|jjjd |jjj |jj|jj|jj |jj|jj|jj|jj|jj|jj|jj|jj|jj|jj"|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjs|jj|jj|jj|jj|jj|jj|jj|jjC|jjD|jjE|jjF|jj|jjdd* qn|dkr>|	D ]}||jj|jjN|jj|jjj|jjjd |jjj |jj|jj|jj|jj|jj]|jj|jj|jj|jj|jj"|jj|jj|jjR|jj}|jj|jj|jj|jjT|jjP|jj|jj|jj|jjU|jj[|jjF|jj|jj|jjh|jjC|jjD|jjEdd% q:n|dkr|
D ].}||jj|jj|jj|jj|jj|jj|jj|jjt|jj|jj |jj!|jj|jj|jj|jj|jj=|jjc|jj>|jj}|jje|jj|jjC|jjD|jjEt|jjt|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjdd- qLnT|dk	r|D ]$}||jj|jjj|jjjd |jjj |jjjJ|jj|jj|jjt|jj|jj|jj!|jj|jj|jj}|jj|jjI|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjc|jj>|jj=|jj|jj|jj|jj|jjt|jj|jjC|jjD|jjE|jjF|jjdd) qn|dkr |D ]N}||j$j|j$jj|j$jjd |j$jj |j$jjJ|j$j|j$j|j$jt|j$j|j$j|j$j|j$j|j$j|j$j|j$j=|j$jc|j$j>|j$j}|j$jt|j$j|j$j|j$ju|j$j|j$j|j$j|j$j|j$j|j$j|j$j"|j$j|j$j|j$j|j$jC|j$jD|j$jE|j$jF|j$j|j$j|j$j|j$j|j$j|j$j|j$j|j$j|j$j|j$jx|j$j|j$jdd0 	qʐn|d krD|D ]}||jj|jjt|jjL|jj |jj!|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj"|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjs|jj|jj|jj|jjU|jj|jjP|jj|jjQ|jj|jjO|jj |jj|jj|jj|jj|jj|jjS|jj|jj|jj|jj	|jj
|jj|jj|jj|jjT|jj|jj|jj|jj|jj|jj|jj9|jj|jj|jj|jj|jj=|jjc|jj>|jj}|jje|jj|jjC|jjD|jjE|jj|jjd!d"L q.n|D ]8}||jj|jjjd |jjj |jj|jjt|jj|jj |jj!|jj|jj"|jj#|jj$|jj%|jj&|jj'|jj(|jj)|jj*|jj+|jj,|jj-|jj.|jj/|jj0|jj,|jj1|jj2|jj3|jj4|jj5|jj6|jj7|jj8|jj9|jj:|jj;|jj<|jj?|jj@|jjA|jjB|jjC|jjD|jjE|jjF|jjGdd#. qH|D ]V}||jHj|jjd |jj |jj|jjI|jjJ|jHj|jHj|jHj"|jHjKt|jHjL|jHjM|jHj!|jHjN|jHjO|jHjP|jHjQ|jHjR|jHjS|jHjT|jHjU|jHjV|jHjW|jHjX|jHjY|jHjZ|jHj[|jHj\|jHj]|jHj^|jHj_|jHj`|jHja|jHjb|jHjC|jHj=|jHjc|jHj>|jHjd|jHje|jHjf|jHjg|jHj|jHjhr|jHjhjnd |jHjF|jHjD|jHjE|jHjG|jHjidd$1 q|D ]}||jjj|jjj|jjjj|jjjkd |jjjl |jjjm|jjjnt|jjjo|jjjk|jjjl|jjjp|jjjq|jjjr|jjjs|jjj?|jjjt|jjju|jjjv|jjjw|jjjx|jjjy|jjjz|jjj{|jjj||jjjD|jjjE|jjjC|jjj~|jjj|jjj|jjj|jjj|jjj|jjjdd%" q|D ]}||jj|jjj|jjjd |jjj |jj|jj|jj |jj|jj|jj|jj|jj|jj|jj|jj|jj|jj"|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjs|jj|jj|jj|jj|jj|jj|jj|jjC|jjD|jjE|jjF|jj|jjdd* q|	D ]}||jj|jjN|jj|jjj|jjjd |jjj |jj|jj|jj|jj|jj]|jj|jj|jj|jj|jj"|jj|jj|jjR|jj}|jj|jj|jj|jjT|jjP|jj|jj|jj|jjU|jj[|jjF|jj|jj|jjh|jjC|jjD|jjEdd% q|
D ]T}||jj|jjj|jjjd |jjj |jjjJ|jj|jj|jj|jj|jj|jj|jjt|jj|jj |jj!|jj|jj|jj|jj|jj=|jjc|jj>|jj}|jje|jj|jjC|jjD|jjEt|jjt|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjdd&0 q|D ]$}||jj|jjj|jjjd |jjj |jjjJ|jj|jj|jjt|jj|jj|jj!|jj|jj|jj}|jj|jjI|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjc|jj>|jj=|jj|jj|jj|jj|jjt|jj|jjC|jjD|jjE|jjF|jjdd) q^|D ]0}||j$j|j$jj|j$jjd |j$jj |j$jjJ|j$j|j$j|j$jt|j$j|j$j|j$j|j$j|j$j|j$jt|j$j|j$j|j$ju|j$j|j$j|j$j|j$j|j$j|j$j|j$j"|j$j|j$j|j$j|j$jC|j$jD|j$jE|j$jF|j$j|j$j|j$j|j$j|j$j|j$j|j$j|j$j|j$j|j$jx|j$j|j$jdd'+ q|D ]}||jj|jjjt|jjL|jj |jj!|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj"|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjs|jj|jj|jj|jjU|jj|jjP|jj|jjQ|jj|jjO|jj |jj|jj|jj|jj|jj|jjS|jj|jj|jj|jj	|jj
|jj|jj|jj|jjT|jj|jj|jj|jj|jj|jj|jj9|jj|jj|jj|jj|jj=|jjc|jj>|jj}|jje|jj|jjC|jjD|jjE|jj|jjd d"L qttjd(|d)tjdW S  ty6 } z*ttjt|dtjdW  Y d }~S d }~0 0 d S )*Nr?   r   r  r   T)r   Zbussiness__end_date__isnull)r   Zhouse_rent__end_date__isnull)r   Z invest_project__end_date__isnull)r   Z invest_company__end_date__isnull)r   Zproperty__end_date__isnull)r   Zsale__end_date__isnull)r   Zrent__end_date__isnull)r   Zcompany_seek__end_date__isnull)r   Z$property_developer__end_date__isnullrR  r  )1r~   r   rS  r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rb  rc  rd  revenue_growthre  rf  rg  rh  ri  r<  rj  r1  rk  r   r   r:   r   rl  rm  rb  r   r   r  r  rI  r  )1r~   r   rS  r  r  r   r  r[  r  rJ  r  rL  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  rb  r   r_  r   r  ra  r  r  r   r  r  r   r   r  r  rI  rt  )'r~   r  r]   r  ru  rv  rJ  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r   r   r   r_  r   r`  ra  rb  r~  r  r  r  r  r  r  rI  r  )*r~   r]   r  r  rJ  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   rE  rP  rG  rH  rb  r   r   r  r   rc  rI  r  )%r~   r  r[  r]   r  r  r  r  r\  r  r]  r=  r^  r_  r[  r"  r`  r  r`  ra  rb  rc  r  r  rd  re  rf  r  r  r  r   rc  r  rb  r   r   rI  r   )-r~   r  r  ri  rj  r  rd  r  rJ  r  rL  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rI  r   ))r~   r]   r  r  rG  r  rI  rJ  rK  rL  r  r   r`  r  rd   r  r  r  r  r  r  rO  r  r  r  r  r_  r   r   r  r  r  r  r  rQ  rb  r   r   r  rc  rI  r   )0r~   r]   r  r  rG  rH  rI  rJ  rK  rM  rN  rO  rP  r   r_  r   r`  r   r  rR  rT  r  rV  rW  rX  rY  rZ  r[  r\  r]  r^  rb  r   r   r  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  rI  r  property_developer)Lr~   r]   rJ  r  rL  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"  r  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r+  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  r   r_  r   r`  ra  r   rb  r   r   r  r   rI  ).r~   rS  r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rb  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r  r  rI  )1r~   rS  r]   r  r  r   r  r[  r  rJ  r  rL  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  rb  r   r_  r   r  ra  r  r  r   r  r  r   r   r  r  rI  )"r~   r  r]   r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r{  r|  r}  r   r   rb  r~  r  r  r  r  r  r  rI  )0r~   r]   r  r  r  r  ri  rj  r  rd  r  rJ  r  rL  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rI  )+r~   r]   r  r  rG  rH  rI  rJ  rK  rM  rN  rO  rP  r  rR  rT  r  rV  rW  rX  rY  rZ  r[  r\  r]  r^  rb  r   r   r  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  rI  z&my favourite data fetched successfullyrh   (  r   r   r   r   r   r2   r  ri   rq   rm   rn   ro   r  r  rW  r  r  r  r  r  r  r  rQ  r~   r   rJ   rK   r   r  r  r  rJ  r  rL  r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r   r   r:   r   rl  rm  rb  r   r   r  r  r  rd   rc   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  ra  r  r  r  r  rs  r8   r9   ru  rv  r  r   r^   r   r   rw  rT  rx  ry  rl  rz  r{  r|  r}  r`  r~  r  r  r  r  r  r  rX  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   rE  rP  rG  rH  rc  r  r[  r\  r]  r=  r^  r_  r"  r`  ra  rb  rc  rd  re  rf  r  r  r  ri  rj  rd  r  r  rH  r  r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rG  r  r  rK  r  r  r  r  r  rO  r  r  r  r  r  r  r  r  rQ  rM  rN  rP  r  rR  r  rV  rW  rX  rY  rZ  r\  r]  r^  re  rf  rg  rh  rk  rm  rn  r  customerId_idr  r  r   r!  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r8  r:  r>  r@  rB  rD  r  r   r   )r   r   r   r   r  r   r  r  r  r  r  r  r  ZcompanyseekingObjZpropertyDeveloperObjr   r  r  r  r  r  r  r  r  devr-   r-   r.   ri   p  s:   2

3

4

*

,
(

2

-

2

P
1
4%
,(
2
,
.
PzmyFavouriteListing.getNr  r-   r-   r-   r.   r  o  s   r  c                   @   s   e Zd Zdd ZdS )removeFavouritePropertiesc              
   C   s@  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}|d}|s~ttjddtjdW S |d}|sttjddtjdW S |dkrt	j
j|d	 }|  |d
krtj
j|d }|  |dkrtj
j|d }	|	  |dkr0tj
j|d }
|
  |dkrTtj
j|d }|  |dkrxtj
j|d }|  |dkrtj
j|d }|  |dkrtj
j|d }|  |dkrtj
j|d }|  ttjddtjdW S  ty: } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r~   id is requiredr  rI  type is requiredrR  )rQ  rt  )rs  r  )rX  r  )r  r   )r  r   )r  r   )rU  r  )r  r  )r  z)favourite properties removed successfully)r   r   r   r   r   r2   r4   ri   rj   r  rm   rn   ro   deleter  rW  r  r  r  r  r  r   r   )r   r   r   r   r4   r  r  r  r  r  r  r  ZsalepropertyZrentpropertyZcompanyseekr-   r-   r.   r   "  sT    2








zremoveFavouriteProperties.postNr   r-   r-   r-   r.   r  !  s   r  c                   @   s   e Zd Zdd ZdS )deletePropertiesc              
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 |j}|d}|s~ttjddtjdW S |d}|sttjddtjdW S |dkrt	j
j|d }|sttjd	dtjdW S t |_|  ttjd
dtjdW S |dkrjtj
j|d }|s@ttjddtjdW S t |_|  ttjd
dtjdW S |dkrtj
j|d }	|	sttjddtjdW S t |	_|	  ttjd
dtjdW S |dkr2tj
j|d }
|
sttjddtjdW S t |
_|
  ttjd
dtjdW S |dkrtj
j|d }|slttjddtjdW S t |_|  ttjd
dtjdW S |dkrtj
j|d }|sttjddtjdW S t |_|  ttjd
dtjdW S |dkr^tj
j|d }|s4ttjddtjdW S t |_|  ttjd
dtjdW S |dkrtj
j|d }|sttjddtjdW S t |_|  ttjd
dtjdW S |dkr&tj
j|d }|sttjddtjdW S t |_|  ttjd
dtjdW S |dkrtj
j|d }|s`ttjddtjdW S t |_|  ttjd
dtjdW S ttjddtjdW S W n@ ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r~   r  rI  r  ZSaleRentr   zNo rent sale property foundzproperties deleted successfullyrR  No business for sale foundrt  No house wanted for rent foundr  zNo investment for project foundr  zNo investment for company foundr   r  r   No sale for property foundr   No rent for property foundZCompanySeekingzNo company seeking foundZPropertyDeveloperz!No property developer found foundzSomething went wrong)r   r   r   r   r   r2   r4   ri   rj   SaleAndRentPropertyrm   rn   ro   r	   r  r  rv   r   r   r   r   r   r   r   r   r
  rF  r   )r   r   r   r   r4   r  r  ZsaleRentPropertyr  r  r  r  r  salepropertyProjectrentpropertyProjectr-   r-   r.   r   `  s    2





















zdeleteProperties.postNr   r-   r-   r-   r.   r  _  s   r  c                   @   s   e Zd Zdd ZdS )salePropertyInquirec              
   C   s*  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|d}|d}|d}	|d}
|sttjd	d
tjdW S |sttjdd
tjdW S |sttjdd
tjdW S |	sttjdd
tjdW S |
s,ttjdd
tjdW S tjj|d	 }tjj||d}||_||_|	|_|
|_t |_|  d}
i }|jj}d}t|tj|g|
d}
|
jdd tjj|jd |j d ddd ttj dd
tj dW S  ty$ } z&ttj!t|dtj!dW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   r   rk  r:   rA   r  r  name is requiredr  rC   r5  r   r  &Someone is interested in your propertyReeipo PropertyrR   FrW   rN    has inquire on a propertyTproperty_inquirerO   r  )"r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r   inquireSalePropertyrr   r   rk  r:   rA   r	   r  r  rv   r   r   r   rw   rx   rt   rJ   rK   r   r   )r   r   r   r   r   r4   r  r   rk  r:   rA   ZsaleRentObjZinquireSaleRentObjr   r   rS   r-   r-   r.   r     sP    2





"zsalePropertyInquire.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )inquireBusinessForSalec              
   C   sZ  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|d}|d}|d}	|d}
|d	}|sttjd
dtjdW S |sttjddtjdW S | sttjddtjdW S |	sttjddtjdW S |
s8ttjddtjdW S |sVttjddtjdW S tjj|d	 }tjj||d}||_||_|	|_|
|_||_t |_|  d}i }|jj}d}t|tj|g|d}|jdd tjj|jd |j  d ddd ttj!ddtj!dW S  tyT } z&ttj"t|dtj"dW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   r   r   rk  r:   rA   r  r  r  r@  r  rC   r5  r   )business_saler   r  r  rR   FrW   rN   r  Tr	  rO   r  )#r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r   inquireBusinessSalePropertyrr   r   r   rk  r:   rA   r	   r  r  rv   r   r   r   rw   rx   rt   rJ   rK   r   r   )r   r   r   r   r   r4   r  r   r   rk  r:   rA   ZbusinessSaleObjZinquireBusinessSaleObjr   r   rS   r-   r-   r.   r     sX    2






"zinquireBusinessForSale.postNr   r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )postInquirePropertyProjectc              
   C   s  zPzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}t|j
rzd}nd}|d}|d}|d}	|d	}
|d
}|d}|sttjddtjdW S |sttjddtjdW S |	sttjddtjdW S |
s.ttjddtjdW S |sLttjddtjdW S |sjttjddtjdW S tjj|d	 }tjj||d}||_|	|_|
|_||_||_t |_||_|  d}i }|jj}d}t|tj|g|d}|jdd tjj|j d |j! d ddd t"jj|j|j d |j! d dd  ttj#d!dtj#dW S  ty } z&ttj$t|dtj$dW  Y d }~S d }~0 0 d S )"Nr?   r   r   r)   r   rT  r   r   rk  r:   rA   zProject id is requiredr  r  r@  r  rC   r5  r   )r  r   zLSomeone is interested in your property please check My-Leads in your Profiler  rR   FrW   rN   z" has inquire on a property projectTr	  rO   z has inquire on your projectr]   rA   rQ   r  )%r   r   r   r   r   r2   rq   rm   rn   ro   r4   r6   ri   rj   r   inquirePropertyProjectrr   r   r   rk  r:   rA   r	   r  r  rv   r   r   r   rw   rx   rt   rJ   rK   CustomerNotificationsr   r   )r   r   r   r   r   r4   pass_statusr  r   r   rk  r:   rA   ZpropertyProjectObjinquirePropertyProjectObjr   r   rS   r-   r-   r.   r   *  sb    2







"$zpostInquirePropertyProject.postNr   r-   r-   r-   r.   r  )  s   r  c                   @   s   e Zd Zdd ZdS )rentPropertyInquirec              
   C   s@  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}t|j
rzd}nd}|d}|d}|d}	|d	}
|d
}|d}|sttjddtjdW S |sttjddtjdW S |	sttjddtjdW S |
s.ttjddtjdW S |sLttjddtjdW S |sjttjddtjdW S tjj|d	 }tjj||d}||_|	|_|
|_||_||_t |_||_|  tjj|jd |j d ddd ttjddtjdW S  ty: } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r)   r   r  r   r   rk  r:   rA   r  r  r  r@  r  rC   r5  r   )r  r   rN   z has inquire on a rent propertyTr	  rO   r  )r   r   r   r   r   r2   rq   rm   rn   ro   r4   r6   ri   rj   r   inquireRentPropertyrr   r   r   rk  r:   rA   r	   r  r  rv   rt   rJ   rK   r   r   )r   r   r   r   r   r4   r  r  r   r   rk  r:   rA   ZrentPropertyObjr~  r-   r-   r.   r   _  sT    2







"zrentPropertyInquire.postNr   r-   r-   r-   r.   r  ^  s   r  c                   @   s   e Zd Zdd ZdS )getInquireListc                 C   sZ  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|dd}g }|D ]~}||jj|jjj|jjjd |jjj |jj|jj|jj|jj|j|jj|jj|jj|jj|jj|jj|j|jdd q|ttjd	|d
tjdW S  tyT } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r   )r   r   r  r   )r~   r]   r  r  rb  r  property_refernce_idr  r  r  r  finder_feesr  towncontract_idcontract_statusrI  z!inquire list fetched successfullyrD  ) r   r   r   r   r   r2   rq   rm   rn   ro   r  r  r  r~   r   rJ   rK   r  rb  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r   r   r   r  r   Z	ppinquirer-   r-   r.   ri     s>    2:
zgetInquireList.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )myLeadsListc                 C   sX  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|dd}td| g }|D ]r}||j|jj|jj|jj|jj|jj|jj|j|jj|jj|jj|jj|jj|jj|j|j|j|jdd qttjd	|d
tjdW S  tyR } z&ttj t|dtj dW  Y d }~S d }~0 0 d S )Nr?   r   r   r   )Zproperty_project__customerIdr   r  r   )r~   r  r  rJ  rb  r  r  r  r  r  r  r  r  r  rk  r   r  r  rI  zmy leads list successfullyrD  )!r   r   r   r   r   r2   rq   rm   rn   ro   r  r   r  r~   r  r  rJ  rb  r  r  r  r  r  r  r  r  r  rk  r   r  r  r   r   r  r-   r-   r.   ri     sD    2

zmyLeadsList.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )customerNotificationsc           	   
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|ddd}g }|D ](}|j|j|j|j|jd}|| qttjd|d	tjdW S  ty
 } z.t| ttjt|dtjdW  Y d }~S d }~0 0 d S )
Nr?   r   r   T)r]   rO  r\   )r~   rA   rQ   rP   r   z+customer notifications fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  r{   r~   rA   rQ   rP   r  r  r   r   r   )	r   r   r   r   r   ZnotificationObjr   notifyr  r-   r-   r.   ri     s(    2zcustomerNotifications.getNr  r-   r-   r-   r.   r    s   r  c                   @   s   e Zd Zdd ZdS )deleteNotificationsc              
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|sttjddtjdW S |D ]}tjj|djt d qttjd	dtjdW S  ty } z.t| ttjt|dtjdW  Y d }~S d }~0 0 d S )
Nr?   r   r   r~   zid requiredr  r   )r  z!notification deleted successfully)r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r  r   r	   r  r   r   r   )r   r   r   r   r   r4   notificaton_idsir-   r-   r.   r   1  s     2
zdeleteNotifications.postNr   r-   r-   r-   r.   r   0  s   r   c                   @   s   e Zd Zdd ZdS )readNotificationsc           
   
   C   s"  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|r|D ]}tjj|djdd qzn&tjjdd}|D ]}	d|	_|	  qttjd	d
tjdW S  ty } z.t| ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   r   T)rP   Fznotification read successfullyr  )r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   r  r   rP   rv   r   r   r   )
r   r   r   r   r   r4   r!  r"  Znot_objr  r-   r-   r.   r   D  s&    2

zreadNotifications.postNr   r-   r-   r-   r.   r#  C  s   r#  c                   @   s   e Zd Zdd ZdS )
showNumberc           	   
   C   sB   zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|d}|sttjddtjdW S |sttjddtjdW S |d	krtjj|d
	 }d|_|  ttjddtjdW S  ty< } z.t| ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   rI  r  r  r  r   r   zIn-Progressr  )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r  r  rv   r   r   r   )	r   r   r   r   r   r4   Z
inquery_idr  r  r-   r-   r.   ri   [  s*    2

zshowNumber.getNr  r-   r-   r-   r.   r$  Z  s   r$  c                   @   s   e Zd Zdd ZdS )contractStatusc              
   C   s  z:zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|j
d}|sttjddtjdW S |sttjddtjdW S |d	ks|d
kr"tjj|d	 }||_|  tjj|jd| ddd ttjd| ddtjdW S ttjddtjdW S W nH ty } z.t| ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   status_typeinquiry id is requiredr  zstatus_type is requiredRejectedAcceptedr   zThe contract has been z by the owning party.r  r  z%Status type must be Accepted/Rejected)r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r  r  rv   r  rr   r   r   r   r   )r   r   r   r   r   
inquiry_idr&  r  r-   r-   r.   r   u  s,    2 zcontractStatus.postNr   r-   r-   r-   r.   r%  t  s   r%  c                   @   s   e Zd Zdd ZdS )startContractc              
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|d}|d}|d}	|j
d}
|sttjd	d
tjdW S |sttjdd
tjdW S |sttjdd
tjdW S |	sttjdd
tjdW S |
s.ttjdd
tjdW S tjj|
d	 }|jdkrdttjdd
tjdW S tjj|||||	d}tjj|jjd	 }d|_|j|_|  tjj|jddd ttjd|jdtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   contract_filer   r0  tasksr~   zPlease select contract filer  r3  r@  zPlease add a taskr'  r   	CompletedContract is already created)r*  r,  r   r0  r-  z6Contract start from Seller side please check My-Deals.Zstart_contractr  z'Contract start from Seller Successfully)r   rA   r  )r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r  r  r   Contractrr   r*  r~   r  rv   r  r   r   r   )r   r   r   r   r   r4   r,  r   r0  r-  r*  
inquireObjcontractObjr-   r-   r.   r     sD    2



zstartContract.postNr   r-   r-   r-   r.   r+    s   r+  c                   @   s   e Zd Zdd Zdd ZdS )contractSigneec           
      C   s  z>zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|sttjddtjdW S tjj|d	 }tjj|jjd	 }|jj|k r|j|j|j|j|j|j|j|j|j|jdd	}	n0|j|j|j|j|j|j|j|j|j|jd
d	}	ttjd|	dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   contract id is requiredr  r   Zbuyer)r~   taskowner_full_namer  owner_signaturer,  buyer_full_namebuyer_emailbuyer_signaturer  r   Zsellercontract signed successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r0  r  r*  r~   r   r-  r6  r  r7  r,  r8  r9  r:  r  r   r   
r   r   r   r   r   r4   r  r2  r1  r  r-   r-   r.   ri     sP    2
zcontractSignee.getc              
   C   s  zHzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|d}|d}|d}	|d}
|d	}|d
}|sttjddtjdW S tjj|d	 }| sttjddtjdW S |jj|kr|
s(ttjddtjdW S |sFttjddtjdW S |sdttjddtjdW S |
|_||_||_|  n|sttjddtjdW S |sttjddtjdW S |	sttjddtjdW S ||_||_|	|_|  tjj|jjd	 }d|_|j|_|  tjj|jddd ttjddtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   r6  r  r7  r8  r9  r:  r4  r  r   zinvalid contract idzbuyer_full_name is requiredzbuyer_email is requiredzbuyer_signature is requiredzowner_full_name is requiredzowner_email is requiredzowner_signature is requiredZSignedzContract Updated successfullyZcontract_createdr  r;  )r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r0  r*  r   r8  r9  r:  rv   r6  r  r7  r  r~   r  r  r  rr   r   r   )r   r   r   r   r   r4   r  r6  r  r7  r8  r9  r:  r2  r1  r-   r-   r.   r     s`    2







zcontractSignee.postNr  r-   r-   r-   r.   r3    s   ,r3  c                   @   s   e Zd Zdd ZdS )getPurchasedetailc           
   
   C   s`  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|sttjddtjdW S tjj|d	 }|sttjddtjdW S tjj|jjd	 }|j|jj|jj|jj|jj|jj|jjd	}	ttjd
|	dtjdW S  tyZ } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r~   r4  r  r   zcontract not found)r~   r  r  r  r  r  r  z$Purchase detail fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r0  r  r*  r~   r  r  r  r  r  r  r  r   r   r<  r-   r-   r.   ri     s2    2
	zgetPurchasedetail.getNr  r-   r-   r-   r.   r=    s   r=  c                   @   s   e Zd Zdd ZdS )inquireMailc              
   C   sN  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|d}|d}|d}	|d}
|
sttjd	d
tjdW S |sttjdd
tjdW S |	sttjdd
tjdW S |sttjdd
tjdW S |s,ttjdd
tjdW S |dkrttjj|d	 }|sfttjdd
tjdW S |jj}|j}|dkrtjj|d	 }|sttjdd
tjdW S |jj}|j}|dkrtjj|d	 }|sttjdd
tjdW S |jj}|j}|dkrLtjj|d	 }|s>ttjdd
tjdW S |jj}|j}i }|	|d< ||d< |j|d< |
|d< td|}|}d}t|tj|g|	d}	|	|d |	jdd tjj|jd |j d  d!d" tjj||jd# |j d$ d!d% ttjd&d
tjdW S  tyH } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )'Nr?   r   r   r~   rI  rk  rA   r:   r   r  zTelephone is requiredzMessage is requiredr  r  rR  r   r  rt  r  r   r  r   r   r   zinquiry_mail.htmlr  rR   z	text/htmlFrW   rN   r  r	  )rA   rQ   r  z has inquire your propertyr  zInquired successfully) r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r   r   r:   r   r   r   rJ   r   r   r   rw   attach_alternativerx   rt   rr   rK   r  r   r   )r   r   r   r   r   r4   r  r  rk  rA   r:   r  r  r]   r  r  r  r   Z
email_datar   rS   r-   r-   r.   r   4  s|    2










 "zinquireMail.postNr   r-   r-   r-   r.   r>  3  s   r>  c                   @   s   e Zd Zdd ZdS )propertyPaymentc           
   
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S |j
d}|sttjddtjdW S tjj|d		 }|d
kr(tjj|d||d tjj|jjd		 }d|_|  ttjd|jjtdtjdW S |j
d}	|	sRttjddtjdW S tjjdd|d|	|d tjj|jjd		 }d|_|  ttjd|jjdtjdW S W n@ ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   payment_modepayment mode is requiredr  r  Contract Id is requiredr   OnlineSuccessmodepayment_statuscontractrq   Deal-Completed Online payment done successfully)r   rA   r]   r   payment_recipetpayment recipet is requiredOffliner  rG  rH  rI  recipet_statusrL  rq   zPayment-Completed$Offline payment applied successfullyr   rA   r]   )r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r0  Paymentrr   r  r*  r~   r  rv   r   r   Znext_step_urlr   )
r   r   r   r   r   rA  r  contract_objr1  rL  r-   r-   r.   r     s:    2
+ "zpropertyPayment.postNr   r-   r-   r-   r.   r@    s   r@  c                   @   s   e Zd Zdd ZdS )uploadRecipetc              
   C   s   zT|j }|d}|r8ddlm} t|}t|j| }ttj	dt|dtj	dW S  t
y } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr  r   r   zrecipet uploaded Successfully)r   rA   r   r   r?   )r4   ri   r"  r   ZuploadTheRecipetr2   r#  r   r   r   r   r   )r   r   r4   Zrecipet_datar   r$  r   r-   r-   r.   r     s    
zuploadRecipet.postNr   r-   r-   r-   r.   rU    s   rU  c                   @   s   e Zd Zdd ZdS )myPaymentDealsc           	   
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|d}g }|D ]<}|j|j|j|jj|j|j|jjjj|jd}|| qxttjd|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   rq   r~   rG  rH  r  rP  rL  r  rD  z"payment deals fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   rS  r~   rG  rH  rI  rP  rL  r*  r  r  r  r  r   r   	r   r   r   r   r   payment_objr  Zpayr  r-   r-   r.   ri     s,    2

zmyPaymentDeals.getNr  r-   r-   r-   r.   rV    s   rV  c                   @   s   e Zd Zdd ZdS )approveOfflinePaymentc              
   C   s  zrzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|j
d}|sttjddtjdW S tjj|d	 }|sttjd	dtjdW S |d
k rd|_tjj|jd|jj d d n`d|_|j}d}	t|	tj|gd|j d|jj d}
|
jdd tjj|jd|jj d d |  ttjddtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r*  payment_responserC  r  )r  zNo Inquire Property found.r)  rJ  You payment for  has been accepted.)r]   rA   zPayment-RejectedPayment Rejected:r6  ), your payment has been rejected for the rR   FrW    has been rejected.z%offline payment approved successfully)r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r  r  r  rr   r   r  r  r:   r   r   rw   r   rx   rv   r   r   )r   r   r   r   r   r*  r\  r1  r   rS   r7  r-   r-   r.   r      s4    2
 &zapproveOfflinePayment.postNr   r-   r-   r-   r.   r[  
   s   r[  c                   @   s   e Zd Zdd ZdS )paymentDetailsc              
   C   s4  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj|d	 }|sttjddtjdW S |j|j|j|j|j|jd	}ttjd
|dtjdW S  ty. } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r  rC  r  rI  No payment details found.r~   rG  rH  r  rP  rL  z#payment detail fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   rS  r~   rG  rH  rI  rP  rL  r   r   r   r   r   r   r   r  rZ  r  r-   r-   r.   ri   )   s,    2zpaymentDetails.getNr  r-   r-   r-   r.   rb  (   s   rb  c                   @   s   e Zd Zdd ZdS )getRecipetDatac              
   C   s$  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj|d	 }|sttjddtjdW S |j|jd	}ttjd
|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r  rC  r  rc  rd  r~   rL  z!Recipet data fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   rS  r~   rL  r   r   rf  r-   r-   r.   ri   C   s$    2zgetRecipetData.getNr  r-   r-   r-   r.   rg  B   s   rg  c                   @   s   e Zd Zdd ZdS )draftListingc                 C   s   zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|ddd}tjj|ddd}tjj|ddd}tjj|ddd}tjj|ddd}	tjj|ddd}
tjj|ddd}g }|D ]2}||j|j|j|j|j|j|j|jdd	 q|D ]D}||j|j|j|j|j|j|j|j |j!|j"|j |j#dd	 q"|D ]<}||j|j$|j|j%|j&|j'|j(|j)|j*|j+d
d ql|D ]8}||j|j|j|j,|j-|j.|j/|j0|j1dd
 q|	D ]<}||j|j2|j|j3|j4|j5|j6|j7|j8|j9dd q|
D ]@}|j|j:|j|j4|j;|j<|j=|j>|j?|j@dd}|| q.|D ]L}|j|j:|j|j,|jA|jB|jC|j<|j=|jD|jE|j@|j?dd}|| qtttjFd|dtjFdW S  ty } z&ttjGt|dtjGdW  Y d }~S d }~0 0 d S )Nr?   r   r   T)r   rc  rO  rR  )	r~   r   rJ  r  note_to_purchaserT  operating_profitr\  rI  rt  )r~   r8   rJ  r   r   r   r~  r  r{  r  r  r  rI  r  )r~   project_namerJ  rb  r  investment_typer  r  r  rG  rI  r  )
r~   r   rJ  r[  r"  r`  re  r  rd  rI  r   )r~   r  rJ  r  r  propert_rentr  r  r  r  rI  r   )r~   rG  rJ  r  r  r   r   rP  rO  r  rI  r   )r~   rG  rJ  r  rV  rented_from	rented_tor   r   use_areastreet_addressr  rO  rI  z"draft listing fetched successfullyrD  )Hr   r   r   r   r   r2   rq   rm   rn   ro   r   r   r   r   r   r   r   r  r~   r   rJ  r  rj  rT  rk  r\  r8   r  r   r   r   r~  r  r{  r  r  rl  rb  r  rm  r  r  r  rG  r[  r"  r`  re  r  rd  r  r  r  r  r  r  r  r  rG  r  r   r   rP  rO  r  rV  ro  rp  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.   ri   [   s    2
	
zdraftListing.getNr  r-   r-   r-   r.   ri  Z   s   ri  c                   @   s   e Zd Zdd ZdS )SendPropertyRequestReeipoAgentc              
   C   s  zzzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|d}|d}|d}	|d}
|sttjd	d
tjdW S |sttjdd
tjdW S |sttjdd
tjdW S |	sttjdd
tjdW S |
s,ttjdd
tjdW S tjj|||||	|
d tjj|jd |j d ddd ttjdd
tjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   mobile_numberr   r:   r  	signaturerC   r  mobile_number is requiredr  r*  zsignature is required)rZ   rt  r   r:   r  r:  r  z2 has request to upload his property by Reeipo TeamTZupload_property_requestrO   Request sent successfully)r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   DoItByReeipoRequestsrr   rt   rJ   rK   r   r   )r   r   r   r   r   r4   rt  r   r:   r  r:  r-   r-   r.   r      s6    2




"z#SendPropertyRequestReeipoAgent.postNr   r-   r-   r-   r.   rs     s   rs  c                   @   s   e Zd Zdd ZdS )customerSaveSearchesc              
   C   s   zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj||d ttjddtjdW S  t y } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )	Nr?   r   r   save_searchessave_searches is requiredr  rZ   rz  z)Customer save searches Added successfully)r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   CustomerSaveSearchesrr   r   r   )r   r   r   r   r   rz  r-   r-   r.   r      s    2zcustomerSaveSearches.postNr   r-   r-   r-   r.   ry     s   ry  c                   @   s   e Zd Zdd ZdS )customerSaveSearchEditc              
   C   s&  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S |j
d}|sttjddtjdW S tjj|d	j||d
 ttjddtjdW S  ty  } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   	search_idsearch_id is requiredr  rz  r{  r   r|  z%Customer save searches edited success)r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r}  r   r   r   )r   r   r   r   r   r  rz  r-   r-   r.   r   !  s     2zcustomerSaveSearchEdit.postNr   r-   r-   r-   r.   r~  !  s   r~  c                   @   s   e Zd Zdd ZdS )customerSaveSearchDeletec              
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|stdditjdW S tjj|d	 }|stdditjdW S |  ttjd	d
tjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r  rA   r  r   zSave search not foundz)customer save search deleted successfullyr  )r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r}  r  r   r   )r   r   r   r   r   r  
search_objr-   r-   r.   r    !  s     2zcustomerSaveSearchDelete.postNr   r-   r-   r-   r.   r  !  s   r  c                   @   s   e Zd Zdd ZdS )getSaveSearchCustomerc                 C   sf  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|dd}g }|D ]}|j}zdt|}	|j|	d |	d |	d |	d	 |	d
 |	d |	d |	d |	d |	d d|jd}
||
 W q tjy   Y q0 qttjd|dtjdW S  ty` } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr  r   r   rZ   r\   rI  r  r  min_bedsmax_beds	amenitiesrb  r  lngtype_urlr  )r~   rI  r  r  r  r  r  rb  r  r  r  Z
is_defaultrD  z)Save search customer fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r}  r{   rz  r  r  r~   r  r  r   JSONDecodeErrorr   r   )r   r   r   r   r   r  r  rl   Zsearch_nameZsearch_name_jsonr  r-   r-   r.   ri   7!  s@    2
zgetSaveSearchCustomer.getNr  r-   r-   r-   r.   r  6!  s   r  c                   @   s   e Zd Zdd ZdS )addRatingReviewc           	   
   C   sZ  zzt |}W n< tyL } z$tdt|itjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S |j
d}|sttjddtjdW S |j
d	}|sttjd
dtjdW S tjj|d	 }tjj||||d ttjddtjdW S  tyT } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )NrA   r   r   rating_datarating_data is requiredr  review_datareview_data is requiredreceive_customer_idzreceive_customer_id is requiredr   )send_customerreceive_customerratingreviewz Rating review Added successfully)r   r   r   r2   r   r   rq   rm   rn   ro   r4   ri   rj   RatingAndReviewrr   r   r   )	r   r   r   r   r   r  r  r  Zreceieve_customer_objr-   r-   r.   r   c!  s(    .zaddRatingReview.postNr   r-   r-   r-   r.   r  b!  s   r  c                   @   s   e Zd Zdd Zdd ZdS )editRatingReviewc              
   C   s   zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj|d	 }|sttjddtjdW S |j|jd}ttjd	|d
tjdW S  ty } z"tdt|itjdW  Y d }~S d }~0 0 d S )Nr  r   r   	rating_idrating_id is requiredr   z No rating data found is requiredr  r  z"Rating review fetched successfullyrD  rA   )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r  r  r  r   r   )r   r   r   r   r   r  
rating_objr  r-   r-   r.   ri   z!  s$    2zeditRatingReview.getc              
   C   sL  zzt |}W n< tyL } z$tdt|itjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S |j
d}|sttjddtjdW S |j
d	}|sttjd
dtjdW S tjj|dj||d ttjddtjdW S  tyF } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )NrA   r   r   r  r  r  r  r  r  r  r   r  z!Rating review edited successfully)r   r   r   r2   r   r   rq   rm   rn   ro   r4   ri   rj   r  r   r   r   )r   r   r   r   r   r  r  r  r-   r-   r.   r   !  s&    .zeditRatingReview.postNr  r-   r-   r-   r.   r  y!  s   r  c                   @   s   e Zd Zdd ZdS )deleteRatingReviewc              
   C   s   zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj|d	 }|  ttjddtjdW S  t y } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr  r   r   r  r  r   z"Rating review deleted successfully)r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r  r  r   r   )r   r   r   r   r   r  r  r-   r-   r.   r   !  s    2zdeleteRatingReview.postNr   r-   r-   r-   r.   r  !  s   r  c                   @   s   e Zd Zdd ZdS )getMyRatingsc           	   
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|d}g }|D ]4}|jjd |jj |jj|j|jd}|| qxttjd|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )	Nr  r   r   r  r  )rS  r  r  Zrating_datezMy rating fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  r  rJ   rK   rc   r  rD  r  r   r   )	r   r   r   r   r   r  r  r  r  r-   r-   r.   ri   !  s$    2zgetMyRatings.getNr  r-   r-   r-   r.   r  !  s   r  c                   @   s   e Zd Zdd ZdS )getMyReviewsc           	   
   C   s  zzt |}W n< tyJ } z$tdt|itjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|d}g }|D ]4}|jjd |jj |jj|j|jd}|| qtttjd|dtjdW S  ty } z&ttjt|d	tjdW  Y d }~S d }~0 0 d S )
NrA   r   r   r  r  rS  r  ZreviewsZreview_datezMy reviews fetched successfullyrD  r  )r   r   r   r2   r   r   rq   rm   rn   ro   r  r  rJ   rK   rc   r  r  r  r   r   )	r   r   r   r   r   
review_objr  r  r  r-   r-   r.   ri   !  s$    .zgetMyReviews.getNr  r-   r-   r-   r.   r  !  s   r  c                   @   s   e Zd Zdd ZdS )viewRatingReviewsc              
   C   s  zPzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj|d}|r2tjj|dtdd }tjj|d }g }	|D ]8}
|
jjd	 |
jj |
jj|
j|
j|
jd
}|	| qttjd|	t||dtjdW S ttjdd	d	d	dtjdW S W n@ ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr  r   r   r]   customer_id is requiredr  r  rating__avgr  )rS  r  r  r  Zrating_review_datez!rating review viewed successfully)r   rA   rating_review_dataaverage_ratingtotal_reviewszrating review does not exist)r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r  	aggregater   r   r  rJ   rc   r  r  r  r  r   roundr   )r   r   r   r   r   r]   r  r  r  r  r  r  r-   r-   r.   ri   !  s4    2""zviewRatingReviews.getNr  r-   r-   r-   r.   r  !  s   r  c                   @   s   e Zd Zdd ZdS )CustomerProfileDetailsc                    s  z|j d}|s,ttjddtjdW S tjj|d }|sZttjddtjdW S |j	d}|j	d}|j	d	 |j	d
}t
jj|dtdd }t
jj|d }|jd |j |j|j|j|j|j|j|j|j|j|j|j|j|j|j|jd}	tjjd|d}
t jjd|d}t!jjd|d}t"jjd|d}t#jjd|d}t$jjd|d}t%jjd|d}g }|
r|
D ]P}|j&|j'|j(|j)|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2dd}|3| q|r,|D ]H}|j&|j'|j(|j4|j4|j5|j+|j,|j-|j.|j1|j2dd}|3| q|rx|D ]@}|3|j&|j6|j(|j7|j7|j8|j9|j:|j;|j1|j<dd q6|r|D ]P}|3|j&|j=|j>|j|j|j|j?|j@|jA|jA|jB|j@|jC|j1|j<dd q|r,|D ]L}|3|j&|jD|j(|jE|jF|jG|jH|jI|jJ|jJ|jK|jL|j1|j<dd q|r|D ]H}|3|j&|j6|j(|j5|jM|jN|jO|jP|jQ|jQ|jR|j1|j<dd q6|r|D ]P}|3|j&|jS|j(|jT|j)|j)|jU|jV|jW|jX|jY|j|jZ|j1|j<dd q|d krn r fd!d"|D }|d#krt[|d$d% d&}n|d'kr6t[|d(d% dd)}|d*krRt[|d+d% d&}n|d,krnt[|d-d% dd)}ttj\d.|	||rt]t^|d/nd0|r|nd0d1tj\dW S  t_y } z&ttj`ta|dtj`dW  Y d }~S d }~0 0 d S )2Nr]   r  r  r   r   No customer foundrL  rJ  rI  rK  r  r  r  r  )rS  r  r   Zwhatsapp_numberZdate_of_birthr   r   r   r   r  r   r   linkedin_urlpintrest_urltwitter_urlyoutube_urlTrO  r   r   )r~   rG  rJ  r  r  r  rO  r  r   r   r  rP  r  r  rI  r   )r~   rG  rJ  rV  r  r  rO  r  r   r   r  r  rI  rR  )r~   r   rJ  r  r  rj  rT  rk  r\  r  r  rI  rt  )r~   r8   rJ  r   r   r   r~  r  r{  r  r  r  r  r  r  rI  r  )r~   rl  rJ  rb  r  rm  r  r  r  r  r  rG  r  r  rI  r  )r~   r   rJ  r[  r"  r`  re  r  nomial_share_pricer  rd  r  r  rI  r   )r~   r  rJ  r  r  r  rn  r  r  r  r  r   r  r  r  rI  r  c                    s   g | ]}|d   kr|qS r  r-   r  r  r-   r.   r  "  r  z.CustomerProfileDetails.get.<locals>.<listcomp>r  c                 S   s   | d S r  r-   r  r-   r-   r.   r  "  r  z,CustomerProfileDetails.get.<locals>.<lambda>r  r  c                 S   s   | d S r  r-   r  r-   r-   r.   r  "  r  r  r  c                 S   s   | d S r  r-   r  r-   r-   r.   r  "  r  r  c                 S   s   | d S r  r-   r  r-   r-   r.   r  "  r  z-customer profile details fetched successfullyz.2fr   )r   rA   customer_all_datapropertyDatar  r  )br  ri   r   r   rj   rq   rm   rn   ro   r  r  r  r   r   rJ   rK   r:   rd   whatsappNumberr^   rc   r   r   r   r  r   r   r  r  r  r  r   r   r   r   r   r   r   r~   rG  rJ  r  r  rO  r  r   r   r  rP  r  rD  r  rV  r[  r   r  rj  rT  rk  r\  r  r8   r  r~  r  r{  r  r  rl  rb  r  rm  r  r  r  r  rG  r"  r`  re  r  r  rd  r  r  r  r  r  r  r  r  r  r   r  formatr   r   r2   )r   r   r]   Zcustomer_datarL  rJ  rK  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r-   r  r.   ri   	"  s`   




>zCustomerProfileDetails.getNr  r-   r-   r-   r.   r  "  s   r  c                   @   s   e Zd Zdd ZdS )viewAllCustomerRatingReviewc           
   
   C   sR  z
zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj|d}|sttjddtjdW S g }|D ]4}|jjd |jj |jj|j|jd	}	||	 qttjd
|dtjdW S  tyL } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr  r   r   r]   r  r  zNo review datar  r  z+Customer rating review fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r  r  rJ   rK   rc   r  r  r  r   r   )
r   r   r   r   r   r]   r  r  r  r  r-   r-   r.   ri   "  s.    2zviewAllCustomerRatingReview.getNr  r-   r-   r-   r.   r  "  s   r  c                   @   s   e Zd Zdd ZdS )SendBookMeetingsc              
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S |j
d}|sttjddtjdW S |j
d}|sttjd	dtjdW S tjj|d
	 }|sttjddtjdW S |j
d}	|	s6ttjddtjdW S |j
d}
|
s`ttjddtjdW S tjj||
||||	d tjj|j|jd |j d dd ttjddtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr  r   r   booking_timezbooking_time is requiredbooking_datezbooking_date is requiredr  r  r   zNo property foundrA   r5  r   r,  )r  r   r   	book_date	book_timerA   z7booked a meeting with you regarding your added company .property_meetingr  zBook meeting sent successfully)r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r   BookMeetingsrr   r  r   rJ   r   r   r   )r   r   r   r   r   r  r  r  r  rA   r   r-   r-   r.   r   "  s:    2$zSendBookMeetings.postNr   r-   r-   r-   r.   r  "  s   r  c                   @   s   e Zd Zdd ZdS )BookingMeetingListc           
      C   sr  z*zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S |dkrtjj|d}ntjj|d}g }|D ]X}|j|jjd	 |jj |jj|jj|jj|j|j|j|j|j|j|jd
}	||	 qttjd|dtjdW S  tyl } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr  r   r   booking_typezbooking_type is requiredr  r   )Zproperty__customerIdr  )
meeting_idrS  r  r  r  r  r  r   rA   meeting_statusr   r  z)Booking meeting list fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r  r~   r   rJ   rK   rc   r  r   r  r  r   rA   r  r  r  r   r   )
r   r   r   r   r   r  booking_objr  Zbookingr  r-   r-   r.   ri   "  s>    2zBookingMeetingList.getNr  r-   r-   r-   r.   r  "  s   r  c                   @   s   e Zd Zdd ZdS )BookingMeetingStatusc              
   C   s  z|j d}|s*t|jdd|jdW S |j d}|sRt|jdd|jdW S tjj|d }|st|jdd|jdW S ||_|	  t
jj|jd	|jj d
 | dd t|jdd|jdW S  ty } z&t|jt|d|jdW  Y d }~S d }~0 0 d S )Nr  meeting_id is requiredr  r   r   zstatus is requiredr   No meeting foundzYou booking meeting forz
 has been r  r  zStatus changed successfully)r4   ri   r   rj   r  rm   rn   ro   r  rv   r  rr   r   r  r   r   r   r   r2   )r   r   r  r   r  r   r-   r-   r.   r   !#  s     $zBookingMeetingStatus.postNr   r-   r-   r-   r.   r   #  s   r  c                   @   s   e Zd Zdd ZdS )AcceptBookingsMeetingc              
   C   s  z|j d}|s*ttjddtjdW S tjj|d }|sXttjddtjdW S |j d}d|_	|
  td	||jjd
}|}tj}|jj}d}	tj|	|||g|d ttjddtjdW S  ty }
 z&ttjt|
dtjdW  Y d }
~
S d }
~
0 0 d S )Nr  r  r  r   r   r  accept_messageacceptedzaccept_meeting.html)r  r  zMeeting Acceptedr   z%booking meeting accepted successfullyr4   ri   r   r   rj   r  rm   rn   ro   r  rv   r   r  r   r   rw   r   r:   r   r   r   r   r   r2   )r   r   r  r  r  r   r   rT   rU   rS   r   r-   r-   r.   r   8#  s&    zAcceptBookingsMeeting.postNr   r-   r-   r-   r.   r  7#  s   r  c                   @   s   e Zd Zdd ZdS )RejectBookingsMeetingc              
   C   s  z|j d}|s*ttjddtjdW S tjj|d }|sXttjddtjdW S d|_	|
  |j d}td	||jjd
}|}tj}|jj}d}	tj|	|||g|d ttjddtjdW S  ty }
 z&ttjt|
dtjdW  Y d }
~
S d }
~
0 0 d S )Nr  r  r  r   r   r  Zrejectedreject_reasonzreject_meeting.html)r  r  zMeeting Rejectedr   z$Booked meeting rejected successfullyr  )r   r   r  r  r  r   r   rT   rU   rS   r   r-   r-   r.   r   P#  s&    zRejectBookingsMeeting.postNr   r-   r-   r-   r.   r  O#  s   r  c                   @   s   e Zd Zdd ZdS )ConfirmDealMeetingc              
   C   s   z||j d}|s*ttjddtjdW S tjj|d }|sXttjddtjdW S d|_	|
  ttjddtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )	Nr  r  r  r   r   r  Zconfirm_dealzDeal confirmed successfullyr4   ri   r   r   rj   r  rm   rn   ro   r  rv   r   r   r   r2   r   r   r  r  r   r-   r-   r.   r   i#  s    zConfirmDealMeeting.postNr   r-   r-   r-   r.   r  h#  s   r  c                   @   s   e Zd Zdd ZdS )CancelDealMeetingc              
   C   s   z||j d}|s*ttjddtjdW S tjj|d }|sXttjddtjdW S d|_	|
  ttjddtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )	Nr  r  r  r   r   r  Zcancle_dealz"Deal meeting canceled successfullyr  r  r-   r-   r.   r   y#  s    zCancelDealMeeting.postNr   r-   r-   r-   r.   r  x#  s   r  c                   @   s   e Zd Zdd ZdS )CancelRequestMeetingc              
   C   s   z||j d}|s*ttjddtjdW S tjj|d }|sXttjddtjdW S d|_	|
  ttjddtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )	Nr  r  r  r   r   r  Zcancle_requestz%request meeting canceled successfullyr  r  r-   r-   r.   r   #  s    zCancelRequestMeeting.postNr   r-   r-   r-   r.   r  #  s   r  c                   @   s   e Zd Zdd ZdS )MeetingDealPaymentc           	   
   C   s  z~zt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S |j
d}|sttjddtjdW S tjj|d		 }|d
krtjj|d||d d|_|  ttjd|jjdtjdW S |j
d}|s:ttjddtjdW S tjjdd|d||d d|_|  ttjd|jjdtjdW S W n@ ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   rA  rB  r  r  r  r   rD  rE  rF  Zdeal_completedrK  rR  rL  rM  rN  r  rO  rQ  )r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r  MeetingPaymentrr   r  rv   r   r   r~   r   )	r   r   r   r   r   rA  r  rT  rL  r-   r-   r.   r   #  s6    2
"zMeetingDealPayment.postNr   r-   r-   r-   r.   r  #  s   r  c                   @   s   e Zd Zdd ZdS )MyMeetingPaymentDealsc           	   
   C   s  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|d}g }|D ]:}|j|j|j|jj|j|j|jjj|jd}|| qxttjd|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   rW  rX  z,meeting payment details fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  r~   rG  rH  rI  rP  rL  r  r   r  r  r   r   rY  r-   r-   r.   ri   #  s,    2
zMyMeetingPaymentDeals.getNr  r-   r-   r-   r.   r  #  s   r  c                   @   s   e Zd Zdd ZdS )ApproveOfflineMeetingPaymentc              
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|j
d}|sttjddtjdW S tjj|d	 }|sttjd	dtjdW S |d
k rd|_tjj|jd|jj d dd npd|_|jj}d}	t|	tj|gd|jj d|jj d|jj d}
|
jdd tjj|jd|jj d dd |  ttjddtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r  r\  r  r  r   zNo meeting found.r)  Zdeal_finishedr]  r^  r  r  Zpayment_rejectedr_  r6  r  r`  rR   FrW   ra  z!Offline meeting payment approved )r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r  r  r  rr   r   r  r   r:   r   r   rw   rJ   rK   rx   rv   r   r   )r   r   r   r   r   r  r\  r1  r   rS   r7  r-   r-   r.   r   #  s4    2
"2 z!ApproveOfflineMeetingPayment.postNr   r-   r-   r-   r.   r  #  s   r  c                   @   s   e Zd Zdd ZdS )MyMeetingPaymentDetailsc              
   C   s4  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj|d	 }|sttjddtjdW S |j|j|j|j|j|jd	}ttjd
|dtjdW S  ty. } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r  r  r  rc  rd  re  z+meeting payment detail fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r  r~   rG  rH  rI  rP  rL  r   r   )r   r   r   r   r   r  rZ  r  r-   r-   r.   ri   #  s,    2zMyMeetingPaymentDetails.getNr  r-   r-   r-   r.   r  #  s   r  c                   @   s   e Zd Zdd ZdS )GetMeetingRecipetDatac              
   C   s$  zzt |}W n@ tyN } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj|d	 }|sttjddtjdW S |j|jd	}ttjd
|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   r  r  r  rc  rd  rh  z$Meeting recipet fetched successfullyrD  )r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   rj   r  r~   rL  r   r   rf  r-   r-   r.   ri   $  s$    2zGetMeetingRecipetData.getNr  r-   r-   r-   r.   r  $  s   r  c                   @   s   e Zd Zdd ZdS )GetNewsletterc              
   C   s   z||j d}|s*ttjddtjdW S tjj|d }|rXttjddtjdW S tjj	|d ttj
ddtj
dW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )	Nr:   rC   r  r   r   z)This email already enabled the newsletterz news letter fetched successfullyr?   )r4   ri   r   r   rj   
Newsletterrm   rn   ro   rr   r   r   r   r2   )r   r   r:   Zemail_checkr   r-   r-   r.   r   )$  s    zGetNewsletter.postNr   r-   r-   r-   r.   r  ($  s   r  c                   @   s   e Zd Zdd ZdS )SendAgencyPropertyRequestc              
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
}|d}|d}|d}|d}	|sttjdd	tjdW S |sttjd
d	tjdW S |sttjdd	tjdW S |	sttjdd	tjdW S |j}
|j}t }t|
}t|}d}|t||d  ||d  ||d  ||d  dtj tjj|dd}|D ]}tjj|||||	|d qxttjdd	tjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr?   r   r   rt  r   r:   r  rC   r  rv  r  r*  
   fffff[@Zlatitude__gteZlatitude__lteZlongitude__gteZlongitude__lter  r=   )rZ   rt  r   r:   r  location_agencyrw  )r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r   r   r   r  addANDAgencyPropertyRequestsrr   r   r   )r   r   r   r   r   r4   rt  r   r:   r  customer_latcustomer_longlookupsr  longr  rJ  r  r-   r-   r.   r   9$  s@    2



:zSendAgencyPropertyRequest.postNr   r-   r-   r-   r.   r  8$  s   r  c                   @   s   e Zd Zdd ZdS )MyAgencySendReceivedRequestc              
   C   s  zZzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}g }|dkrtjj|d}|D ],}|j|j|j|j|j|jd}	||	 qntjj|jd}
|
D ]p}tjj|jjdtd	d
 }|jj|jj|jjd |jj |jj|jj|jj|jjt|d}|| qttjd|dtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr  r   r   r  r  r  )r~   rt  r:   r   r  r   )agency_receive_customerr  r  r  )r~   r  agency_nameZagency_phone_numberZagency_emailr  r   r  successrD  ) r   r   r   r   r   r2   rq   rm   rn   ro   r  ri   r  r~   rt  r:   r   r  property_statusr  AgencyApprovedPropertyAgencyRatingAndReviewr  r  r   property_requestrJ   rK   rd   r  r   r   )r   r   r   r   r   r  r  ZsendrequestObjreqZsend_all_dataZrecrequestObjr  Zrecived_all_datar-   r-   r.   ri   ^$  sF    2 zMyAgencySendReceivedRequest.getNr  r-   r-   r-   r.   r  ]$  s   r  c                   @   s   e Zd Zdd ZdS )AcceptAgencyRequestc           	   
   C   s`  zzt |}W n< tyL } z$tdt|itjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S |j
d}|sttjddtjdW S tjj|d		 }tjj|d		 }tjj|d	jd
|d tjj|d|j dd ttjddtjdW S  tyZ } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )NrA   r   r   r  zrequest_id is requiredr  r  zagency_id is requiredr   r)  )r  r  z#You request has been accepted from Zcustomer_agency_accept)r  rA   rQ   zrequest accepted successfully)r   r   r   r2   r   r   rq   rm   rn   ro   r4   ri   rj   r  r   AgencyNotificationsrr   r   r   r   )	r   r   r   r   r   r  r  rJ  Zprop_objr-   r-   r.   r   $  s&    .zAcceptAgencyRequest.postNr   r-   r-   r-   r.   r  $  s   r  c                   @   s   e Zd Zdd ZdS )SendLawyerContractDealc              
   C   s  zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S tjj|d	 }|sttjddtjdW S |jd	krttjd
dtjdW S |j}|j}t }	t|}
t|}d}|	t|
|d  |
|d  ||d  ||d  dtj tjj|	dd}|D ]p}tjj|||d tjjdd}d|j d |j }|D ]0}|j}d}t|tj|g|d}|jdd qqPttjddtjdW S  ty } z&ttj t|dtj dW  Y d }~S d }~0 0 d S )Nr?   r   r   
inquire_idzinquire_id is requiredr  r   zNo inquire foundr.  r/  r  r  r  rM   r  )inquiryrZ   rM   z=
A new contract request for propety project is generated by:
r  zContract Request:rR   FrW   zcontract deal sent successfully)!r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   r  r  r   r   r   r   r  r  r  LawyerContractDealsrr   rJ   rK   r:   r   r   rw   rx   r   r   )r   r   r   r   r   r  r1  r  r  r  r  r  r  
lawyer_objrM   message_bodyr   rS   rA   r-   r-   r.   r   $  sD    2
:zSendLawyerContractDeal.postNr   r-   r-   r-   r.   r  $  s   r  c                   @   s   e Zd Zdd ZdS )myLawyerContractDealc           	      C   s8   zzt |}W n@ tyP } z(ttjt|dtjdW  Y d }~W S d }~0 0 tjj|d	 }t
jj|d}g }|D ]d}|j|jj|jjjjd |jjjj |jjjj|jjjj|jj|jj|jj|jjd	}|| qzttjd|dW S  ty2 } z&ttjt|d	tjdW  Y d }~S d }~0 0 d S )
Nr?   r   r   r  r  )	r~   r  Zproperty_project_customer_nameZproperty_project_customer_emailZ&property_project_customer_phone_numberr  r  rS  r   z Lawyer deal fetched successfullyr@   r  r4   r  )r   r   r   r   r   r2   rq   rm   rn   ro   r  rr   r~   r  r  r   rJ   rK   r:   rd   rk  r   r   r  r   r   )	r   r   r   r   r   r2  r  rI  r  r-   r-   r.   ri   $  s.    2

zmyLawyerContractDeal.getNr  r-   r-   r-   r.   r  $  s   r  c                   @   s   e Zd Zdd ZdS )getCurrencyListingc              
   C   s   zVt jjdd}g }|D ]$}|j|j|j|jd}|| qtt	j
d|dt	j
dW S  ty } z&tt	jt|dt	jdW  Y d }~S d }~0 0 d S )NTr  r~   symbolr   converted_pricez%currency listing fetched successfullyr  r   r  )CurrencyHandlerrm   rn   r~   r  r   r  r  r   r   r   r   r   r2   )r   r   currency_objr  currencyr  r   r-   r-   r.   ri   $  s    zgetCurrencyListing.getNr  r-   r-   r-   r.   r  $  s   r  c                   @   s   e Zd Zdd ZdS )getCurrencyDetailsc              
   C   s   zl|j d}|s*ttjddtjdW S tjj|dd }|j	|j
|j|jd}ttjd|d	tjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )
Ncurrency_idzCurrency id is requiredr  r   Tr~   rO  r  z%currency details fetched successfullyr  )r  ri   r   r   rj   r  rm   rn   ro   r~   r  r   r  r   r   r   r2   )r   r   r  r  r  r   r-   r-   r.   ri   $  s    zgetCurrencyDetails.getNr  r-   r-   r-   r.   r   $  s   r   c                   @   s   e Zd Zdd ZdS )homePageDataListingc           '   W      s  t |}|r<tj|tjdgd}|d }tjj|d }nd}t	jjddd
d	}tjjddd
d	}tjjddd
d	}tjjddd
d	}	tjjddd
d	}
tjjddd
d	}tjjddd
d	}tjjdd

d	}tjjdd

d	}tjjdd

d	}tjjdd

d	}tjjdd

d	}tjjdd

d	}tjjdd
d	}tjjdd
d	}|jd|jd}|jd|jd|jd|jd|jd |jdg }|r|D ]}|jdkrd}q|jdkrd}qd}||j|jjd |jj  |jj|jj!|jj"t#$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|jA|jD|jE|jF|jG|jH|jI|jJ|jK|jL|jM|jN|jO|jP|jQ|jR|jS|jT|jU|jV|jW|jX|jY|jZ|j[|j\|j]|j^|j_|j`|ja|jb|jc|jd|je|jf|jg|jh|ji|j|jjrx|jjjnd |jk|jl|jm||jnddS q|r|D ]h}tojj|j|d }|rd}nd}|jdkrd}n|jdkrd}nd}||j|jjd |jj  |jp|j1|j2|jq|j%r6t#$|j%nd |jr|j'|js|jG|jC|jE|jt|jt|jN|jV|jA|ju|jv|jw|jx|jy|jz|j{|j||j}|j~|j|j|j|j|j|j|j|j|j|jb|jc|jd|je|j|jg|j|j|j|jjr|jjjnd |jk|jh|ji|jl|jm|||jndd8 q|r|D ]}tjj|j|d }|r@d}nd}|jdkrVd}n|jdkrhd}nd}|j|j|j|j|j|jh|ji|jb|j|j|j|j|j|jb||jk|j|jnd|d }|| q|rn|D ]}tjj|j|d! }|rd}nd}|j|j|j|j|j|j|j|jc|jd|je|jf|jg|j|j|j|j|j|j|jb|jh|ji|jn|d"d#}|| q|r|D ]}tjj|j|d$ }|rd}nd}||j|jjd |jj  |jp|j1t#$|j|j&|j'|jp|j2|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jt#$|j(|j|j|j|j|j|j]|j|j|j|j|j|j|j|jb|jh|ji|jk|jl||jnd%d&1 qx|	r|	D ],} tjj| j|d' }|rd}nd}| jdkrd}n| jdkrd}nd}|| j| j1| jj| jd | j | j| jt#$| j| j| j| j| j| j| j=| j| j| j| j| j| j| j| j| j| j| j| jh| ji| jb| j| j| j| j| j| j| j| jk| j|| jl|| jc| jd| je| jf| jg| j| j2| jnd(d)0 q|
	r|
D ]}!tjj|!j|d* }|rd}nd}||!j|!jj|!jjd |!jj  |!j)|!j|!j&|!j|!j*|!j+|!j,|!j-|!j-|!j.|!j/|!j0|!j|!j2|!j3|!j4|!j5|!j|!j7|!j8|!j9|!j.|!j:|!j;|!j<|!j=|!j|!j?|!j|!jb|!jh|!ji|!jk|!j|!jd+d,' q|
r&|D ]d}"tjj|"j|d- }|	rd}nd}||"j|"j)|"j)|"js|"j2|"jB|"jA|"jA||"jk|"jld.d/ 	q|rj|D ]6}#tjj|#j|d0 }|
rXd}nd}|#jdk
rnd}n|#jdk
rd}nd}||#j|#jj|#jjd |#jj  |#j|#j|#j|#j|#j1|#j|#j|#j|#j&|#j|#j|#j)|#j|#jc|#jd|#je|#jf|#jg|#j|#jb|#jh|#ji|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#j|#jl||#jk||#jnd1d23 
q0g }$|r|D ]x}|jj|jj|jj|jj|jj|jjh|jji|jjb|jj|jj|jj|jj|jj|jjb|jjk|jjdd3}|$| qx|rn|D ]p}|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjb|jjh|jjid4}|$| q|r|D ]D}|$|jj|jjjd |jjj  |jjp|jj1t#$|jj|jj&|jj'|jjp|jj2|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jj|jjt#$|jj(|jj|jj|jj|jj|jj|jj]|jj|jj|jj|jj|jj|jj|jj|jjb|jjh|jji|jjk|jjld%d5/ qx|r|D ]}!|$|!jj|!jjj|!jjjd |!jjj  |!jj)|!jj|!jj&|!jj|!jj*|!jj+|!jj,|!jj-|!jj-|!jj.|!jj/|!jj0|!jj|!jj2|!jj3|!jj4|!jj5|!jj|!jj7|!jj8|!jj9|!jj.|!jj:|!jj;|!jj<|!jj=|!jj|!jj?|!jj|!jjb|!jjh|!jjid+d6$ q|r|D ]J}"|$|"jj|"jj)|"jj)|"jjs|"jj2|"jjB|"jjA|"jjA|"jjld.d7
 q|rh|D ]@}#|$|#jj|#jjj|#jjjd |#jjj  |#jj|#jj|#jj|#jj|#jj1|#jj|#jj|#jj|#jj&|#jj|#jj|#jj)|#jj|#jjc|#jjd|#jje|#jjf|#jjg|#jj|#jjb|#jjh|#jji|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jj|#jjl|#jjkd1d80 q$|d9kr\rfd:d;|D }rfd<d;|D }r҈rttfd=d;|D } rr|r|d d r|d d r fd>d;|D }rfd?d;|D }g }%|D ]}&|%|& q4|%}t|d@dA dB}n2rtfdCd;|D }t| t|dDdA dB}ttjdE||$dFtjdGS )HNr  r  r   r   r   Tr   rO  r   r\   )r]  r  rI  rL  search_datar  r  r  r   r   r  r  r  r  r  )Sr~   rS  r]   r  r  rJ  r  rL  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"  r  r  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  rb  r   r_  r   r  ra  r   r   r   r  r  r  r  r   rn  rI  r  Fr  )8r~   rS  r   r  r[  r  rJ  r  rL  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  r  rb  r   r_  r   r  ra  r  r  r   r  r  r   r   r  r  r]  r   rn  rI  r  r   )r~   rG  rJ  r  r  r   r   rb  r  r  rO  r  r  rb  r]  r  r  rn  rI  r   r  r   )r~   rG  rJ  rK  rN  rO  rP  r   r_  r   r`  ra  r   r  rT  rZ  r]  r^  rb  r   r   rn  r]  rI  rP  rR  )1r~   rS  r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r  r^  r_  r`  ra  rb  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r  r  r]  rn  rI  rr  rt  )0r~   r  r]   r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r  r{  r|  r}  r   r   rb  r~  r  r  r  r  r  r  r  rc  r]  r  r   r   r_  r   r`  ra  rM  r[  rn  rI  r  r  )'r~   r]   r  r  rJ  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   rb  r   r   r  r   rc  rI  r  r  )r~   rG  r   rJ  r[  r"  r  r  r]  r  r  rI  r  r   )3r~   r]   r  r  r  ri  rj  r  rd  r  rJ  r  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r  r  r]  r  r   rn  rI  )r~   rG  rJ  r  r  r   r   rb  r  r  rO  r  r  rb  r  r  rI  )r~   rG  rJ  rK  rN  rO  rP  r  rT  rZ  r]  r^  rb  r   r   )/r~   rS  r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r  r^  r_  r`  ra  rb  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r  r  rI  )$r~   r]   r  r  rJ  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   rb  r   r   rI  
r~   rG  r   rJ  r[  r"  r  r  r  rI  )0r~   r]   r  r  r  ri  rj  r  rd  r  rJ  r  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r  r  r  rI  r  c                    s   g | ]}|d   kr|qS r  r-   r  r  r-   r.   r  '  r  z+homePageDataListing.get.<locals>.<listcomp>c                    s    g | ]}|d  t  kr|qS r  r  r  r  r-   r.   r  '  r  c                    s0   g | ](}t |d    kr$ krn q|qS r  r  r  r  r-   r.   r  '  r  c                    s0   g | ](}t  |d  krt |d kr|qS r   r   r  r  r  r-   r.   r  '  r  c                    s   g | ]}|d   kr|qS rG  r-   r  r  r-   r.   r  '  r  c                 S   s   |  dd |  dd fS Nrn  Tr     r  r  r-   r-   r.   r  (  r  z)homePageDataListing.get.<locals>.<lambda>r  c                    s   g | ]}|d   kr|qS r  r-   r  r  r-   r.   r  (  r  c                 S   s   |  dd |  dd fS r  r  r  r-   r-   r.   r  
(  r  z"home page data listed successfully)r@   rA   r4   Zpopular_datar   )r   r  r  r   r  rq   rm   rn   ro   r   r{   r   r   r   r   r   r   r  r  r  rW  r  r  r
  rF  r  ri   r   r  r~   r   rJ   rK   rd   rc   r  r  r  r  rL  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"  r  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  rb  r   r_  r   r`  ra  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   r  r  r  r  r  r  r  r  rG  rJ  r  r  r  rO  r  rD  rK  rN  rP  r   rV  rT  rZ  r]  r^  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  re  rf  rg  rh  ri  rj  r1  rk  r:   r   rl  rm  r  r8   r9   ru  rv  r  r   r^   r   rw  rx  ry  rl  rz  r{  r|  r}  r~  r  r  r  r  r  r  rc  rM  r  r  r  r  r   r  r  ri  rj  rd  r  r  rH  r  r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rQ  rX  r  r  r  r  r   r  r   r   )'r   r   r   r  r   r   r  r  r  r  r  r  r  Zpopular_sale_propertyZpopular_rent_propertyZpopular_invest_companyZpopular_invest_projectZpopular_bussiness_saleZpopular_property_projectr  r  rL  r   r  r  r  r  r  r  r  r  r  r  r  r  r  ZpopularDatar  r4   r-   r   r   r  r  r  r  r  r.   ri   %  s   

V
?


2

1+
9
0
$


5

zhomePageDataListing.getNr  r-   r-   r-   r.   r  %  s   r  c                   @   s   e Zd Zdd ZdS )homepageUnauthorizec           ,   V      s  t jjddd}tjjddd}tjjddd}tjjddd}tjjddd}tjjddd}tjjddd}t	jjdd}	t
jjdd}
tjjdd}|jd|jd}|jd|jd|jd	|jd
|jd |jdg }|r|D ]}|jdkr"d}q|jdkr6d}qd}||j|jjd |jj |jj|jj|jjt|j|j|j|j|j|j|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|jD|jE|jF|jG|jH|jI|jJ|jK|jL|jM|jN|jO|jP|jQ|jR|jS|jT|jU|jV|jW|jX|jY|jZ|j[|j\|j|j]r|j]jnd |j^|j_|j`||jaddR q|
r|
D ]J}|jdkrd}n|jdkrd}nd}tb|j ||j|jjd |jj |jc|j$|j%|jd|jr6t|jnd |je|j|jf|j:|j6|j8|jg|jg|jA|jI|j4|jh|ji|jj|jk|jl|jm|jn|jo|jp|jq|jr|js|jt|ju|jv|jw|jx|jy|jz|jU|jV|jW|jX|j{|jZ|j||j}|j|j]r|j]jnd |j^|j[|j\|j_|j`|ja|dd7 q|r|D ]}|jdkr.d}n|jdkr@d}nd}|j|j~|j|j|j|j[|j\|jU|j|j|j|j|j|jU|jd|ja|d}|| q|rB|D ]}|jdkrd}n|jdkrd}nd}|j|j~|j|j|j|j|j|jV|jW|jX|jY|jZ|j|j|j|j|j|j|jU|j[|j\d|ja|d}|| q|r8|D ]}||j|jjd |jj |jc|j$t|j|j|j|jc|j%|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jt|j|j|j|j|j|j|jP|j|j|j|j|j|j|j|jU|j[|j\|j^|j_|jadd0 qL|rJ|D ]}|jdkrZd}n|jdkrld}nd}||j|j$|jj|jd |j |j|jt|j|j|j|j|j|j|j0|j|j|j|j|j|j|j|j|j|j|j|j[|j\|jU|j|j|j|j|j|j|j|j^|j|j_||jV|jW|jX|jY|jZ|j|j%|jadd/ qB|r
|D ]}||j|jj|jjd |jj |j|j|j|j|j|j|j|j |j |j!|j"|j#|j|j%|j&|j'|j(|j|j*|j+|j,|j!|j-|j.|j/|j0|j|j2|j|jU|j[|j\|jdd% qT|rN|D ]8}||j|j|j|jf|j%|j5|j4|j4|j_d d!
 q|	rj|D ]}|jdkrpd}n|jdkrd}nd}||j|jj|jjd |jj |j|j|j|j|j$|j|j|j|j|j|j|j|j|jV|jW|jX|jY|jZ|j|jU|j[|j\|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j_|j^||jad"d#2 qX|d$k
r	rfd%d&|D }	rfd'd&|D }	rԈ	rttfd(d&|D }
r>fd)d&|D }g }|D ]}|| 	q|}n2
r$fd*d&|D }t| t|d+d, d-}tjjd.d/ }|j|j|j|jd0}g }tjjd1d/ }|D ]&}|j|j|j|jd0} ||  
qtjjdd}!g }"|!D ]&}#|#j|#j|#j~|#j%d2} |"|  
qg }$tjjdd}%|%D ]"}&|&j|&j~|&j%d3} |$|  
qg }'tjjdd}(|(D ]$})|)j|)j~|)j%|)j|)j|)jd4} q6g }*|	D ]*}+|+j|+j|+j|+j~|+j%d5} |*|  qd|d$krrfd6d&|D }rʇfd7d&|D }rrttfd8d&|D } r<r<|r<|d d r<|d d r< fd9d&|D }rfd:d&|D }g }|D ]}|| q\|}t|d;d, d-}n2rfd<d&|D }t| t|d=d, d-}ttjd>||*||"d?tjd@S )ANTr   r  r  rI  rL  r  r  r  r  r   r   r   r  r  r  r  r  Rr~   rS  r]   r  r  rJ  r  rL  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"  r  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  rb  r   r_  r   r  ra  r   r   r   r  r  r  r  r   rn  rI  r  7r~   rS  r   r  r[  r  rJ  r  rL  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  r  rb  r   r_  r   r  ra  r  r  r   r  r  r   r   r  r  rn  r   rI  r   r~   rG  rJ  r  r  r   r   rb  r  r  rO  r  r  rb  r  rI  rn  r   r   r~   rG  rJ  rK  rN  rO  rP  r   r_  r   r`  ra  r   r  rT  rZ  r]  r^  rb  r   r   rI  rn  r   rR  0r~   rS  r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r  r^  r_  r`  ra  rb  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r  r  rn  rI  rt  )/r~   r  r]   r  ru  rv  r  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r  r{  r|  r}  r   r   rb  r~  r  r  r  r  r  r  r  rc  r  r   r   r_  r   r`  ra  rM  r[  rn  rI  r  %r~   r]   r  r  rJ  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   rb  r   r   r   rI  r  r  r   2r~   r]   r  r  r  ri  rj  r  rd  r  rJ  r  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r  r  r  r   rn  rI  r  c                    s   g | ]}|d   kr|qS r  r-   r  r  r-   r.   r  )  r  z+homepageUnauthorize.get.<locals>.<listcomp>c                    s    g | ]}|d  t  kr|qS r  r  r  r  r-   r.   r  )  r  c                    s,   g | ]$}|d    kr  krn q|qS r  r-   r  r  r-   r.   r  )  r  c                    s   g | ]}|d   kr|qS r	  r-   r  r
  r-   r.   r  *  r  c                    s   g | ]}|d   kr|qS r  r-   r  r  r-   r.   r  *  r  c                 S   s   |  dd |  dd fS r  r  r  r-   r-   r.   r  *  r  z)homepageUnauthorize.get.<locals>.<lambda>r  ZHow_it_work)page_type_name)r~   r  
page_titlepage_contentZAbout_us)r~   r  rG  r[  )r~   rG  r[  r~   rG  r[  ratingsr   designation)r~   step_numberr  rG  r[  c                    s   g | ]}|d   kr|qS r  r-   r  r  r-   r.   r  J*  r  c                    s    g | ]}|d  t  kr|qS r  r  r  r  r-   r.   r  L*  r  c                    s0   g | ](}t |d    kr$ krn q|qS r  r  r  r  r-   r.   r  P*  r  c                    s0   g | ](}t  |d  krt |d kr|qS r  r  r  r  r-   r.   r  U*  r  c                    s   g | ]}|d   kr|qS r	  r-   r  r
  r-   r.   r  W*  r  c                 S   s   |  dd |  dd fS r  r  r  r-   r-   r.   r  ^*  r  c                    s   g | ]}|d   kr|qS r  r-   r  r  r-   r.   r  a*  r  c                 S   s   |  dd |  dd fS r  r  r  r-   r-   r.   r  c*  r  rE  )r@   rA   r4   Zhow_it_workabout_uscategory_datar   )r   rm   rn   r   r   r   r   r   r   
HowItWorksr
  rF  r  ri   r   r  r~   r   rJ   rK   rd   rc   r  r  r  r  rL  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"  r  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  rb  r   r_  r   r`  ra  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   r  r  r  r  r  r  r  r  rG  rJ  r  r  r  rO  r  rD  rK  rN  rP  r   rV  rT  rZ  r]  r^  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  re  rf  rg  rh  ri  rj  r1  rk  r:   r   rl  rm  r8   r9   ru  rv  r  r   r^   r   rw  rx  ry  rl  rz  r{  r|  r}  r~  r  r  r  r  r  r  rc  rM  r  r  r  r  r   r  r  ri  rj  rd  r  r  rH  r  r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  ContentPagesAdminro   r  r  r  CategoriesContentServicesContentTestimonialsr  r   r  r  r  r   r   ),r   r   r  r  r  r  r  r  r  how_objr  r  rL  r   r  r  r  r  r  r  r  r  r  r  r  r  r4   Zhow_it_work_objZhow_datar  Z	about_objr~  r  ZCategories_objr  catZservices_dataZservice_objrf  	test_datatest_objtestZhow_Datahowr-   r  r.   ri   (  sL   

X

>

1

0)

5




zhomepageUnauthorize.getNr  r-   r-   r-   r.   r  (  s   r  c                   @   s   e Zd Zdd ZdS )homepageMobilec           /   V   C   sD)  zDt |}|r>tj|tjdgd}|d }tjj|d }nd}W n> t	y } z&t
tjt|dtjdW  Y d }~S d }~0 0 tjjdd	d
dd d }tjjdd	d
dd d }tjjdd	d
dd d }	tjjdd	d
dd d }
tjjdd	d
dd d }tjjdd	d
dd d }tjjdd	d
dd d }tjjdd}tjjdddd d }tjjdddd d }g }|rX|D ]}|jdkrd}q|jd	krd}qd}||j|jjd |jj |jj|jj|jjt !|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|jD|jE|jF|jG|jH|jI|jJ|jK|jL|jM|jN|jO|jP|jQ|jR|jS|jT|jU|jV|jW|jX|jY|jZ|j[|j\|j]|j^|j_|j`|ja|jb|jc|jd|je|jf|j|jgr6|jgjnd |jh|ji|jj||jkddR q|r|D ]h}tljj|j|d }|rd}nd}|jdkrd}n|jd	krd}nd}||j|jjd |jj |jm|j.|j/|jn|j"rt !|j"nd |jo|j$|jp|jD|j@|jB|jq|jq|jK|jS|j>|jr|js|jt|ju|jv|jw|jx|jy|jz|j{|j||j}|j~|j|j|j|j|j|j|j_|j`|ja|jb|j|jd|j|j|j|jgr|jgjnd |jh|je|jf|ji|jj||jk|dd8 qb|r|D ]}tjj|j|d }|rd}nd}|jdkrd}n|jd	kr&d}nd}|j|j&|jt !|j|j|j|je|jf|j_|j|j|j|j|j|j_|jd|jb|j`|jk||d}|| q|rn|D ]}tjj|j|d }|rd}nd}|jdkrd}n|jd	krd}nd}|j|jt !|j|j|j|j|j|j`|ja|jb|jc|jd|j|j|j|j|j|j|j|j_|je|jfd|jk||d}|| q|	r|	D ]}tjj|j|d }|rd}nd}||j|jjd |jj |jm|j.t !|j|j#|j$|jm|j/|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jt !|j%|j|j|j|j|j|jZ|j|j|j|j|j|j|j|j_|je|jf|jb|j`|jh|ji|jk|dd 3 qx|
r|
D ],}tjj|j|d! }|rd}nd}|jdkrd}n|jd	krd}nd}||j|j.|jj|jd |j |j|jt !|j|j|j|j|j|j|j:|j|j|j|j|j|j|j|j|j|j|j|je|jf|j_|j|j|j|j|j|j|j|jh|j|ji||j`|ja|jb|jc|jd|j|j/||jkd"d#0 q|	r|D ]}tjj|j|d$ }|	r d}nd}||j|jj|jjd |jj |j&t !|j|j#|j|j'|j(|j)|j*|j*|j+|j,|j-|j|j/|j0|j1|j2|j|j4|j5|j6|j+|j7|j8|j9|j:|j|j<|j|j_|je|jf|j|d%d&& q|
r*|D ]`}tjj|j|d' }|	rd}nd}||j|j&|j&|jp|j/|j?|j>|j>|ji|d(d) 	q|rx|D ]@}tjj|j|d* }|
r\d}nd}|jdk
rrd}n|jd	k
rd}nd}||j|jj|jjd |jj |j|j|j|j|j.|j&|j|jt !|j|j#|j|j|j&|j|j`|ja|jb|jc|jd|j|j_|je|jf|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|ji|jh||jk|d+d,4 
q4tjjdd	d
d}tjjdd	d
d}tjjdd	d
d}	tjjdd	d
d}
tjjdd	d
d}tjjdd	d
d}tjjdd	d
d}tjjdd}tjjddd}tjjddd}g }|r|D ]}|jdkrpd}qV|jd	krd}qVd}||j|jjd |jj |jj|jj|jjt !|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|jD|jE|jF|jG|jH|jI|jJ|jK|jL|jM|jN|jO|jP|jQ|jR|jS|jT|jU|jV|jW|jX|jY|jZ|j[|j\|j]|j^|j_|j`|ja|jb|jc|jd|je|jf|j|jgr|jgjnd |jh|ji|jj||jkddR qV|rz|D ]h}tljj|j|d }|r6d}nd}|jdkrLd}n|jd	kr^d}nd}||j|jjd |jj |jm|j.|j/|jn|j"rt !|j"nd |jo|j$|jp|jD|j@|jB|jq|jq|jK|jS|j>|jr|js|jt|ju|jv|jw|jx|jy|jz|j{|j||j}|j~|j|j|j|j|j|j|j_|j`|ja|jb|j|jd|j|j|j|jgrN|jgjnd |jh|je|jf|ji|jj||jk|dd8 q|rN|D ]}tjj|j|d }|rd}nd}|jdkrd}n|jd	krd}nd}|j|j&|j|jrt !|jng |j|j|je|jf|j_|j|j|j|j|j|j_|jd|jb|j`|jk||d}|| q|r&|D ]}tjj|j|d }|r~d}nd}|jdkrd}n|jd	krd}nd}|j|jt !|j|j|j|j|j|j`|ja|jb|jc|jd|j|j|j|j|j|j|j|j_|je|jfd|jk||d}|| qX|	r$|	D ]}||j|jjd |jj |jm|j.t !|j|j#|j$|jm|j/|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jt !|j%|j|j|j|j|j|jZ|j|j|j|j|j|j|j|j_|je|jf|jb|j`|jh|ji|jkdd-2 q0|
r6|
D ]}|jdkrFd}n|jd	krXd}nd}||j|j.|jj|jd |j |j|jt !|j|j|j|j|j|j|j:|j|j|j|j|j|j|j|j|j|j|j|je|jf|j_|j|j|j|j|j|j|j|jh|j|ji||j`|ja|jb|jc|jd|j|j/|jkd"d./ q.|r|D ]}||j|jj|jjd |jj |j&t !|j|j#|j|j'|j(|j)|j*|j*|j+|j,|j-|j|j/|j0|j1|j2|j|j4|j5|j6|j+|j7|j8|j9|j:|j|j<|j|j_|je|jf|jd%d/% q@|r@|D ]8}||j|j&|j&|jp|j/|j?|j>|j>|jid(d0
 q|rf|D ]}|jdkrbd}n|jd	krtd}nd}||j|jj|jjd |jj |j|j|j|j|j.|j&|j|jt !|j|j#|j|j|j&|j|j`|ja|jb|jc|jd|j|j_|je|jf|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|ji|jh||jkd+d13 qJtjjdd	|jd2dd d } tjjdd	|jd2dd d }!tjjdd	|jd2dd d }"tjjdd	|jd2dd d }#tjjdd	|jd2dd d }$tjjdd	|jd2dd d }%tjjdd	|jd2dd d }&tjjd|jd3dd d }'tjjd|jd3dd d }(g })|(rP|(D ]}|jdkrd}q|jd	krd}qd}|)|j|jjd |jj |jj|jj|jjt !|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|jD|jE|jF|jG|jH|jI|jJ|jK|jL|jM|jN|jO|jP|jQ|jR|jS|jT|jU|jV|jW|jX|jY|jZ|j[|j\|j]|j^|j_|j`|ja|jb|jc|jd|je|jf|j|jgr.|jgjnd |jh|ji|jj||jkddR q|'r|'D ]4}|jdkrrd}n|jd	krd}nd}|)|j|jjd |jj |jm|j.|j/|jnt !|j"|jo|j$|jp|jD|j@|jB|jq|jq|jK|jS|j>|jr|js|jt|ju|jv|jw|jx|jy|jz|j{|j||j}|j~|j|j|j|j|j|j|j_|j`|ja|jb|j|jd|j|j|j|jgrh|jgjnd |jh|je|jf|ji|jj|jk|dd47 qZ| r2| D ]}|jdkrd}n|jd	krd}nd}|j|jt !|j|j|j&|j|je|jf|j_|j|j|j|j|j|j_|j|jb|j`d|jk|d5}|)| q|!r|!D ]}|jdkrRd}n|jd	krdd}nd}|j|jt !|j|j|j|j|j|j`|ja|jb|jc|jd|j|j|j|j|j|j|j_|je|jfd|jk|d6}|)| q<|"r|"D ]}|)|j|jjd |jj |jm|j.t !|j|j#|j$|jm|j/|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jt !|j%|j|j|j|j|j|jZ|j|j|j|j|j|j|j|j_|je|jf|jh|ji|jkdd70 q|#r|#D ]}|jdkrd}n|jd	krd}nd}|)|j|j.|jj|jd |j |j|jt !|j|j|j|j|j|j|j:|j|j|j|j|j|j|j|j|j|j|j|je|jf|j_|j|j|j|j|j|j|j|jh|j|ji||j`|ja|jb|jc|jd|j|j/|jkd"d./ q|$r|$D ]}|)|j|jj|jjd |jj |j&t !|j|j#|j|j'|j(|j)|j*|j*|j+|j,|j-|j|j/|j0|j1|j2|j|j4|j5|j6|j+|j7|j8|j9|j:|j|j<|j|j_|je|jf|jd%d/% q|%r|%D ]8}|)|j|j&|j&|jp|j/|j?|j>|j>|jid(d0
 q|&r|&D ]}|jdkrd}n|jd	kr$d}nd}|)|j|jj|jjd |jj |j|j|j|j|j.|j|jt !|j|j#|j|j|j&|j|j`|ja|jb|jc|jd|j|j_|je|jf|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|ji|jh||jkd+d82 qtjjdd	|jd2d} tjjdd	|jd2d}!tjjdd	|jd2d}"tjjdd	|jd2d}#tjjdd	|jd2d}$tjjdd	|jd2d}%tjjdd	|jd2d}&tjjd|jd3d}'tjjd|jd3d}(g }*|(!r|(D ]}|jdk r d} q|jd	k r4d} qd}|*|j|jjd |jj |jj|jj|jjt !|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|jD|jE|jF|jG|jH|jI|jJ|jK|jL|jM|jN|jO|jP|jQ|jR|jS|jT|jU|jV|jW|jX|jY|jZ|j[|j\|j]|j^|j_|j`|ja|jb|jc|jd|je|jf|j|jg!r|jgjnd |jh|ji|jj||jkddR  q|'"r|'D ]4}|jdk!rd}n|jd	k!rd}nd}|*|j|jjd |jj |jm|j.|j/|jnt !|j"|jo|j$|jp|jD|j@|jB|jq|jq|jK|jS|j>|jr|js|jt|ju|jv|jw|jx|jy|jz|j{|j||j}|j~|j|j|j|j|j|j|j_|j`|ja|jb|j|jd|j|j|j|jg"r|jgjnd |jh|je|jf|ji|jj|jk|dd47 !q| #r| D ]}|jdk#rd}n|jd	k#r(d}nd}|j|jt !|j|j|j|je|jf|j_|j|j|j|j|j|j_|jd|jk|d9}|*| #q |!$r6|!D ]}|jdk#rd}n|jd	k#rd}nd}|j|jt !|j|j|j|j|j|j`|ja|jb|jc|jd|j|j|j|j|j|j|j_|je|jfd|jk|d6}|*| #q|"%r,|"D ]}|*|j|jjd |jj |jm|j.t !|j|j#|j$|jm|j/|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jt !|j%|j|j|j|j|j|jZ|j|j|j|j|j|j|j|j_|je|jf|jh|ji|jkdd70 $q@|#&r>|#D ]}|jdk%rNd}n|jd	k%r`d}nd}|*|j|j.|jj|jd |j |j|jt !|j|j|j|j|j|j|j:|j|j|j|j|j|j|j|j|j|j|j|je|jf|j_|j|j|j|j|j|j|j|jh|j|ji||j`|ja|jb|jc|jd|j|j/|jkd"d./ %q6|$'r|$D ]}|*|j|jj|jjd |jj |j&t !|j|j#|j|j'|j(|j)|j*|j*|j+|j,|j-|j|j/|j0|j1|j2|j|j4|j5|j6|j+|j7|j8|j9|j:|j|j<|j|j_|je|jf|jd%d/% &qH|%'rH|%D ]8}|*|j|j&|j&|jp|j/|j?|j>|j>|jid(d0
 'q|&(rj|&D ]}|jdk'rjd}n|jd	k'r|d}nd}|*|j|jj|jjd |jj |j|j|j|j|j.|j|jt !|j|j#|j|j|j&|j|j`|ja|jb|jc|jd|j|j_|je|jf|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|ji|jh||jkd+d82 'qRg }+tjj|jd:dd d; },|,D ]2}-|+|-j|-j|-j|-j|-j_|-je|-jf|-j'd< (qg }.tjj|jd:d},|,D ]2}-|+|-j|-j|-j|-j|-j_|-je|-jf|-j'd< (qt
tjd=t|*t|t|.||)|+d>tjdS )?Nr  r  r   r   r   r?   r   Tr   r  r\   r)   r  r  r  r  r  r  r  r  Fr  )8r~   rS  r   r  r[  r  rJ  r  rL  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  r  rb  r   r_  r   r  ra  r  r  r   r  r  r   r   r  r  r]  rn  r   rI  r  r   )r~   r  rG  rJ  r  r  r   r   rb  r  r  rO  r  r  rb  r  rI  r   r   rn  r]  r   r  r   )r~   rG  rJ  rK  rN  rO  rP  r   r_  r   r`  ra  r   r  rT  rZ  rV  r]  r^  rb  r   r   rI  rn  r]  r   rP  rR  )3r~   rS  r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r  r^  r_  r`  ra  rb  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r   r   r  r  rn  r]  rI  rr  rt  )0r~   r  r]   r  ru  rv  rJ  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r  r{  r|  r}  r   r   rb  r~  r  r  r  r  r  r  r  rc  r  r   r   r_  r   r`  ra  rM  r[  r]  rn  rI  r  r  )&r~   r]   r  r  rJ  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   rb  r   r   r   r]  rI  r  r  )r~   rG  r   rJ  r[  r"  r  r  r  r]  rI  r  r   )4r~   r]   r  r  r  ri  rj  r  r  rd  r  rJ  r  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r  r  r  r   rn  r]  rI  )2r~   rS  r   r  rJ  r  rL  r   r[  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r  r^  r_  r`  ra  rb  rc  rd  r  re  rf  rg  rh  ri  r<  rj  r1  rk  r:   r   rl  rm  rb  r   r   r   r   r  r  rn  rI  /r~   r  r]   r  ru  rv  rJ  r8   r9   r   r^   r   r   r:   rw  rT  rx  ry  rl  rz  r  r{  r|  r}  r   r   rb  r~  r  r  r  r  r  r  r  rc  r  r   r   r_  r   r`  ra  rM  r[  rn  rI  r  r  )3r~   r]   r  r  r  ri  rj  r  r  rd  r  rJ  r  r  rH  r  r  r   r_  r   r`  ra  r   rb  r   r   r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc  r  r  r  r   rn  rI  rO  r   r   r  r  )r~   rG  rJ  r  r  r  r   r   rb  r  r  rO  r  r  rb  r  r   r   rI  rn  r   r  r  r  r  r  d   r~   rG  rJ  r  rb  r   r   r  rE  )r@   rA   Z"total_customer_uploaded_propertiesZtotal_recently_addedtotal_recently_viewedrecently_addedZcustomer_uploaded_propertiesrecently_viewed)r   r  r  r   r  rq   rm   rn   ro   r   r   r   r   r2   r   r{   r   r   r   r   r   r   r  r
  rF  r  r~   r   rJ   rK   rd   rc   r  r  r  r  rL  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"  r  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  rb  r   r_  r   r`  ra  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   r  r  r  r  r  r  r  r  r  rG  rJ  r  r  r  rO  r  rD  r  rK  rN  rP  r   rV  rT  rZ  r]  r^  r  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  re  rf  rg  rh  ri  rj  r1  rk  r:   r   rl  rm  r  r8   r9   ru  rv  r  r   r^   r   rw  rx  ry  rl  rz  r{  r|  r}  r~  r  r  r  r  r  r  rc  rM  rW  r  r  r  r  r   r  r  r  r  ri  rj  rd  r  r  rH  r  r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  RecentlyViewedr   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  r  r  r  r  r  Ztotal_allDataZmysalePropertyZmyrentPropertyZmybussinessSaleZmyhouseWantedRentZmyinvestmentProjectZmyinvestmentCompanyZmypropertyProjectZmycompanySeekingZmypropertyDeveloperZ	myallDataZtotalmyallDatar1  
viewed_objviewr/  r-   r-   r.   ri   l*  s   0

V
>




4

1
*

7

V
>


3

0
)


8"""""""  

V

>



1

0
)


7

V

>



1

0
)


4
zhomepageMobile.getNr  r-   r-   r-   r.   r*  k*  s   r*  c                   @   s   e Zd Zdd ZdS )createConverstationCustomerc              
   C   sV  zt |}W n> tyJ } z&ttjt|dtjdW  Y d }~S d }~0 0 tjj|d	 }|j
d}|sttjddtjdS tjj|d	 }|sttjddtjdS tjj||d		 }|rtd
 |j}ndtd t|jt|j t|j t|j }	t|	}
t|
 d|
}tjjjj|d}tjt||dt||dB 	 }|sztjj||d}|j|_t |_|  t|jt|jt|j d}t!"|}tjj|jj#jt|j|d}t|jt|jt|j d}t!"|}tjj|jj#jt|j|d}|j|_$|j|_%|  |j}ttj&d|dtj&dS )Nr?   r   r   chat_customerzchat_customer is required.r  r   r  )customer_twocustomer_onehereZhere2rN   Zfriendly_name)r8  r7  r~   r   r  r   
attributeszconversation Added successfullyr@   r  twilio_channel_sid)'r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   ConversationCustomersr   r?  rJ   r~   listr   r  r  clientconversationsv1rr   r   sidr	   r  last_messagerv   rc   r   r   participantscustomer_one_twilio_idcustomer_two_twilio_idr   )r   r   r   r   r   r6  Zchat_customer_objexisting_conversationr?  concatinate_namessuffle_stringconversation_nameconversationconversation_objuser_attributesuser_json_attributeschat_user_participantuser_two_attributes#user_two_attributes_json_attributesuser_two_attributes_participantr-   r-   r.   r   12  sh    0
(


$




z createConverstationCustomer.postNr   r-   r-   r-   r.   r5  02  s   r5  c                   @   s   e Zd Zdd ZdS )createTokenc              
   C   s   zt |}|r>tj|tjdgd}|d }tjj|d }nd}|j	}t
ttt|d}trpttd}|| tjjtj jdd	d
d}|| d}	ttjd|	dtjdW S  t y }
 z&ttjt|
dtjdW  Y d }
~
S d }
~
0 0 d S )Nr  r  r   r   r   )r   )Zservice_sidTdefaultz5You have a new message in ${CONVERSATION}: ${MESSAGE})Znew_message_enabledZnew_message_soundZnew_message_template)r   r   zToken Added successfullyr  r   r  )r   r  r  r   r  rq   rm   rn   ro   r~   r'   account_sidapi_sid
api_secretchat_service_sidr$   Z	add_grantrB  rC  rD  ZservicesZconfigurationZnotificationsr   Zto_jwtr   r   r   r   r   r2   )r   r   r   r  r   r   r   Z
chat_grantZnotificationr  r   r-   r-   r.   ri   z2  s2    


zcreateToken.getNr  r-   r-   r-   r.   rV  y2  s   rV  c                   @   s   e Zd Zdd ZdS )customerConverstationListingc                 C   s(  zt |}|r@tj|tjdgd}|d }tjj|d }nd}t	jt
|jdt
|jdB d}t| g }|D ]L}tjj|jjjd	d
d}	td t|	 d}
d}d}|	D ]}td td|j td|j |jr(td t|j |j}
t|
}
|
d }
t|jd }|j}q|jstd t|j d}
t|jd }|j}qt| |j|j|jjd |jj |jj|jj|jj|jjd |jj |jj|jj|jj|
||d}| | qzt!t"j#d|dt"j#dW S  t$y" } z&t!t"j%t&|dt"j%dW  Y d }~S d }~0 0 d S )Nr  r  r   r   r   )r8  )r7  r\   descr   orderlimitz
messages:-rN   zrecord:-zrecord.bodyrA    agozrecord.mediaz
Media filer  )r~   r?  Zcustomer_one_nameZcustomer_one_imagecustomer_one_idZcustomer_one_phone_numberZcustomer_two_nameZcustomer_two_imagecustomer_two_idZcustomer_two_phone_numberrF  timemessage_dater  r  r   r  )'r   r  r  r   r  rq   rm   rn   ro   r@  r   r~   r{   r   rB  rC  rD  r?  messagesrA  rV   mediar   loadsr(   date_createdr8  rJ   rK   rc   rd   r7  r  r   r   r   r   r   r2   r   r   r   r  r   r   rC  Zconversation_listrN  rf  rF  rd  re  recordZconversation_datar   r-   r-   r.   ri   2  st    &



z customerConverstationListing.getNr  r-   r-   r-   r.   r\  2  s   r\  c                   @   s   e Zd Zdd ZdS )allCustomerListc                 C   s   t |}|r<tj|tjdgd}|d }tjj|d }nd}|j	
dd}tj }|rj|j|jd}|r|t|d	t|d
B t|dB t|dB }|d}g }|D ],}	|	j|	j|	j|	j|	j|	jd}
||
 qttjd|dtjdS )Nr  r  r   r   r   rl   rN   r   )Zusername__icontains)ZfirstName__icontains)ZlastName__icontains)Zemail__icontainsr\   )r~   rG   rJ   rK   r:   rc   zcustomer listed successfullyr  r   )r   r  r  r   r  rq   rm   rn   ro   r  ri   r  rE  r~   r   r{   rG   rJ   rK   r:   rc   r  r   r   r   )r   r   r   r  r   r   Zsearch_queryZall_customerr  Zcustr  r-   r-   r.   ri   2  sL    

zallCustomerList.getNr  r-   r-   r-   r.   rl  2  s   rl  c                   @   s   e Zd Zdd ZdS )deleteConverstationc           	   
   C   s   zt |}|r>tj|tjdgd}|d }tjj|d }nd}|j	
d}t| |srttjddtjd	W S tjj|d
 }|  ttjddtjd	W S  ty } z&ttjt|dtjd	W  Y d }~S d }~0 0 d S )Nr  r  r   r   r   converstation_idr  r  r   r   z!conversation deleted successfullyr  )r   r  r  r   r  rq   rm   rn   ro   r  ri   r   r   r   rj   r@  r  r   r   r   r2   	r   r   r   r  r   r   rn  rC  r   r-   r-   r.   ri   #3  s     zdeleteConverstation.getNr  r-   r-   r-   r.   rm  "3  s   rm  c                   @   s   e Zd Zdd ZdS )createConverstationAgencyc              
   C   s  zt |}W n> tyJ } z&ttjt|dtjdW  Y d }~S d }~0 0 tjj|d	 }|j
d}|sttjddtjdS tjj|d	 }|sttjddtjdS tjj||d		 }|r|j}n2t|jt|j t|j t|j }	t|	}
t|
 d
|
}tjjjj|d}tjj||d	}|j|_t |_|  t|jt|jt|jd}t |}tjj|jj!jt|j|d}t|jt|jt|jd}t |}tjj|jj!jt|j|d}|j|_"|j|_#|  |j}ttj$d|dtj$dS )Nr?   r   r   r  zagency_id is required.r  r   zNo agency found)rZ   r  rN   r:  r;  r<  zconversation agency createdr>  )%r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   ConversationAgencyr?  rJ   r~   rA  r   r  r  rB  rC  rD  rr   rE  r	   r  rF  rv   rc   r   r   rG  customer_twilio_idagency_twilio_idr   )r   r   r   r   r   r  rJ  rJ  r?  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  r-   r-   r.   r   >3  s`    0
(







zcreateConverstationAgency.postNr   r-   r-   r-   r.   rp  =3  s   rp  c                   @   s   e Zd Zdd ZdS )"customerAgencyConverstationListingc                 C   st  z,t |}|r:t|tj}|d }tjj|d }nd}t	jj|j
dd}g }|D ]}tjj|jjjddd}	d	}
d	}d	}|	D ]D}|jr|j}
t|jd
 }|j}q|jrd}
t|jd
 }|j}q|j
|j|jj
|jj|jj|jj
|jj|jj|
||d}|| q\ttjd|dtjdW S  tyn } z&ttjt |dtjdW  Y d }~S d }~0 0 d S )Nr   r   r   r  r\   r]  r   r^  rN   ra  r  )r~   r?  r]   rS  r  r  r  Zagency_imagerF  rd  re  z1customer agency conversations listed successfullyr  r   r  )!r   r  r  r   r  rq   rm   rn   ro   rq  r~   r{   rB  rC  rD  r?  rf  rA  rV   r(   ri  rg  rZ   r   r  r  r  r   r   r   r   r   r2   rj  r-   r-   r.   ri   3  sV    z&customerAgencyConverstationListing.getNr  r-   r-   r-   r.   rt  3  s   rt  c                   @   s   e Zd Zdd ZdS )deleteAgencyCustomerChatc           	   
   C   s   zt |}|r8t|tj}|d }tjj|d }nd}|j	
d}|sdttjddtjdW S tjj|d }|  ttjd	dtjdW S  ty } z"td
t|itjdW  Y d }~S d }~0 0 d S )Nr   r   r   rn  r  r  r   r   z)Agency customer chat deleted successfullyrA   )r   r  r  r   r  rq   rm   rn   ro   r4   ri   r   r   rj   ZConversationr  r   r   r2   r   ro  r-   r-   r.   ri   3  s    zdeleteAgencyCustomerChat.getNr  r-   r-   r-   r.   ru  3  s   ru  c                   @   s   e Zd Zdd ZdS )createConverstationLawyerc              
   C   s"  zt |}W n> tyJ } z&ttjt|dtjdW  Y d }~S d }~0 0 tjj|d	 }|j
d}|sttjddtjdS tjj|dd	 }|sttjd	dtjdS tjj|j|jd
	 }|r|j}n2t|jt|j t|j t|j }	t|	}
t|
 d|
}tjjjj|d}tjj||d
}|j|_t |_|  t|jt|jt|jd}t |}tjj|jj!jt|j|d}t|jt|jt|jd}t |}tjj|jj!jtt"j|d}|j|_#|j|_$|  |j}ttj%d|dtj%dS )Nr?   r   r   	lawyer_idzlawyer_id is required.r  Tr  zNo lawyer found)rZ   rM   rN   r:  r;  r<  z,Converstation with lawyer Added successfullyr>  )&r   r   r   r   r   r2   rq   rm   rn   ro   r4   ri   rj   ConversationLawyerr~   r?  rJ   rA  r   r  r  rB  rC  rD  rr   rE  r	   r  rF  rv   rc   r   r   rG  rJ  rr  rs  r   )r   r   r   r   r   rw  r  rJ  r?  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  r-   r-   r.   r   3  s`    0
(







zcreateConverstationLawyer.postNr   r-   r-   r-   r.   rv  3  s   rv  c                   @   s   e Zd Zdd ZdS )"customerLawyerConverstationListingc                 C   st  z,t |}|r:t|tj}|d }tjj|d }nd}t	jj|j
dd}g }|D ]}tjj|jjjddd}	d	}
d	}d	}|	D ]D}|jr|j}
t|jd
 }|j}q|jrd}
t|jd
 }|j}q|j
|j|jj
|jj|jj|jj
|jj|jj|
||d}|| q\ttjd|dtjdW S  tyn } z&ttjt |dtjdW  Y d }~S d }~0 0 d S )Nr   r   r   r  r\   r]  r   r^  rN   ra  r  )r~   r?  r]   rS  r  rw  Zlawyer_nameZlawyer_imagerF  rd  re  z-conversations with lawyer listed successfullyr  r   r  )!r   r  r  r   r  rq   rm   rn   ro   rx  r~   r{   rB  rC  rD  r?  rf  rA  rV   r(   ri  rg  rZ   r   r  rM   r  r   r   r   r   r   r2   rj  r-   r-   r.   ri    4  sV    z&customerLawyerConverstationListing.getNr  r-   r-   r-   r.   ry  4  s   ry  c                   @   s   e Zd Zdd ZdS )deleteLawyerCustomerChatc           	   
   C   s   zt |}|r8t|tj}|d }tjj|d }nd}|j	
d}|sdttjddtjdW S tjj|d }|  ttjd	dtjdW S  ty } z&ttjt|d
tjdW  Y d }~S d }~0 0 d S )Nr   r   r   rn  r  r  r   r   z)lawyer-customer chat deleted successfullyr  )r   r  r  r   r  rq   rm   rn   ro   r4   ri   r   r   rj   rx  r  r   r   r   r2   ro  r-   r-   r.   ri   U4  s    zdeleteLawyerCustomerChat.getNr  r-   r-   r-   r.   rz  T4  s   rz  c                   @   s   e Zd Zdd ZdS )getCommunityChatListingc           
   
   C   s   zt |}|r8t|tj}|d }tjj|d }nhd}t	j
 }|sbttjddtjdW S |D ]}|j|j|j|j|jd}qfttjd|d	tjdW S W n> ty }	 z&ttjt|	d
tjdW  Y d }	~	S d }	~	0 0 d S )Nr   r   r   zNo community chat found.r  r   )r~   channel_namer?  rF  rD  z+Community chat listing fetched successfullyr@   r  r  r  )r   r  r  r   r  rq   rm   rn   ro   CommunityChannelsr  r   r   rj   r~   r|  r?  rF  rD  r   r   r   r2   )
r   r   r   r  r   r   Zcommunity_objZcommr  r   r-   r-   r.   ri   m4  s(    
zgetCommunityChatListing.getNr  r-   r-   r-   r.   r{  l4  s   r{  c                   @   s   e Zd Zdd ZdS )addTestimonialc              
   C   s|  z4t |}|r:t|tj}|d }tjj|d }nd}|j	
d}|sfttjddtjdW S |j	
d}|sttjd	dtjdW S |j	
d
}|sttjddtjdW S |j	
d}	|	sttjddtjdW S |j	
d}
|
sttjddtjdW S tjj||||	|
|d ttjddtjdW S  tyv } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr   r   r   rG  title is requriedr  r   r[  description is requriedr  ratings is requriedr   name is requriedr  designation is requriedrG  r[  r  r   r  rq   r  r  )r   r  r  r   r  rq   rm   rn   ro   r4   ri   r   r   rj   r#  rr   r   r   r   r2   )r   r   r   r  r   r   rG  r[  r  r   r  r   r-   r-   r.   r   4  s4    zaddTestimonial.postNr   r-   r-   r-   r.   r  4  s   r  c                   @   s   e Zd Zdd Zdd ZdS )editTestimonialc           
   
   C   s  zt |}|r8t|tj}|d }tjj|d }nd}|j	
d}|sdttjddtjdW S tjj|d }|sttjd	dtjdW S |j|j|j|j|j|jd
}ttjd|dtjdW S  ty }	 z&ttjt|	dtjdW  Y d }	~	S d }	~	0 0 d S )Nr   r   r   test_idtest_id is requriedr  r   r   zNo testimonial foundr  r  r}  r?   )r   r  r  r   r  rq   rm   rn   ro   r4   ri   r   r   rj   r#  r~   rG  r[  r  r   r  r   r   r   r2   )
r   r   r   r  r   r   r  r'  r  r   r-   r-   r.   ri   4  s.    zeditTestimonial.getc              
   C   s  zft |}|r:t|tj}|d }tjj|d }nd}|j	
d}|sfttjddtjdW S |j	
d}|sttjd	dtjdW S |j	
d
}|sttjddtjdW S |j	
d}	|	sttjddtjdW S |j	
d}
|
sttjddtjdW S |j	
d}|s2ttjddtjdW S tjj|dj|||	|
||d ttjddtjdW S  ty } z&ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr   r   r   r  r  r  r   rG  r  r[  r  r  r  r   r  r  r  r   r  rM  r?   )r   r  r  r   r  rq   rm   rn   ro   r4   ri   r   r   rj   r#  r   r   r   r   r2   )r   r   r   r  r   r   r  rG  r[  r  r   r  r   r-   r-   r.   r   4  s:     zeditTestimonial.postNr  r-   r-   r-   r.   r  4  s   r  c                   @   s   e Zd Zdd ZdS )listingTestimonialc              
   C   s   zt |}|r8t|tj}|d }tjj|d }nd}g }t	jjdd}|D ]$}|j
|j|j|jd}	||	 qRttjddtjd	W S  ty }
 z&ttjt|
d
tjd	W  Y d }
~
S d }
~
0 0 d S )Nr   r   r   Tr  )r~   rG  r[  r  r>  r  r   r?   )r   r  r  r   r  rq   rm   rn   ro   r#  r~   rG  r[  r  r  r   r   r   r   r   r2   )r   r   r   r  r   r   r&  r'  r(  r  r   r-   r-   r.   ri   4  s&    zlistingTestimonial.getNr  r-   r-   r-   r.   r  4  s   r  c                   @   s   e Zd Zdd ZdS )deleteTestimonialc           	   
   C   s   zt |}|r8t|tj}|d }tjj|d }nd}|j	
d}|sdttjddtjdW S tjj|d }|  ttjd	dtjdW S  ty } z&ttjt|d
tjdW  Y d }~S d }~0 0 d S )Nr   r   r   r  r  r  r   r   zDeleted sucessfullyr?   )r   r  r  r   r  rq   rm   rn   ro   r4   ri   r   r   rj   r#  r  r   r   r   r2   )	r   r   r   r  r   r   r  r'  r   r-   r-   r.   ri   5  s    zdeleteTestimonial.getNr  r-   r-   r-   r.   r  5  s   r  c                   @   s   e Zd Zdd ZdS )getFacilityListingc              
   C   s   zNt j d}g }|D ] }|j|j|jd}|| qtt	j
d|dW S  ty } z.t| tt	jt|dt	jdW  Y d }~S d }~0 0 d S )Nr\   )r~   r   r  r>  r}  r  r   )r  rm   r  r{   r~   r   r  r  r   r   r   r   r   r   r2   )r   r   Zfac_objr  Zfacr  r   r-   r-   r.   ri   )5  s    zgetFacilityListing.getNr  r-   r-   r-   r.   r  (5  s   r  c                   @   s   e Zd Zdd ZdS )getProperDeveloperListingc              P   C   s  z|t j d}g }|D ]L}|j|j|j|j|j|j	|j
|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|jD|jE|jF|jG|jH|jI|jJ|jK|jL|jM|jN|jO|jP|jQdN}|R| qtStMjTd|dW S  tUy } z.tV| tStMjWtX|dtMjWdW  Y d }~S d }~0 0 d S )Nr\   )Nr~   r]   r  r  rL  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  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r+  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  r   r_  r   r`  ra  r   rb  r   r   r  r   rc  r  r  r  r>  r}  r  r   )YrF  rm   r  r{   r~   r  r  r  rL  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  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r+  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  r   r_  r   r`  ra  r   rb  r   r   r  r   rc  r  r  r  r  r   r   r   r   r   r2   )r   r   Zdev_objr  r  r  r   r-   r-   r.   ri   <5  s    
PzgetProperDeveloperListing.getNr  r-   r-   r-   r.   r  ;5  s   r  c                   @   s   e Zd Zdd ZdS )getFeaturePlansc                 C   sN   t j }g }|D ](}|j|j|j|j|jd}|| qt	t
jd|dS )N)r~   r   r  daysr  r>  r}  )FeatureAddPricingrm   r  r~   r   r  r  r  r  r   r   r   )r   r   Zfeature_objr  featurer  r-   r-   r.   ri   5  s    
zgetFeaturePlans.getNr  r-   r-   r-   r.   r  5  s   r  c                   @   s   e Zd Zdd ZdS )addFeatureAdc              
   C   s  zPzt |}W n< tyL } z$tdt|itjdW  Y d }~W S d }~0 0 |j}tjj	|d
 }|jd}|sttjddtjdW S |jd}|sttjddtjdW S |d	}|d
}	|d}
|sttjddtjdW S |	s
tdditjdW S tjj	|d
 }tjt_t }tjjt|
d d|	dd}|rBtjj	|d
 }zt|j}W n ty   td}Y n0 t t|d }tjj|||||dd}|dkrtjj	|d
 }d|_||_||_|  nR|dkr*t jj	|d
 }d|_||_||_|  n|dkrbt!jj	|d
 }d|_||_||_|  n|dkrt"jj	|d
 }d|_||_||_|  n|dkrt#jj	|d
 }d|_||_||_|  np|dkr
t$jj	|d
 }d|_||_||_|  n8|dkrBt%jj	|d
 }d|_||_||_|  n ttj&ddW S  ty } z.t'| ttj(t|dtj(dW  Y d }~S d }~0 0 d S )NrA   r   r   r  r*  r  r  r  r}   payment_tokenr  zplan_id is requiredpayment_token is requiredr   r-  usdzPurchase Feature Adamountr  sourcer[  r   )r  T)rZ   r   payment_dater  r  r[   r  r  r  Zhouse_for_rentcompany_seeking_equitybussiness_for_saler  #Subscription purchased successfully))r   r   r   r2   r   r   r4   rq   rm   rn   ro   ri   rj   r  r   STRIPE_SECRET_KEYstripeapi_keyr	   todayChargerr   r  r  
ValueErrorr
   CustomersFeatureAdsHistoryr   r  feature_planfeatured_end_daterv   r   r   r   r
  r   rF  r   r   r   )r   r   r   r   r4   r   r  r  r}   r  r  Zsub_objr  charger  Zdays_to_addZ	last_dateZnew_datary  r-   r-   r.   r   5  s    .















zaddFeatureAd.postNr   r-   r-   r-   r.   r  5  s   r  c                   @   s   e Zd Zdd ZdS )addToRecentc                 C   s&  zzt |}W n< tyL } z$tdt|itjdW  Y d }~W S d }~0 0 tjj|d	 }|j
d}|sttjddtjdW S |j
d}|sttjddtjdW S |j
d	}|sttjd
dtjdW S |j
d}|sttjddtjdW S |j
d}	|	s,ttjddtjdW S |j
d}
|
sVttjddtjdW S |j
d}|sttjddtjdW S |j
d}|sttjddtjdW S tjj||||||	|
||d	 ttjddW S  ty  } z.t| ttjt|dtjdW  Y d }~S d }~0 0 d S )NrA   r   r   r  r  r  r  r*  rG  ro  rJ  r(  r  r  rb  r  r   ru  r   rv  )	rZ   r  r  rG  rJ  r  rb  r   r   r  )r   r   r   r2   r   r   rq   rm   rn   ro   r4   ri   rj   r2  rr   r   r   r   )r   r   r   r   r   r  r  rG  rJ  r  rb  r   r   r-   r-   r.   r   6  sF    .zaddToRecent.postNr   r-   r-   r-   r.   r  6  s   r  c                   @   s   e Zd Zdd ZdS )allRecentlyViewedc                 C   s  zzt |}W n< tyJ } z$tdt|itjdW  Y d }~W S d }~0 0 tjj|d	 }g }t
jj|jddd d }|D ]0}||j|j|j|j|j|j|j|jd qttjd|d	W S  ty } z.t| ttjt|d
tjdW  Y d }~S d }~0 0 d S )NrA   r   r   r  r\   r  r.  r  r}  r  )r   r   r   r2   r   r   rq   rm   rn   ro   r2  r~   r{   r  rG  rJ  r  rb  r   r   r  r   r   r   )r   r   r   r   r   r1  r3  r4  r-   r-   r.   ri   <6  s.    .

zallRecentlyViewed.getNr  r-   r-   r-   r.   r  ;6  s   r  c                   @   s   e Zd Zdd ZdS )getNewAddedc              V   C   s	  t |}|r<tj|tjdgd}|d }tjj|d }nd}t	jjddd
d	}tjjddd
d	}tjjddd
d	}tjjddd
d	}	tjjddd
d	}
tjjddd
d	}tjjddd
d	}tjjdd

d	}tjjdd

d	}g }|r|D ]}|jdkr*d}q|jdkr>d}qd}||j|jjd |jj |jj|jj|jjt|j|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|jD|jE|jF|jG|jH|jI|jJ|jK|jL|jM|jN|jO|jP|jQ|jR|jS|jT|jU|jV|jW|jX|jY|jZ|j[|j\|j]|j^|j_|j`|ja|j|jbr|jbjnd |jc|jd|je||jfddR q|r |D ]4}|jdkrd}n|jdkrd}nd}||j|jjd |jj |jg|j)|j*|jht|j|ji|j|jj|j?|j;|j=|jk|jk|jF|jN|j9|jl|jm|jn|jo|jp|jq|jr|js|jt|ju|jv|jw|jx|jy|jz|j{|j||j}|j~|jZ|j[|j\|j]|j|j_|j|j|j|jbr|jbjnd |jc|j`|ja|jd|je|jf|dd7 q|r|D ]}|jdkr d}n|jdkr2d}nd}|j|jt|j|j|j|j`|ja|jZ|j|j|j|j|j|jZ|jd|jf|d}|| q
|r@|D ]}|jdkrd}n|jdkrd}nd}|j|jt|j|j|j|j|j|j[|j\|j]|j^|j_|j|j|j|j|j|j|jZ|j`|jad|jf|d}|| q|r6|D ]}||j|jjd |jj |jg|j)t|j|j|j|jg|j*|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jt|j |j|j|j|j|j|jU|j|j|j|j|j|j|j|jZ|j`|ja|jc|jd|jfdd0 qJ|	rH|	D ]}|jdkrXd}n|jdkrjd}nd}||j|j)|jj|jd |j |j|jt|j|j|j|j|j|j|j5|j|j|j|j|j|j|j|j|j|j|j|j`|ja|jZ|j|j|j|j|j|j|j|jc|j|jd||j[|j\|j]|j^|j_|j|j*|jfdd/ q@|
r|
D ]}||j|jj|jjd |jj |j!t|j|j|j|j"|j#|j$|j%|j%|j&|j'|j(|j|j*|j+|j,|j-|j|j/|j0|j1|j&|j2|j3|j4|j5|j|j7|j|jZ|j`|ja|jdd% qR|rR|D ]8}||j|j!|j!|jj|j*|j:|j9|j9|jddd
 q|	rt|D ]}|jdkrtd}n|jdkrd}nd}||j|jj|jjd |jj |j|j|j|j|j)|j|jt|j|j|j|j|j!|j|j[|j\|j]|j^|j_|j|jZ|j`|ja|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jd|jc||jfdd 2 q\d&d!d"}ttjd#td$tjd%S )'Nr  r  r   r   r   Tr   r  r\   r  r  r  r  r  r  r  r  r  r   r  r   r  rR  r  rt  r+  r  r  r  r  r   r  c                 S   s   dd | j j D }|r&| j|d} d|v r:| d}nd|v rN| d}n
| d}g }|D ]}||jt|d	t|d
dt|dr|j	ndt|dt|ddt|dt|dd t|ddt|dd t|dd |j
|d
 q`|S )Nc                 S   s   g | ]
}|j qS r-   r  )r  fieldr-   r-   r.   r  28  r  z?getNewAdded.get.<locals>.get_latest_entries.<locals>.<listcomp>r   rD  z-created_atr  z-start_dater\   rG  r  rN   rJ  r  r  r   rb  r   r   )
r~   rG  rJ  r  r  rb  r   r   r   rI  )model_meta
get_fieldsrn   r{   r  r~   getattrhasattrrJ  r   )queryset	type_namer]   model_fieldsZlatest_entriesZformatted_entriesentryr-   r-   r.   get_latest_entries08  s.    




z+getNewAdded.get.<locals>.get_latest_entriesrE  r@   rA   r0  r   )N)r   r  r  r   r  rq   rm   rn   ro   r   r{   r   r   r   r   r   r   r
  rF  r   r  r~   r   rJ   rK   rd   rc   r  r  r  r  rL  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"  r  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  rb  r   r_  r   r`  ra  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  r  r  r  r  r  r  r  rG  rJ  r  r  r  rO  r  rD  rK  rN  rP  r   rV  rT  rZ  r]  r^  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  re  rf  rg  rh  ri  rj  r1  rk  r:   r   rl  rm  r8   r9   ru  rv  r  r   r^   r   rw  rx  ry  rl  rz  r{  r|  r}  r~  r  r  r  r  r  r  rc  rM  r  r  r  r  r   r  r  ri  rj  rd  r  r  rH  r  r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   ZrecentProperties)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  r  r-   r-   r.   ri   X6  s   

V

>



1

0
)


5
!zgetNewAdded.getNr  r-   r-   r-   r.   r  W6  s   r  c                   @   s   e Zd Zdd ZdS )getMyAllNewAddedc              V   C   s	  t |}|r<tj|tjdgd}|d }tjj|d }nd}t	jjdd|j
dd	}tjjdd|j
dd	}tjjdd|j
dd	}tjjdd|j
dd	}	tjjdd|j
dd	}
tjjdd|j
dd	}tjjdd|j
dd	}tjjd|j
d
d	}tjjd|j
d
d	}g }|r|D ]}|jdkrNd}q4|jdkrbd}q4d}||j
|jjd |jj |jj
|jj|jjt|j|j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jB|jC|jD|jE|jF|jG|jH|jI|jJ|jK|jL|jM|jN|jO|jP|jQ|jR|jS|jT|jU|jV|jW|jX|jY|jZ|j[|j\|j]|j^|j_|j`|ja|j|jbr|jbj
nd |jc|jd|je||jfddR q4|r$|D ]4}|jdkrd}n|jdkrd}nd}||j
|jjd |jj |jg|j)|j*|jht|j|ji|j|jj|j?|j;|j=|jk|jk|jF|jN|j9|jl|jm|jn|jo|jp|jq|jr|js|jt|ju|jv|jw|jx|jy|jz|j{|j||j}|j~|jZ|j[|j\|j]|j|j_|j|j|j|jbr|jbj
nd |jc|j`|ja|jd|je|jf|dd7 q|r|D ]}|jdkrDd}n|jdkrVd}nd}|j
|jt|j|j|j|j`|ja|jZ|j|j|j|j|j|jZ|jd|jf|d}|| q.|rd|D ]}|jdkrd}n|jdkrd}nd}|j
|jt|j|j|j|j|j|j[|j\|j]|j^|j_|j|j|j|j|j|j|jZ|j`|jad|jf|d}|| q|rZ|D ]}||j
|jjd |jj |jg|j)t|j|j|j|jg|j*|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jt|j |j|j|j|j|j|jU|j|j|j|j|j|j|j|jZ|j`|ja|jc|jd|jfdd0 qn|	rl|	D ]}|jdkr|d}n|jdkrd}nd}||j
|j)|jj
|jd |j |j|jt|j|j|j|j|j|j|j5|j|j|j|j|j|j|j|j|j|j|j|j`|ja|jZ|j|j|j|j|j|j|j|jc|j|jd||j[|j\|j]|j^|j_|j|j*|jfdd/ qd|
r2|
D ]}||j
|jj
|jjd |jj |j!t|j|j|j|j"|j#|j$|j%|j%|j&|j'|j(|j|j*|j+|j,|j-|j|j/|j0|j1|j&|j2|j3|j4|j5|j|j7|j|jZ|j`|ja|jdd% qv|rv|D ]8}||j
|j!|j!|jj|j*|j:|j9|j9|jddd
 q<|	r|D ]}|jdkrd}n|jdkrd}nd}||j
|jj
|jjd |jj |j|j|j|j|j)|j|jt|j|j|j|j|j!|j|j[|j\|j]|j^|j_|j|jZ|j`|ja|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|j|jd|jc||jfdd 2 qttjd!|d"tjd#S )$Nr  r  r   r   r   Tr   r,  r\   r  r  r  r  r  r  r  r  r  r   r  r   r  rR  r  rt  r+  r  r  r  r  r   r  rE  r  r   )r   r  r  r   r  rq   rm   rn   ro   r   r~   r{   r   r   r   r   r   r   r
  rF  r   r  r   rJ   rK   rd   rc   r  r  r  r  rL  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"  r  r#  r  r$  r  r%  r&  r'  r(  r)  r*  r  r,  r-  r.  r/  r0  r1  r2  r  r3  r4  r5  r6  r8  r:  r<  r>  r@  rB  rD  rb  r   r_  r   r`  ra  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  r  r  r  r  r  r  r  rG  rJ  r  r  r  rO  r  rD  rK  rN  rP  r   rV  rT  rZ  r]  r^  rT  rU  rV  rW  rX  rY  rZ  r[  r\  rb  r^  r_  r`  ra  rc  rd  re  rf  rg  rh  ri  rj  r1  rk  r:   r   rl  rm  r8   r9   ru  rv  r  r   r^   r   rw  rx  ry  rl  rz  r{  r|  r}  r~  r  r  r  r  r  r  rc  rM  r  r  r  r  r   r  r  ri  rj  rd  r  r  rH  r  r  rS  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  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r-   r-   r.   ri   V8  s   

V

>



1

0
)


6zgetMyAllNewAdded.getNr  r-   r-   r-   r.   r  U8  s   r  c                   @   s   e Zd Zdd ZdS )PayDoItbyReeipoc           
   
   C   s$  zt |}|r>tj|tjdgd}|d }tjj|d }nd}|j	
d}|j	
d}|svttjdd	tjd
W S |sttjdd	tjd
W S tjt_tjjt|d d|dd}t| ttjdtdtjd
W S  ty }	 z.t|	 ttjt|	d	tjd
W  Y d }	~	S d }	~	0 0 d S )Nr  r  r   r   r   r  r  r  r  r   r  r-  r  Purchase Subscriptionr  rE  r  )r   r  r  r   r  rq   rm   rn   ro   r4   ri   r   r   rj   r  r  r  r  rr   r  r   r   r   r   r   r2   
r   r   r   r  r   r   r  r  r  r   r-   r-   r.   r   3:  s2    
PayDoItbyReeipo.postNr   r-   r-   r-   r.   r  2:  s   r  c                   @   s   e Zd Zdd ZdS )r  c           
   
   C   s"  zt |}|r>tj|tjdgd}|d }tjj|d }nd}|j	
d}|j	
d}|svttjdd	tjd
W S |sttjdd	tjd
W S tjt_tjjt|d d|dd}t| ttjddtjd
W S  ty }	 z.t|	 ttjt|	d	tjd
W  Y d }	~	S d }	~	0 0 d S )Nr  r  r   r   r   r  r  r  r  r   r  r-  r  r  r  rE  r?   )r   r  r  r   r  rq   rm   rn   ro   r4   ri   r   r   rj   r  r  r  r  rr   r  r   r   r   r   r2   r  r-   r-   r.   r   T:  s2    
r  Nr   r-   r-   r-   r.   r  S:  s   c                   @   s   e Zd Zdd ZdS )FillDoitReeipoFormc                 C   s:  zt |}|r@tj|tjdgd}|d }tjj|d }nd}|j	
d}|j	
d}|j	
d}|j	
d	}	|j	
d
}
|j	
d}|j	
d}|j	
d}|j	
d}|j	
d}|j	
d}|sttjddtjdW S |sttjddtjdW S |s ttjddtjdW S |
s>ttjddtjdW S |s\ttjddtjdW S |szttjddtjdW S |sttjddtjdW S |sttjddtjdW S tjj|||||
||||dd
 ttjddtjdW S  ty4 } z.t| ttjt|dtjdW  Y d }~S d }~0 0 d S )Nr  r  r   r   r   r0  r  email_addressbusiness_for_saler   r  rH  r  r  property_docr  r3  r  r   r  zemail_address is requiredr,  rp  zproperty_image is requiredzproperty_video is requiredzproperty_doc is requiredr  )
rZ   r   r  r:   rt  r  r  r  r  r   rE  r?   )r   r  r  r   r  rq   rm   rn   ro   r4   ri   r   r   rj   rx  rr   r   r   r   r   r2   )r   r   r   r  r   r   r0  r  r  r  r   r  rH  r  r  r  r  r   r-   r-   r.   r   t:  sN     zFillDoitReeipoForm.postNr   r-   r-   r-   r.   r  s:  s   r  c                   @   s   e Zd Zdd ZdS )MyDoItReeipoFormListingsc                 C   s<  zt |}|r@tj|tjdgd}|d }tjj|d }nd}g }t	jj|d
d}| jjd}|sttjd	d
tjdW S | jjd}	|	sttjdd
tjdW S t	jjdd }
t||	}z||}W n: ty   |d}Y n  ty   ||j}Y n0 tj }|r.|j}nd}|D ]}td td t|j td t|j ||j|j|j |j!|j"|j#r|j#nd |jrt$|jnd |jrt$|jnd ||j%|j&|j'|jd q6ttj(d||
dtj(dW S  t)y6 } z.t| ttj*t$|d
tj*dW  Y d }~S d }~0 0 d S )Nr  r  r   r   r   r  r  r  r  r  r   r  r  Tr  r   N/Ain loop------------------------------------------r~   r   r  r:   rt  r  r  r  r  Zsubmitted_dater  r  r   Fetched Successfully)r@   rA   r4   r   )+r   r  r  r   r  rq   rm   rn   ro   rx  r{   r   r  ri   r   r   rj   r   r   r  r   r   r  SetdoitbyReeipoPricer   r  r   r  r  r  r~   r   r  r:   rt  r  r2   r  r  r  r   r   r   )r   r   r   r  r   r   r  allrequests_objr  r  r  r  r  r4   r   r-   r-   r.   ri   :  sh    



zMyDoItReeipoFormListings.getNr  r-   r-   r-   r.   r  :  s   r  c                   @   s   e Zd Zdd ZdS )MyDoItReeipoDetailc                 C   s  zRt |}|r@tj|tjdgd}|d }tjj|d }nd}g }| j	j
d}|srttjddtjd	W S tjj|d
}tj }	|	r|	j}	nd}	|D ]}
td td t|
j td t|
j ||
j|
j|
j|
j|
j|
jr|
jnd |
jrt|
jnd |
jrt|
jnd |	|
j|
j|
j |
jd qttj!d|d dtj!d	W S  t"y } z.t| ttj#t|dtj#d	W  Y d }~S d }~0 0 d S )Nr  r  r   r   r   reeipo_form_idr  r  r   r   r  r  r  r  r  r  rh   )$r   r  r  r   r  rq   rm   rn   ro   r   r  ri   r   r   rj   rx  r  r   r  r   r  r  r  r~   r   r  r:   rt  r  r2   r  r  r  r   r   r   )r   r   r   r  r   r   r  r  r  r  r4   r   r-   r-   r.   ri   :  sR    



zMyDoItReeipoDetail.getNr  r-   r-   r-   r.   r  :  s   r  )urllib.parser   rest_framework.viewsr   rest_framework.responser   rest_frameworkr   modelsr   r	   r
   r"  r   Zpasslib.hashr   handlerZadmin_api.functionsdjango.contrib.authr   mathpytzstringdjango.template.loaderr   django.corer   django.core.mailr   django.contrib.auth.modelsr   Zrest_framework_simplejwt.tokensr   authenticationr   	functionsserializersrk   admin_api.modelsr   django.core.paginatorr   r   r   r  Zpanel_api.modelsr  r3   r   subscription_api.modelsdjango.db.modelsr   r   r  r   Zrest_framework.authenticationr   r  Zagency_panel.modelsZlawyer_panel.modelsr   r   r   r    r!   django.utils.htmlr"   Ztwilio.jwt.access_token.grantsr#   r$   r%   Ztwilio.restr&   Ztwilio.jwt.access_tokenr'   django.utils.timesincer(   r  TWILIO_ACCOUNT_SIDrX  TWILIO_AUTH_TOKENZ
auth_tokenTWILIO_CHAT_SIDr[  TWILIO_SYNC_SIDZsync_service_sidTWILIO_API_SIDrY  TWILIO_API_SECRETrZ  rB  r/   r6   r7   r   r   r   r   r   r   r   r   r   r   r  r%  r+  r-  r.  r/  r8  r;  rC  rF  r  r  r  r  r  r  r  r  rG  rH  r  r  r  r  r  r	  r  r  r  r  rL  rN  rQ  rV  rZ  rw  rx  rz  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$  r%  r+  r3  r=  r>  r@  rU  rV  r[  rb  rg  ri  rs  ry  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  r  r  r  r  r   r  r  r*  r5  rV  r\  rl  rm  rp  rt  ru  rv  ry  rz  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-   r-   r-   r.   <module>   s$   
	VIZY& "'#a $ , )O  U   g e     7 5O 	 2O 1 J? u,;1   1_   |R       9>l+35/c'&adKv ,-" 5!&!%.(          [               TI'K7K4J5&I^`0       `! 3=