
    >fI                        d dl mZmZmZ d dlmZmZ d dlZd dlm	Z	  ede
      Zej                  ddg      d	        Zej                  d
dg      d        Zej                  ddg      d        Zej                  ddg      d        Zy)    )	Blueprintrequestjsonify)Partners	LocationsN)geodesic	routes_bpz/getPartnersGET)methodsc                  *   t         j                  } i }| j                         D ]  \  }}t        t        |      s|||<    t	        j
                  di |}|r.t        t        j                  |j                                     dfS t        ddi      dfS )N   errorzpartners not found   )
r   argsitemshasattrr   objectsr   jsonloadsto_json)search_paramsquery_filterkeyvaluepartnerss        +C:\Users\PC\Desktop\backup\routes\routes.pyget_partnerr   	   s     LLM L#))+ &
U8S! %L&
 /,/H tzz("2"2"456;;!567<<    z/getLocationsc                  *   t         j                  } i }| j                         D ]  \  }}t        t        |      s|||<    t        j                  di |}|r.t        t        j                  |j                                     dfS t        ddi      dfS )Nr   r   zLocations not foundr   r   )r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   	locationss        r   get_locationr"      s     LLM L#))+ &
U8S! %L&
 !!1L1I tzz)"3"3"567<<!678#==r   z/getNearestPartnerLocationsc                     t        j                         } 	 t        t        j                  j                  d            }t        t        j                  j                  d            }t        t        j                  j                  d            }g }| D ]  }|d   }|d   }t        ||f||f      j                  }||k  s.t        j                  t        |j                        	      j                         }	|	D 
cg c]g  }
t        |	j                        |	j                  |	j                   |	j"                  |	j$                  |	j&                  |	j(                  |	j*                  d
d	i }}
|j-                  i dt        |j                        d|j.                  d|j0                  d|j2                  d|j4                  d|j6                  d|j8                  d|j:                  d|j<                  d|j>                  d|j@                  d|j                   d|j"                  d|ddd|        dd|d}t        |      S # t        t        f$ r t        ddi      dfcY S w xY wc c}
w )NLatLongDistancer   zOInvalid input. Please provide valid latitude, longitude, and Distance in miles.i  fsLocationLatfsLocationLongfsPartnerIdr   )	_idr*   r'   r(   fsLocationNamefiParkingSlots
fdUpdateAt
fdCreateAt__vr+   fsFirstName
fsLastNamefsEmailfsPhonefsBusinessName	fsAddress	fsCountryfsStatefsCity	fsZipCode
ffDistance	fbIsErrorFfoLocationsz1Nearest partner locations retrieved successfully.)r<   	fsMessager   )!r   r   floatr   r   get	TypeError
ValueErrorr   r   milesr   stridfirstr*   r'   r(   r,   r-   r.   r/   appendr1   r2   r3   r4   r5   r6   r7   r8   r9   r:   )partners_datar$   r%   r&   nearby_airportsairportairport_latairport_londistancelocations_datalocationlocation_data_listdatas                r   get_nearby_airportsrR   1   s   ""$MzGLL$$U+,W\\%%f-.))*56 O  %o../S$K+{)CDJJx&..3wzz?KQQSN !/"0  ~001#1#=#=%3%A%A&4&C&C&4&C&C&4&C&C"0";";"0";";
"0 "0 "" $s7::$w22$ g00$ 7??	$
 7??$ !'"8"8$ W..$ W..$ 7??$ '..$ W..$  !6!6$ !'"8"8$ h$ U$  1!$ )%N H#
D
 4=a z" z!rstvyyyz"0s   A8I	 ;A,I-	I*)I*z	/address/c            	         t         j                  j                  d      } t        j                  |       j                         }|st        ddi      dfS t        j                  |       }|j                   d|j                   }|j                   d|j                   d|j                   d|j                   d|j                   	}t        |       |||j                   |j"                  d	g d
}|D ]N  }t        |j$                        |j&                  |j(                  |j*                  d}|d   j-                  |       P t        d|gi      S )Npartners_id)rE   r   zPartner not foundr   r)    z, )Latitude	Longitude)IDNameAddressCoordinatesrO   )
LocationIdLocationNameOccupiedSpotsAvailableSpotsrO   parkings)r   r   r@   r   r   rF   r   r   r1   r2   r5   r6   r9   r8   r:   rD   r'   r(   rE   r,   fsoccupied_spotsr-   rG   )rT   rH   rN   namepart_addressr`   rO   parking_infos           r   addressre      sr   ,,""=1K$$4::<M!456;;&&;?N''(-*B*B)CDD#2232m6M6M5NbQ^QeQePffhivi~i~h  @B  CP  CZ  CZ  B[  \L +%33&557 H # 2hkk*$33%66&55	
 	##L12 J
+,,r   )flaskr   r   r   models.modelsr   r   r   geopy.distancer   __name__r	   router   r"   rR   re   r   r   r   <module>rk      s    - - ,  #k8,	
%1= 2=& 5'2> 3>& .@6 A6v ug.!- /!-r   