a
    3g                    @   s  d dl mZ d dlmZ d dlmZ d dlZddlT d dlZd dl	m	Z	 d dl
mZ d d	lmZ d dlT d d
lmZ d dl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Zd dl m!Z! d dl T d dl"m#Z#m$Z$m%Z% d dl&T d dl'm(Z( d dl)Z)d dl*m+Z+ d dl,T d dl*m-Z- d dl.Z.d dl/m0Z0 G dd deZ1G dd deZ2G dd deZ3G dd deZ4G dd deZ5G d d! d!eZ6G d"d# d#eZ7G d$d% d%eZ8G d&d' d'eZ9G d(d) d)eZ:G d*d+ d+eZ;G d,d- d-eZ<G d.d/ d/eZ=G d0d1 d1eZ>G d2d3 d3eZ?G d4d5 d5eZ@G d6d7 d7eZAG d8d9 d9eZBG d:d; d;eZCG d<d= d=eZDG d>d? d?eZEG d@dA dAeZFG dBdC dCeZGG dDdE dEeZHG dFdG dGeZIG dHdI dIeZJG dJdK dKeZKG dLdM dMeZLG dNdO dOeZMG dPdQ dQeZNG dRdS dSeZOG dTdU dUeZPG dVdW dWeZQG dXdY dYeZRG dZd[ d[eZSG d\d] d]eZTG d^d_ d_eZUG d`da daeZVG dbdc dceZWG ddde deeZXG dfdg dgeZYG dhdi dieZZdS )j    )APIView)ResponsestatusN   )*)datetime)settings)django_pbkdf2_sha256)authenticate)render_to_string)mail)EmailMultiAlternatives)User)RefreshToken)
Categories)	PaginatorPageNotAnInteger	EmptyPage)get_authorization_header)Q)Count)authenticatedc                   @   s   e Zd Zdd ZdS )getPropertyProjectc              1      s  zlzt |}W n( ty8 } zd }W Y d }~n
d }~0 0 tjj|d }| jjd}| jjd}| jjd}|j	d}| jjd}	| jjd}
| jjd}| jjd	}| jjd
}| jjd}|j	d}|j	d}|j	d |j	d}|dkr t
 }|r0|t
|dt
j |
rN|t
|	|
fdt
j |rl|t
||fdt
j |r|t
|dt
j |dkrtjj|ddddj|d}nL|dkrtjj|ddddj|d}n tjj|ddddj|d}n&tjjddddj|dd d }g }|D ]$}tjj|j|d }|rVd}n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|j|jr|j rt |j ng |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/r<|j/ r<t |j/ ng |j0rb|j0 rbt |j0 ng |j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j9|j@|jA||d$/}|B| |dkr. r fd%d&|D }|d'krtC|d(d) d*}n|d+krtC|d,d) dd-}|dkr6tC|d.d) d*}n|d/kr.tC|d0d) dd-}q.tDtjEd1|d2tjEd3W S  ty } z&tDtjFtG|d4tjFd3W  Y d }~S d }~0 0 d S )5Nuser	sort_datafilter_datalocationidreturn_on_investment_startreturn_on_investment_endcashflow_pcm_startcashflow_pcm_endfinder_fees_startfinder_fees_end
sort_pricesort_upload_datesubscription_tyrecategorytrue)Ztown__icontains)Zreturn_on_investment__range)Zcashflow_pcm__range)Zcategory__icontainsNewestTr   end_date__isnullr   -idr   oldest
   )property
customerIdFr   PendingApprovedDisapproved )/r   customer_idfullnamespend_too_much_timemost_useless_skillfun_act	biographyshort_titleproperty_overviewproperty_description
image_datavideosproperty_documentr)   property_nameproperty_dimensioncountrystatecitypostal_codelandmarkhouse_numberr   latitude	longitudefacilitybenefitsreturn_on_investment
finder_feegross_incomepricecashflow_pcmtotal_termination_feepurchase_pricepotential_cashflow_pcminvestment_finder_fee#investment_return_on_investment_feerental
the_visioncost_to_considercapital_requiredcashflow_forecastrX   rent_to_landlordbill_utilitiesr   	favouritec                    s    g | ]}|d  t  kr|qS subscription_typeint.0datar(    ./var/www/html/Sam_Eipo/Eipo/panel_api/views.py
<listcomp>       z*getPropertyProject.get.<locals>.<listcomp>	ascendingc                 S   s   | d S Nfilter_pricerj   xrj   rj   rk   <lambda>   rm   z(getPropertyProject.get.<locals>.<lambda>key	desendingc                 S   s   | d S ro   rj   rq   rj   rj   rk   rs      rm   ru   reversec                 S   s   | d S Ncreated_daterj   rq   rj   rj   rk   rs      rm   latestc                 S   s   | d S ry   rj   rq   rj   rj   rk   rs      rm   Fetched successfullystatus_codestatus_messagerh   r   r   message)Hr   	ExceptionCustomerobjectsfilterfirstrequestquery_paramsgetGETr   addANDPropertyProjectorder_byexcludePropertyProjectFavouriter   r   r3   	firstNamelastNamer:   r;   r<   r=   r>   r?   r@   rA   stripastliteral_evalrB   rC   r)   rD   rE   rF   rG   rH   rI   rJ   rK   r   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   appendsortedr   HTTP_200_OKHTTP_500_INTERNAL_SERVER_ERRORstr)selfr   uidecustomerObjr   r   r   property_idr    r!   r"   r#   r$   r%   r&   r'   r)   lookupsproperty_objallDatafavourite_objra   status_infoalldatarj   ri   rk   r   #   s    

"
""&
&&&3





zgetPropertyProject.getN__name__
__module____qualname__r   rj   rj   rj   rk   r   "   s   r   c                   @   s   e Zd Zdd ZdS )getPropertyProjectDetailsc              /   C   sf  z| j jd}|s.t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krld}n|jd	kr|d
}nd}t
|j}g }|D ]@}tjj|d	 }|r||j|jd q||d d q|j|jj|jjd |jj |j|j|j|j|j|j|j|jr2|j r2t
|j ng |j|j|j |j!|j"|j#|j$|j%|j&|j'|j(|j)|j*|j+|jr|j rt
|j ng |j,r|j, rt
|j, ng |j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j5|j<|j=|d.}	ttj>d|	d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 )Nr   zProperty Id is requiredr~   r   r   r/   zProperty project not foundr   r4   r   r5   r6   namer   iconr7   ).r   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   r)   rD   rE   rF   rG   rH   rI   rJ   rK   r   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   rX   r_   r`   r   z-Property project details fetched successfullyr~   r   rh   r   )Br   r   r   r   r   HTTP_400_BAD_REQUESTr   r   r   r   r   r   rN   
Facilitiesr   r   r   r   r3   r   r   r:   r;   r<   r=   r>   r?   r@   rA   r   rB   rC   r)   rD   rE   rF   rG   rH   rI   rJ   rK   r   rL   rM   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   facilities_listfacility_detailsfacility_namerN   r   r   rj   rj   rk   r      s    



&&&3zgetPropertyProjectDetails.getNr   rj   rj   rj   rk   r      s   r   c                   @   s   e Zd Zdd ZdS )favUnfavPropertyProjectc              
   C   sX  zt |}|d u s(|dks(| dkr2tdtj|tjdgd}|d }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||dd\}}	|	s|  ttjdd
tjdW S |  ttjdd
tjdW S W n@ tyR }
 z&ttjt|
dtjdW  Y d }
~
S d }
~
0 0 d S )Nnull ;Authorization Header or Token is missing on Request HeadersHS256
algorithmsuser_idr   property_project_idzProperty project id is requiredr   r   r/   zNo property project foundr   )r2   r3   is_favouriteRemoved from favourite listAdded to favourite list.r   )r   r   
exceptionsAuthenticationFailedjwtdecoder	   
SECRET_KEYr   r   r   r   rh   r   r   r   r   r   r   get_or_createdeleter   saver   r   r   )r   r   tokendecodedr   r   r   pro_objfavourite_postcreatedr   rj   rj   rk   post  s*    
zfavUnfavPropertyProject.postNr   r   r   r   rj   rj   rj   rk   r     s   r   c                   @   s   e Zd Zdd ZdS )getBussinessForSalec              .      s  zVt |}|r:t|tj}|d }tjj|d }nd}| j	j
d}| j	j
d}| j	j
d}| j	j
d}	| j	j
d}
| j	j
d	}| j	j
d
}| j	j
d}|jd}|jd}|jd |dkrt }|	r|t||	fdtj |r|t|
|fdtj |r:|t||fdtj |dkrXtj|d}n0|dkrvtj|d}ntj|d}ntjjddd}g }|D ]}tjj|j|d }|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/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|d,}|@| |dkr ṙ fdd|D }|d krtA|d!d" d#}n|d$krtA|d%d" dd&}|dkr tA|d'd" d#}n|d(krtA|d)d" dd&}qtBtCjDd*|d+tCjDd,W S  tEy } z&tBtCjFtG|d-tCjFd,W  Y d }~S d }~0 0 d S ).Nr   r   r   r   r   suggested_price_startsuggested_price_endtotal_turnover_starttotal_turnover_endoperating_profit_startoperating_profit_endr&   r'   r(   r*   )Zcost__range)Ztotal_turnover__range)Zother_operating_cost__ranger+   r.   r0   r   Tr-   -subscription_type)	bussinessr3   Fr7   ),r   customer_namecompany_namer>   rA   rB   videos_thumbnailr   descriptiontotal_turnoverrentestablished_yearpremisesyears_of_workoperation_conceptoperation_opening_hoursturnover_last_yearsalary_percentageother_operating_costcostreason_for_salewebsite_linknumber_of_employesr   areaterm_of_leasedocumentdetailsservice
operationsmarket_initativesadvantage_and_oppurtunity	valuation
owner_namephone	telephoneemailcompanypublic_orderavaiable_attachmentr   rL   rM   r   c                    s    g | ]}|d  t  kr|qS rb   rd   rf   ri   rj   rk   rl     rm   z+getBussinessForSale.get.<locals>.<listcomp>rn   c                 S   s   | d S ro   rj   rq   rj   rj   rk   rs     rm   z)getBussinessForSale.get.<locals>.<lambda>rt   rv   c                 S   s   | d S ro   rj   rq   rj   rj   rk   rs     rm   rw   c                 S   s   | d S ry   rj   rq   rj   rj   rk   rs     rm   r{   c                 S   s   | d S ry   rj   rq   rj   rj   rk   rs     rm   r|   r}   r   r   )Hr   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   BussinessForSaler   BussinessForSaleFavouriter   r3   r   r   r   r>   r   r   rA   rB   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rL   rM   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   r'   r   bussiness_objr   r   r   ra   r   r   rj   ri   rk   r      s    





/





zgetBussinessForSale.getNr   rj   rj   rj   rk   r     s   r   c                   @   s   e Zd Zdd ZdS )getBussinessForSaleDetailsc              6   C   s  zf| j jd}|s.t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
|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*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@d5}ttjAd	|d
tjAdW S  tBy } z&ttjCtD|dtjCdW  Y d }~S d }~0 0 d S )Nr   Bussiness Id is requiredr   r   r/   zNo bussiness for sale foundr7   )5r   r   r   r>   rA   rB   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rL   rM   is_draftrF   rG   rH   floorrI   rJ   shareholder_nameshareholder_shareshareholder_descriptionr|   r}   r   )Er   r   r   r   r   r   r   r   r   r   r   r3   r   r   r   r>   r   r   rA   rB   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rL   rM   r  rF   rG   rH   r  rI   rJ   r  r  r  r   r   r   r   )r   r   bussiness_idr   r   r   rj   rj   rk   r     s    

;zgetBussinessForSaleDetails.getNr   rj   rj   rj   rk   r     s   r   c                   @   s   e Zd Zdd ZdS )inquireBussinessSalec              
   C   s  zB|j d}|s,ttjddtjdW S tjj|dd }|s\ttjddtjdW S |j d}|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 |sttjddtjdW S |sttjddtjdW S d}t	|t
jdg| d|j d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   r   r   z$No bussiness sale found for this id.r   r   r   r   Email is requiredName is requiredTelephone is requiredMessage is requiredzBussiness sale inquireadmin123@yopmail.com wants to inquire about the z bussiness sale.subject
from_emailtobodyFfail_silentlySend successfullyr   )rh   r   r   r   r   r   r   r   r   r   r	   EMAIL_HOST_USERr   sendr   r   r   r   )r   r   r  r   r   r   r   r   r  message_sendr   rj   rj   rk   r     s2    "zinquireBussinessSale.postNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS )getHousingForRentc                 C   s4  zt |}|r8t|tj}|d }tjj|d }nd}t	jjdd
d}g }|D ]|}tjj|j|d }	|	r|d}
nd}
|j|j|j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   Tr   r   )
house_rentr3   Fr7   )r   r>   	full_nameimagegenderaddressnationalitymax_month_pricerental_perioddesired_start_datepetr   rc   rz   r   r|   r}   r   r   )"r   r   r   r	   r   r   r   r   r   HouseWantedForRentr   HouseRentFavouriter   r>   
first_name	last_namer  r  r   r!  r"  r#  r$  r%  r   rc   
start_dater   r   r   r   r   r   r   )r   r   r   r   r   r   rent_objr   r   r   ra   r   r   rj   rj   rk   r     sD    zgetHousingForRent.getNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS )getHousingForRentDetailsc              ,   C   s~  z6| j jd}|s.t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
|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*|j+|j,|j-|j*|j.|j/|j0|j1|j2|j3|j4d+}ttj5d	|d
tj5dW S  t6yx } z&ttj7t8|dtj7dW  Y d }~S d }~0 0 d S )Nrent_idRent Id is requiredr   r   r/   z No housing wanted for rent foundr7   )+r   r>   r8   r9   profile_visiblityprofile_hiddenr  r(  r)  r  dobr!  phone_numberr   quantityr#  max_rent	from_datehousing_typenumber_of_peopler"  r$  desired_arearL   rM   r   about	educationmartial_statuscleanlinessparty_habitsworkinterestrc   r  r>  rF   rG   rH   rI   rJ   r  r   r|   r}   r   )9r   r   r   r   r   r   r&  r   r   r   r   r>   r3   r(  r)  r/  r0  r   r   r  r  r1  r!  r2  r   r3  r#  r4  r5  r6  r7  r"  r$  r8  rL   rM   r   r9  r:  r;  r<  r=  r>  r?  rc   r  rF   rG   rH   rI   rJ   r  r   r   r   r   r   r   r   r-  r+  r   r   rj   rj   rk   r   <  sl    
2zgetHousingForRentDetails.getNr   rj   rj   rj   rk   r,  ;  s   r,  c                   @   s   e Zd Zdd ZdS )sentMessageForRentc                 C   s  zN|j d}|s,ttjddtjdW S tjj|dd }|s\ttjddtjdW S |j d}|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 |sttjddtjdW S |sttjddtjdW S d}t	|t
j|jgd| d| d| d| 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   r	  z No result found for this rent idr   r   r   r   r  ztelephone is requiredzemail is requiredzmessage is requiredzHouse wanted for RentzHello this side z.Please contact us at z or z
. Message:r  Fr  r  r   )rh   r   r   r   r   r&  r   r   r   r   r	   r  r   r  r   r   r   r   )r   r   r-  r+  r   r   r   r   r  r  r   rj   rj   rk   r   {  s*    .zsentMessageForRent.postNr   rj   rj   rj   rk   rA  z  s   rA  c                   @   s   e Zd Zdd ZdS )favouriteUnfavouriteHouseRentc              
   C   sL  zt |}|d u s(|dks(| dkr2tdtj|tjdgd}|d }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||dd\}}	|	s|  ttjdd
W S |  ttjdd
W S W n@ tyF }
 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   house_rent_idzHouse Rent ID is requiredr   r   r/   No product foundr   )r  r3   r   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   r   rh   r   r   r   r   r&  r'  r   r   r   r   r   r   r   )r   r   r   r   r   r   rC  r+  r   r   r   rj   rj   rk   r     s*    
z"favouriteUnfavouriteHouseRent.postNr   rj   rj   rj   rk   rB    s   rB  c                   @   s   e Zd Zdd ZdS )(favouriteUnfavouriteCompanySeekingEquityc           
      C   s   t |}|d u s$|dks$| dkr.tdtj|tjdgd}|d }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d\}}	|	s|  ttjdd
S |  ttjdd
S d S )Nr   r   r   r   r   r   r   Zcompany_seeking_idzSeeking ID is requiredr   r   r/   zNo Customer seeking  foundr   )company_seekr3   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   r   rh   r   r   r   r   CompanySeekingEquityCompanySeekingEquityFavouriter   r   r   r   )
r   r   r   r   r   r   Zcustomer_seeking_idZcustomer_seeking_objr   r   rj   rj   rk   r     s$    
z-favouriteUnfavouriteCompanySeekingEquity.postNr   rj   rj   rj   rk   rE    s   rE  c                   @   s   e Zd Zdd ZdS )getInvestmentMyCompanyc                    s  zt |}|r:t|tj}|d }tjj|d }nd}| j	j
d}|jd}|jd}|jd tjjddd	}	g }
|	D ]j}tjj|j|d
 }|rd}nd}|j|j|j|j|j|j|j|j|j||j|j|jd}|
| q|dkr r fdd|
D }
|dkr2t|
dd d}
n|dkrNt|
dd dd}
|dkrjt|
dd d}
n|dkrt|
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(   T)r   r-   )invest_companyr3   F)r   rA   r   the_valuationshares_for_saleprice_per_shareremaninig_sharesminimum_drawingmax_drawingr   rc   rz   rp   r*   c                    s    g | ]}|d  t  kr|qS rb   rd   rf   ri   rj   rk   rl     rm   z.getInvestmentMyCompany.get.<locals>.<listcomp>rn   c                 S   s   | d S ro   rj   rq   rj   rj   rk   rs     rm   z,getInvestmentMyCompany.get.<locals>.<lambda>rt   rv   c                 S   s   | d S ro   rj   rq   rj   rj   rk   rs     rm   rw   r0   c                 S   s   | d S ry   rj   rq   rj   rj   rk   rs     rm   r{   c                 S   s   | d S ry   rj   rq   rj   rj   rk   rs     rm   r|   r}   r   r   )#r   r   r   r	   r   r   r   r   r   r   r   r   r   InvestmentMyCompanyInvestmentMyCompanyFavouriter   rA   rD   rK  rL  rM  rN  rO  rP  rc   r*  nominal_share_pricer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   r'   investment_objr   Z
investmentr   ra   r   r   rj   ri   rk   r     s^    




zgetInvestmentMyCompany.getNr   rj   rj   rj   rk   rI    s   rI  c                   @   s   e Zd Zdd ZdS )getInvestmentMyCompanyDetailsc              &   C   sd  z| j jd}|s.t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
|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,|j-|jd%}ttj.d	|d
tj.dW S  t/y^ } z&ttj0t1|dtj0dW  Y d }~S d }~0 0 d S )Ninvestment_idInvestment Id is requiredr   r   r/   zInvestment my company not foundr7   )%r   company_logocompany_videor8   r9   rD   documents_dataproperty_typecompany_establishedcompany_emailcompany_phonenumbercompany_addressshareholderssharer   rK  rL  rM  rI   bank_acc_createdissue_account_nopost_numberself_reportrO  rP  rN  no_share_bfr_issuerS  company_websiterc   r   r  agencyr   rL   rM   r   r|   r}   )r~   r   )2r   r   r   r   r   r   rQ  r   r   r   r   rY  rZ  r3   r   r   rD   r[  r\  r]  r^  r_  r`  ra  rb  r   rK  rL  rM  rI   rc  rd  re  rf  rO  rP  rN  rg  rS  rh  rc   r  ri  r   rL   rM   r   r   r   r   r   r   rW  rU  r   r   rj   rj   rk   r     s`    )z!getInvestmentMyCompanyDetails.getNr   rj   rj   rj   rk   rV    s   rV  c                   @   s   e Zd Zdd Zdd ZdS )buyShareInvestmentCompanyc           
   
   C   s$  zt |}|d u s&|dks&| dkr0tdt|tj}|d }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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   investment_company_idrX  r   r   r/   !Investment for company not found.)rM  rO  rP  share_for_saler|   r}   r   )r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   rQ  rM  rO  rP  rL  r   r   r   r   )
r   r   r   r   r   r   rl  rU  all_datar   rj   rj   rk   r   8  s*    
zbuyShareInvestmentCompany.getc                 C   s  zt |}|d u s(|dks(| dkr2tdt|tj}|d }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}|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 | jt|8  _|  d}
d}ddddddgdddddddt|	dddgdgd }tj|
||d!}|jd"krttjd#|d$tjd	W S t|jd%d|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   r   rl  rX  r   r   r/   rm  total_shareztotal share is requiredamountzamount is required)invested_companyr3   rp  rq  z-https://api.escrow.com/2017-09-01/transaction)developer@esferasoft.comZF16359_RCbQaGY8fVyZkgFGgW9HZ6blFl7wVpCTQ5Sq05HdNX2mvjWJyIsBdfmQ3b2cbbR0buyerrs  )rolecustomersellerzamit@yopmail.comusdz#Buy share for investment my companyzBuy share investment companyZgeneral_merchandisei r   )rq  Zpayer_customerZbeneficiary_customer)titler   typeZinspection_periodr3  schedule)partiescurrencyr   items)authjson   Successr}   z/Something went wrong.Please try after sometime.r   ) r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   rQ  rh   MyInvestmentsForCompanycreaterN  re   r   requestsr   r~   r   r   r   r   )r   r   r   r   r   r   rl  rU  rp  rq  urlr  payloadresponser   rj   rj   rk   r   P  sh    

zbuyShareInvestmentCompany.postN)r   r   r   r   r   rj   rj   rj   rk   rk  7  s   rk  c                   @   s   e Zd Zdd ZdS )%getFavouriteUnfavouriteCompanyDetailsc              
   C   sX  zt |}|d u s(|dks(| dkr2tdtj|tjdgd}|d }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||dd\}}	|	s|  ttjdd
tjdW S |  ttjdd
tjdW S W n@ tyR }
 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   	invest_idrX  r   r   r/   zNo investment my company foundr   )rJ  r3   r   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   r   rh   r   r   r   r   rQ  rR  r   r   r   r   r   r   r   )r   r   r   r   r   r   r  
invest_objr   r   r   rj   rj   rk   r     s*    
z*getFavouriteUnfavouriteCompanyDetails.postNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS )inquireInvestmentCompanyc              
   C   s  zB|j d}|s,ttjddtjdW S tjj|dd }|s\ttjddtjdW S |j d}|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 |sttjddtjdW S |sttjddtjdW S d}t	|t
jdg| d|j d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 )NrW  rX  r   r   r   r	  z,No investment for company found for this id.r   r   r   r   r
  r  r  r  zInvestment for company inquire r  r  z investment for company.r  Fr  r  r   )rh   r   r   r   r   rQ  r   r   r   r   r	   r  r   r  r   r   r   r   r   r   rW  rU  r   r   r   r   r  r  r   rj   rj   rk   r     s2    "zinquireInvestmentCompany.postNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS )getInvestmentForProjectc              ,      sd  zt |}|r:t|tj}|d }tjj|d }nd}| j	j
d}|jd}|jd}|jd tjjdd	}	g }
|	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|j|j|j |j!|j"|j#|j$|j%|j&|j|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4||j!|j5|j6d*}|
7| |dkr r fdd|
D }
|dkrt8|
dd d}
n|dkrt8|
dd dd}
|dkrt8|
dd d}
q|dkrt8|
dd dd}
qt9t:j;d|
dt:j;dW S  t<y^ } z&t9t:j=t>|dt:j=dW  Y d }~S d }~0 0 d S ) Nr   r   r   r   r&   r'   r(   Tr   )invest_projectr3   Fr7   )*r   r8   r9   rD   rA   rB   r[  r\  assest_equalityinvestment_highlightequity_pricelp_equity_percentgp_equity_percentdebt_percentproperty_at_glance_titler   bussiness_planminimum_investmentinvestment_strategyexpected_attitude_pricefinancedtarget_return_on_cost
target_irrr  
offered_byestimated_first_distributiontype_of_investmentr2  measure_for_multiplierr   location_detailsproperty_summaryproperty_detailsoverviewdebt_assumptionr   rL   rM   r   rp   rc   rz   r*   c                    s    g | ]}|d  t  kr|qS rb   rd   rf   ri   rj   rk   rl     rm   z/getInvestmentForProject.get.<locals>.<listcomp>rn   c                 S   s   | d S ro   rj   rq   rj   rj   rk   rs     rm   z-getInvestmentForProject.get.<locals>.<lambda>rt   rv   c                 S   s   | d S ro   rj   rq   rj   rj   rk   rs     rm   rw   r0   c                 S   s   | d S ry   rj   rq   rj   rj   rk   rs     rm   r{   c                 S   s   | d S ry   rj   rq   rj   rj   rk   rs     rm   r|   r}   r   r   )?r   r   r   r	   r   r   r   r   r   r   r   r   r   InvestmentMyProjectInvestmentMyProjectFavouriter   r3   r   r   rD   rA   rB   r[  r\  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r2  r  r   r  r  r  r  r  r   rL   rM   rc   r*  r   r   r   r   r   r   r   r   rT  rj   ri   rk   r     s    
,



zgetInvestmentForProject.getNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS )getInvestmentForProjectDetailsc              *   C   st  z,| j jd}|s.t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
|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*|j+|j,|j-|j.|j/|j|j0|j1d)}ttj2d	|d
tj2dW S  t3yn } z&ttj4t5|dtj4dW  Y d }~S d }~0 0 d S )Nr   rX  r   r   r/   zInvestment project not foundr7   ))r   r8   r9   rD   rA   rB   r[  r\  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r2  r  r   r  r  r  r  r  r   rL   rM   rp   rc   rz   r|   r}   r   )6r   r   r   r   r   r   r  r   r   r   r   r3   r   r   rD   rA   rB   r[  r\  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r2  r  r   r  r  r  r  r  r   rL   rM   rc   r*  r   r   r   r   rj  rj   rj   rk   r   "  sh    +z"getInvestmentForProjectDetails.getNr   rj   rj   rj   rk   r  !  s   r  c                   @   s   e Zd Zdd ZdS )%getFavouriteUnfavouriteProjectDetailsc              
   C   sX  zt |}|d u s(|dks(| dkr2tdtj|tjdgd}|d }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||dd\}}	|	s|  ttjdd
tjdW S |  ttjdd
tjdW S W n@ tyR }
 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  rX  r   r   r/   zNo Investment project foundr   )r  r3   r   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   r   rh   r   r   r   r   r  r  r   r   r   r   r   r   r   )r   r   r   r   r   r   r  prop_objr   r   r   rj   rj   rk   r   Z  s*    
z*getFavouriteUnfavouriteProjectDetails.postNr   rj   rj   rj   rk   r  Y  s   r  c                   @   s   e Zd Zdd ZdS )inquireInvestmentProjectDetailsc              
   C   s  zB|j d}|s,ttjddtjdW S tjj|dd }|s\ttjddtjdW S |j d}|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 |sttjddtjdW S |sttjddtjdW S d}t	|t
jdg| d|j d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 )NrW  rX  r   r   r   r	  z,No investment for project found for this id.r   r   r   r   r
  r  r  r  zInvestment for project inquire r  r  z investment for property.r  Fr  r  r   )rh   r   r   r   r   r  r   r   r   r   r	   r  rD   r  r   r   r   r   r  rj   rj   rk   r   s  s2    "z$inquireInvestmentProjectDetails.postNr   rj   rj   rj   rk   r  r  s   r  c                   @   s   e Zd Zdd ZdS )rentPropertyListc              "   C   s  zrzt |}W n( ty8 } zd}W Y d }~n
d }~0 0 tjj|d }|jd}g }tjjddd	dj
|dd d	 }|D ]}tjj|j|d
 }	|	rd}
nd}
|j|j|j|j|jr|j rt|j ng |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 }|.| qt/t0j1d|dt0j1dW S  ty } z&t/t0j2t3|dt0j2dW  Y d }~S d }~0 0 d S )Nr   r   r   Tr   r,   r.   r/   r1   )r   r3   F) r   ry  r)   sub_categoryrA   videor  roomsbedroomssizerF   rG   rH   rI   rK   r#  avaiable_from_datemonthly_rentmonthly_rent_includessecuritysecurity_amountheadingr   display_information
name_of_ad	visibiltyr   rL   rM   rc   rz   ra   r  r   r   rh   r   r   )4r   r   r   r   r   r   r   r   RentPropertyr   r   RentPropertyFavouriter   ry  r)   subCategoryrA   r   r   r   r  r  r  r  r  rF   rG   rH   rI   rK   r#  r  r  r  r  r  r  r   r  r  r  r   rL   rM   rc   
created_atr   r   r   r   r   r   )r   r   r   r   r   r   r   rentObjr   r   ra   r   rj   rj   rk   r     sf    &"#zrentPropertyList.getNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS )rentPropertyDetailsc           
   3   C   s  zR|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 t	
|j}g }|D ]@}tjj|d }|r||j|jd qn||d d qn|j|jj|jjd	 |jj |jj|jj|j|j|j|jr|j rt	
|j ng |j|j|j|j|j|j |jrF|j rFt	
|j ng |j!|j"|j#|j$|j%|j&|j'|j(r|j( rt	
|j( ng |j)|j*|j+|j,r|j, rt	
|j, ng |j-r|j- rt	
|j- ng |j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|j@|jA|jBd
2}ttjCd|dtjCdW S  tDy }	 z&ttjEtF|	dtjEdW  Y d }	~	S d }	~	0 0 d S )Nr   zRent id is requiredr   r   r/   zNo rent and sale foundr   r   r7   )2r   r8   r   customer_phone_numbercustomer_imagesry  r)   r  rA   r  r   r  r  r  r  	facilitesdepositrF   rG   rH   rI   rK   rJ   rO   r#  r  r  r  r  r  r  r   r  r  r  r   rL   rM   rc   r?   type_propertydescription_home
spend_timeuseless_skillr<   r=   primary_roomr6  key_info_bedroomstoryr  r  )Gr   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r3   r   r   phoneNumberprofileImagery  r)   r  rA   r   r  r   r  r  r  r  r  rF   rG   rH   rI   rK   rJ   rO   r#  r  r  r  r  r  r  r   r  r  r  r   rL   rM   rc   r?   r  r  r  r  r<   r=   r  r6  r  r  r   r   r   r   )
r   r   r-  r  r   r   r   rN   r   r   rj   rj   rk   r     s    

&&&&&9zrentPropertyDetails.getNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS ) favouriteUnfavouriteRentPropertyc              
   C   sX  zt |}|d u s(|dks(| dkr2tdtj|tjdgd}|d }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||dd\}}	|	s|  ttjdd
tjdW S |  ttjdd
tjdW S W n@ tyR }
 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/   zNo rent property found.r   )r   r3   r   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   r   rh   r   r   r   r   r  r  r   r   r   r   r   r   r   )r   r   r   r   r   r   r-  r+  r   r   r   rj   rj   rk   r   3  s*    
z%favouriteUnfavouriteRentProperty.postNr   rj   rj   rj   rk   r  2  s   r  c                   @   s   e Zd Zdd ZdS )salePropertyc              .      sf  zg }| j jd}| j jd}| j jd}| j jd}| j jd}| j jd}| j jd}	| j jd}
| j jd	}| j jd
}| j jd}| j jd | j jd}t }|r|r|t||fdtj |r|t|dtj |r |r |t||fdtj |r:|t|dtj |rT|t|dtj |	r|
rt|	}t|
}d}|t||d  ||d  ||d  ||d  dtj tjj	|dd
d}|D ]<}|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r|j rt|j ng |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-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|jrH|j rHt|j ng |j9|j:|j;|j<|j=t>|d ,}|| |d!krȈ r fd"d#|D }|d$krt?|d%d& d'}n|d(krt?|d)d& dd*}|d+krt?|d,d& d'}n|d-krt?|d.d& dd*}qt@tjAd/|d0tjAd1W S  tBy` } z&t@tjCtD|d2tjCd1W  Y d }~S d }~0 0 d S )3N	min_price	max_pricer   bedroom_minbedroom_max	amenitiesrL   rM   r   r&   r'   r(   r)   )Zprice__range)Zlocation__icontains)Zbedrooms__range)Zamenities__contains)ZsubCategory__icontains   gfffff[@)latitude__gtelatitude__ltelongitude__gtelongitude__lteTr   r   r   r4   r   r5   r6   r   r   ),r   ry  main_categoryr  rA   r  r   rD   rK   rF   rG   rH   rO   rI   
youtubeUrlr  rS   property_demensionvisionrZ   descriptioon
closingFeer  	bathroomsreadyBypropertyReferenceIdmaintenanceFeefinance_rentalfinance_total_closing_feefinance_maintaince_feefinance_bill_utilitesr^   
disclaimerproperty_informationrequired_capitalresidental_property_detailsrN   r   rL   rM   rc   r  r   r   r*   c                    s    g | ]}|d  t  kr|qS rb   rd   rf   ri   rj   rk   rl     rm   z$saleProperty.get.<locals>.<listcomp>rn   c                 S   s   | d S ro   rj   rq   rj   rj   rk   rs     rm   z"saleProperty.get.<locals>.<lambda>rt   rv   c                 S   s   | d S ro   rj   rq   rj   rj   rk   rs     rm   rw   r0   c                 S   s   | d S ry   rj   rq   rj   rj   rk   rs     rm   r{   c                 S   s   | d S ry   rj   rq   rj   rj   rk   rs     rm   r  r  r   r   )Er   r   r   r   r   r   floatSalePropertyr   r   r   r   r   r   
facilitiesr   r   r   r   r   r   ry  r  r  rA   r   r  r   rD   rK   rF   rG   rH   benfitsrI   r  r  rS   r  r  rZ   r  r  r  r  r  r  r  r  r  r  r  r^   r  r  r  r  r   rL   rM   rc   r  ra   r   r   r   r   r   r   )r   r   r   r  r  r   r  r  r  rL   rM   r   r&   r'   r)   r   latlongkmrangerentAndsaler   r   r   r   rN   r   r   rj   ri   rk   r   N  s    :

&&&3





zsaleProperty.getNr   rj   rj   rj   rk   r  M  s   r  c                   @   s   e Zd Zdd ZdS )salePropertyDetailsc              0   C   s  zxt |}|r:t|tj}|d }tjj|d }nd}|j	
d}|sbtdditjdW S tjj|d }|stdd	itjdW S tjj|j|d
 }|rd}	nd}	|jdkrd}
n|jdkrd}
nd}
t|j}g }|D ]B}tjj|d }|r||j|jd q||d d q|j|jj|jjd |jj |jj|j|j|j|jr~|j  r~t|j  ng |j!|j"|j#|j$|j%|j&|j'|j(r|j(  rt|j(  ng |j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j?|jrB|j  rBt|j  ng |j@|jA|jB|jC|jD|	|
d/}ttjEd|dtjEdW S  tFy } z&ttjGtH|dtjGdW  Y d }~S d }~0 0 d S )Nr   r   r   r   r   zproperty_id is requiredr   r/   zNo sale property found)saler3   TFr4   r   r5   r6   r   r   r7   )/r   r8   r9   customer_imagery  r  r  rA   r  r   rD   rK   rF   rG   rH   rO   rI   r  r  rS   r  r  rZ   r  r  r  r  r  r  r  r  r  r  r  r^   r  r  r  r  rN   r   rL   rM   rc   r  r   r   z*sale property details fetched successfullyr   r   )Ir   r   r   r	   r   r   r   r   r   r   r   r   r   r   r  SalePropertyFavouriter   r   r   r  r   r   r   r   r3   r   r   r  ry  r  r  rA   r   r  r   rD   rK   rF   rG   rH   r  rI   r  r  rS   r  r  rZ   r  r  r  r  r  r  r  r  r  r  r  r^   r  r  r  r  r   rL   rM   rc   r  r   r   r   r   )r   r   r   r   r   r   r   r  r   ra   r   r   r   r   rN   ro  r   rj   rj   rk   r     s    



&&&5zsalePropertyDetails.getNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS ) favouriteUnfavouriteSalePropertyc              
   C   sX  zt |}|d u s(|dks(| dkr2tdtj|tjdgd}|d }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||dd\}}	|	s|  ttjdd
tjdW S |  ttjdd
tjdW S W n@ tyR }
 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   sale_idzSale Id is requiredr   r   r/   zNo sale property found.r   )r  r3   r   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   r   rh   r   r   r   r   r  r  r   r   r   r   r   r   r   )r   r   r   r   r   r   r  sale_objr   r   r   rj   rj   rk   r   b  s*    
z%favouriteUnfavouriteSaleProperty.postNr   rj   rj   rj   rk   r  a  s   r  c                   @   s   e Zd Zdd ZdS )bussinessForSaleDetailc              -   C   s  z<| j jd}|s.t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
|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%|j&|j'|j(|j)|j*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5|j6|j7d,}ttj8d	|d
tj8dW S  t9y~ } z&ttj:t;|dtj:dW  Y d }~S d }~0 0 d S )Nr   zBussiness sale Id is requiredr   r   r/   zNo bussiness sale foundr7   ),r   r   r   r>   rA   rB   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   revenue_growthr   r   r   r   r   r   r   r   r   r   r   r   r   r   rL   rM   r  z.bussiness for sale detail fetched siccessfullyr  )<r   r   r   r   r   r   r   r   r   r   r   r3   r   r   r   r>   r   r   rA   rB   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   rL   rM   r  r   r   r   r   )r   r  r   r   r   rj   rj   rk   r   {  sn    
.zbussinessForSaleDetail.getNr   rj   rj   rj   rk   r  z  s   r  c                   @   s   e Zd Zdd ZdS )!favouriteUnfavouriteBussinessSalec              
   C   sX  zt |}|d u s(|dks(| dkr2tdtj|tjdgd}|d }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||dd\}}	|	s|  ttjdd
tjdW S |  ttjdd
tjdW S W n@ tyR }
 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Bussiness ID is requiredr   r   r/   rD  r   )r   r3   r   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   r   rh   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r  r   r   r   r   rj   rj   rk   r     s*    
z&favouriteUnfavouriteBussinessSale.postNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS )myHouseWantedForRentDetailsc              ,   C   s  z<| j jd}|s.t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
|j|jj
|jd |j |j|jt|j|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*|j+|j,|j-|j.|j/|j0|j1|j2|j3|j4|j5d+}ttj6d	|d
tj6dW S  t7y~ } z&ttj8t9|dtj8dW  Y d }~S d }~0 0 d S )Nr   Rent sale Id is requiredr   r   r/   No house for rent foundr7   )+r   r>   r8   r9   r/  r0  r  r(  r)  r  r1  r!  r2  r   r3  r#  r4  r5  r6  r7  r"  r$  r8  rL   r   rF   rG   rH   rI   rJ   r  rM   r   r9  r:  r;  r<  r=  r>  r?  rc   r  rz   Details fetched successfullyr  ):r   r   r   r   r   r   r&  r   r   r   r   r>   r3   r(  r)  r/  r0  r   r   r  r  r1  r!  r2  r   r3  r#  r4  r5  r6  r7  r"  r$  r8  rL   r   rF   rG   rH   rI   rJ   r  rM   r   r9  r:  r;  r<  r=  r>  r?  rc   r  r*  r   r   r   r   r@  rj   rj   rk   r     sl    

.zmyHouseWantedForRentDetails.getNr   rj   rj   rj   rk   r     s   r   c                   @   s   e Zd Zdd ZdS )myInvestmentMyProjectDetailsc              *   C   st  z,| j jd}|s.t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
|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*|j+|j,|j-|j.|j/|j0|j|j1d)}ttj2d	|d
tj2dW S  t3yn } z&ttj4t5|dtj4dW  Y d }~S d }~0 0 d S )Nr   r  r   r   r/   r  r7   ))r   r8   r9   rD   rA   rB   r[  r\  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r2  r  r   r  r  r  r  r  r   rL   rM   rc   r   r  zDeatils fetched successfullyr  )6r   r   r   r   r   r   r  r   r   r   r   r3   r   r   rD   rA   rB   r[  r\  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r2  r  r   r  r  r  r  r  r   rL   rM   rc   r  r   r   r   r   r   r   
project_idr   r   r   rj   rj   rk   r     sh    +z myInvestmentMyProjectDetails.getNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS )myInvestmentMyCompanyDetailsc              $   C   s\  z| j jd}|s.t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
|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d#}ttj-d	|d
tj-dW S  t.yV } z&ttj/t0|dtj/dW  Y d }~S d }~0 0 d S )Nr   r  r   r   r/   zNo investment company foundr7   )#r   rA   r  r8   r9   r   r[  r]  r^  company_telephonecompany_postcodecompany_postal_coderh  rd  rc  chairman_emailrg  rS  rY  ra  rf  small_company_logor   rK  rL  rN  rO  rP  youtube_urlr`  teamboardpartnersr  r   r  r  )1r   r   r   r   r   r   rQ  r   r   r   r   rA   r  r3   r   r   r   r[  r]  r^  r  r	  r
  rh  rd  rc  r  rg  rS  rY  ra  rf  r  r   rK  rL  rN  rO  rP  r  r`  r  r  r  r  r   r   r   r   r  rj   rj   rk   r   H  s\    %z myInvestmentMyCompanyDetails.getNr   rj   rj   rj   rk   r  G  s   r  c                   @   s   e Zd Zdd ZdS )myPropertyProjectDetailsc              3   C   sz  z2| j jd}|s.t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krld}n|jd	kr|d
}nd}t
|j}g }|D ]@}tjj|d	 }|r||j|jd q||d d q|j|jj|jjd |jj |jj|jj|j|j|j|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.|jr|j rt
|j ng |j/r|j/ rt
|j/ ng |j0|j1|j2|j3|j4|j5|j6|j7|j8|j9|j:|j;|j<|j=|j>|j8|j?|j@||jAd2}	ttjBd|	dtjBdW S  tCyt }
 z&ttjDtE|
dtjDdW  Y d }
~
S d }
~
0 0 d S )Nr   zProject Id is requiredr   r   r/   r  r   r4   r   r5   r6   r   r   r7   )2r   r8   r9   r  r  r:   r;   r<   r=   r>   r?   r@   rA   rB   r   rC   r)   rD   rE   rF   rG   rH   rI   rJ   rK   r   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   rX   r_   r`   r   r  r  r  )Fr   r   r   r   r   r   r   r   r   r   r   r   rN   r   r   r   r   r   r3   r   r   r  r  r:   r;   r<   r=   r>   r?   r@   rA   r   rB   r   rC   r)   rD   rE   rF   rG   rH   rI   rJ   rK   r   rL   rM   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   rN   r   r   rj   rj   rk   r   }  s    



&&&4zmyPropertyProjectDetails.getNr   rj   rj   rj   rk   r  |  s   r  c                   @   s   e Zd Zdd ZdS )commonGetPropertiesDetailc              
   C   s  z^|j d}|s,ttjddtjdW S d| jj di}z|dkrrd}tjd||d	}| }t|W W S |d
krd}tjd||d	}| }t|W W S |dkrd}tjd||d	}| }t|W W S |dkrd}tjd||d	}| }t|W W S |dkr6d}tjd||d	}| }t|W W S |dkrhd}tjd||d	}| }t|W W S |dkrd}tjd||d	}| }t|W W S |dkrd}tjd||d	}| }t|W W S |dkrd}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 )Nrz  ztype is requiredr   r   r   r  z:http://54.225.243.254:9007/panel-api/sale-property-detailsr   )paramsr  z9http://54.225.243.254:9007/panel-api/rent-property-detailBusinessSalezChttp://54.225.243.254:9007/panel-api/get-bussiness-for-sale-details	HouseRentzEhttp://54.225.243.254:9007/panel-api/my-house-wanted-for-rent-detailsInvestmentProjectzBhttp://54.225.243.254:9007/panel-api/my-investment-project-detailsInvestmentCompanyzEhttp://54.225.243.254:9007/panel-api/my-investment-my-company-detailsr   z@http://54.225.243.254:9007/panel-api/my-property-project-detailsCompanySeekingz;http://54.225.243.254:9007/panel-api/detail-company-seekingPropertyDeveloperszChttp://54.225.243.254:9007/panel-api/get-property-developer-detailszNo Property)r   r   r   r   r   r   r  r  r   r   r   r   )r   r   Typer  r  getAPIapiResponser   rj   rj   rk   r     sp    





6zcommonGetPropertiesDetail.getNr   rj   rj   rj   rk   r    s   r  c                   @   s   e Zd Zdd ZdS )ListCompanySeekingc              ?   C   s  zNg }t j }|D ]$}||j|jjd |j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|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:r|j:jnd |j;|j<|j=|j>|j?|j@|jAd; qtBt9jCd|dW S  tDy } z.tE| tBt9jFtG|dt9jFdW  Y d }~S d }~0 0 d S )Nr7   );r   r   r8   r  r  r   r>   r   about_the_ownerrA   rB   r   rY  maximum_drawingrO  rn  rM  number_of_sharerf  rS  e_postissue_account_numberestablish_yearpremises_frombackground_for_salerh  number_of_employeer^  r  youtubeshare_before_sharename_of_shareholderbeskrivelseupload_team_dataupload_team_nameupload_team_sizeupload_board_dataupload_board_nameupload_board_sizeupload_partner_dataupload_partner_nameupload_partner_sizer   rF   rG   rH   zip_coderJ   share_holder_imageenter_sharesr   ri  rc   rL   rM   r*  end_dater   favourite_dater  r}   r   r   )HrG  r   allr   r   r3   r   r   r  r  r   r>   r   r  r   r   property_imageproperty_videor   rY  r  rO  rn  rM  r   rf  rS  r!  r"  r#  r$  r%  rh  r&  r^  r  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r   rF   rG   rH   r4  rJ   r5  r6  r   ri  rc   rL   rM   r*  r7  r   r8  r   r   r   printr   r   )r   r   r   Zlist_companycsr   rj   rj   rk   r   /  s    



@zListCompanySeeking.getNr   rj   rj   rj   rk   r  .  s   r  c                   @   s   e Zd Zdd ZdS )DetailCompanySeekingc              :   C   s  z~| j jd}|s.t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
|jjd |j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#|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?rR|j?j
nd |j@|jA|jB|jC|jDd9}ttjEd	|d
W S  tFy } z.tG| ttjHtI|dtjHdW  Y d }~S d }~0 0 d S )Nr   zseeking_id is requiredr   r   r/   zNo seeking company foundr7   )9r   r   r8   r  r  r   r>   r   r  rA   rB   r   rY  r  rO  rn  rM  r   rf  rS  r!  r"  r#  r$  r%  rh  r&  r^  r  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r   rF   rG   rH   r4  rJ   r5  r6  r   ri  rc   rL   rM   r*  r7  r  r}   )Jr   r   r   r   r   r   rG  r   r   r   r   r3   r   r   r  r  r   r>   r   r  r   r   r:  r;  r   rY  r  rO  rn  rM  r   rf  rS  r!  r"  r#  r$  r%  rh  r&  r^  r  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r   rF   rG   rH   r4  rJ   r5  r6  ri  rc   rL   rM   r*  r7  r   r   r<  r   r   )r   r   
seeking_idr=  ro  r   rj   rj   rk   r     s    
?zDetailCompanySeeking.getNr   rj   rj   rj   rk   r>    s   r>  c                   @   s   e Zd Zdd ZdS )getContentPagesc              
   C   s   z|j d}|s*ttjddtjdW S |j d}tjj|d }|sdttjddtj	dW S |r|j
|j|j|j|jd}ni }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 )N	page_typezPage type is requiredr   r   language)page_type_namezNo content page found)
page_titlepage_contentpage_title_nwpage_content_nwr  r  r}   r   )r   r   r   r   r   ContentPagesAdminr   r   r   r   rD  rE  rF  rG  r  r   r<  r   r   )r   r   rA  rB  content_objr   r   rj   rj   rk   r     s(    zgetContentPages.getNr   rj   rj   rj   rk   r@    s   r@  c                   @   s   e Zd Zdd ZdS )getFaqContentc              
   C   s   zXt jjddd}g }|D ] }|j|j|jd}|| q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 )	NTr   r.   )r   ry  contentzFaq fetched successfullyr}   r   r   )AdminFaqr   r   r   r   ry  rK  r   r   r   r   r   r<  r   r   )r   r   data_objr   faqr   r   rj   rj   rk   r     s    zgetFaqContent.getNr   rj   rj   rj   rk   rJ    s   rJ  c                   @   s   e Zd Zdd ZdS )getPlanListc                 C   s   zpt jjddd}g }|D ]<}|j|j|j|j|j|j|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   	plan_nameplan_validityrS   plan_descriptiondigital_rental_contractnotifications_stakeholdersvisibility_among_adsvisibility_at_topinformation_of_local_areazPlan list fetched successfullyr}   r   r   )SubscriptionPlanr   r   r   planNameplanDurationDaysrS   r   rS  rT  rU  rV  rW  r   r   r   r   r   r   r   )r   r   plan_objr   planro  r   rj   rj   rk   r   	  s&    zgetPlanList.getNr   rj   rj   rj   rk   rO   	  s   rO  c                   @   s   e Zd Zdd ZdS )getCompanyInformationc              
   C   sj   t j  }|s(ttjddtjdS |j|j|j	|j
|j|j|j|j|jd	}ttjd|dtjdS )NzNo data foundr   r   )	r^  company_phone_numbercompany_locationcompany_latitudecompany_longitudecompany_facebookcompany_instagramcompany_twittercompany_youtubez(company information fetched successfullyr~   r   ro  )CompanyContactInformationr   r9  r   r   r   r   r^  r^  r_  r`  ra  rb  rc  rd  re  r   )r   r   	check_objro  rj   rj   rk   r   	  s    zgetCompanyInformation.getNr   rj   rj   rj   rk   r]  	  s   r]  c                   @   s   e Zd Zdd ZdS )getHowItWorkc                 C   sX   t jjdd}g }|D ](}|j|j|j|j|jd}|| qt	t
jd|dt
jdS )NTr   )r   step_numberr   ry  r   r|   rf  r   )
HowItWorksr   r   r   rj  r   ry  r   r   r   r   r   )r   r   how_objall_Datahowro  rj   rj   rk   r   -	  s    zgetHowItWork.getNr   rj   rj   rj   rk   ri  ,	  s   ri  c                   @   s   e Zd Zdd ZdS )propertyDevelopersDetailsc              Z   C   sN  z| j jd}|s.t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
|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)|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|j2|jK|jL|jM|jN|jO|jP|jQ|jR|jS|jT|jU|jV|jW|jX|jY|jZ|j[|j\|j]|j^|j_|j|j`r|j`j
nd |ja|jb|jcdY}ttjdd	|d
W S  teyH } z.tf| ttjgth|dtjgdW  Y d }~S d }~0 0 d S )Nr   zdeveloper_id is requiredr   r   r/   zNo property developers foundr7   )Yr   r   r8   r  r  rA   rB   r   r   rD   r\  r  r  r  r  r  r  r>   r   r  r  r  expected_periodr  r  r  r  r  r  r2  measure_of_multiplierr   minimum_goalrS  rK  rO  price_of_sharesatutesno_of_drawingsrn  remaining_sharer  short_description
why_investproblem_to_be_solvedour_solutionstart_date_dataend_date_datar   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_limitrf  discussion_descriptionnew_exisiting_detailsdrawing_on_behalf
foundationfoundation_namert  satutes_nameannual_accountannual_account_namer   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   rF   rG   rH   r4  rJ   rL   rM   r   ri  rc   r*  r7  r  r}   )ir   r   r   r   r   r   r  r   r   r   r   r3   r   r   r  r  r   r   r:  rB   r   r   rD   r\  r  r  r  r  r  r  r>   r   r  r  r  rp  r  r  r  r  r  r  r2  rq  r   rr  rS  rK  rO  rs  rt  ru  rn  rv  r  rw  rx  ry  rz  r{  r|  r   r}  r~  r  r  r  r  r  rf  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r   rF   rG   rH   rI   rJ   rL   rM   ri  rc   r*  r7  r   r   r<  r   r   )r   r   developer_idr=  ro  r   rj   rj   rk   r   @	  s    
ezpropertyDevelopersDetails.getNr   rj   rj   rj   rk   ro  ?	  s   ro  c                   @   s   e Zd Zdd ZdS )&favouriteUnfavouritePropertyDevelopersc           
      C   s   t |}|d u s$|dks$| dkr.tdtj|tjdgd}|d }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d\}}	|	s|  ttjdd
S |  ttjdd
S d S )Nr   r   r   r   r   r   r   r  zDeveloper ID is requiredr   r   r/   zNo property developer foundr   )property_developerr3   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   r   rh   r   r   r   r   r  PropertyDevelopersFavouriter   r   r   r   )
r   r   r   r   r   r   r  Zdeveloper_objr   r   rj   rj   rk   r   	  s$    
z+favouriteUnfavouritePropertyDevelopers.postNr   rj   rj   rj   rk   r  	  s   r  )[rest_framework.viewsr   rest_framework.responser   rest_frameworkr   r  modelsrandomr   django.confr	   passlib.hashr
   handler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   readmin_api.modelsr   django.core.paginatorr   r   r   Zcustomer_api.modelsZrest_framework.authenticationr   r   django.db.modelsr   subscription_api.modelsr   r   Zcustomer_api.authenticationr   r   r   r   r   r   r  r  r,  rA  rB  rE  rI  rV  rk  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r>  r@  rJ  rO  r]  ri  ro  r  rj   rj   rj   rk   <module>   s     XnH!E?79\!T8!IV ,i;>;5]UTQy