
    *j                     H    d dl Z d dlmZmZ d dlmZ dededededed	efd
Zy)    N)datetime	timedelta)settingscheckindatecheckoutdatehotel_idsub_hotel_id	hotel_idsreturnc                 r  K   	 t        j                  | d      j                         }t        j                  |d      j                         }||k  rdddS ||k(  rdddS t        j
                   d}||d}t        j                  | d      j                  d	      }	t        j                  |d      j                  d	      }
|	|
d
t        |      s|n|d   ddd}	 t        j                  d      4 d{   }|j                  |||       d{   }|j                          |j                         }ddd      d{    i }j                  dg       D ]1  }t        j                  |d   d      j                         }|d   ||<   3 |}||k  r@|j                  |      dk(  r||k(  r	dd| ddS dd| ddS |t!        d      z  }||k  r@|j                  di       }|j                  d      }|j                  |d      }	 t#        |      }||z
  j&                  }|dkD  r||k  rdd|  d| d | d!dS dd
dS # t        $ r dddcY S w xY w7 b7 I7 # 1 d{  7  sw Y   -xY w# t        $ r}t        d|        dddcY d}~S d}~ww xY w# t        t$        f$ r d}Y w xY ww)"z
    checkindate / checkoutdate format: MM-DD-YYYY
    Returns True if booking is allowed, else False.
    Prints warning message before returning False.
    z%m-%d-%YFz'Something went wrong. Please try again.)statusmessagez`The checkout date must be later than the check-in date. Please select a different checkout date.zXCheck-in and checkout dates cannot be the same. Please select a different checkout date.z*frontend/Searchresults/getPriceMlsStopSell)r   r	   z%Y-%m-%d r   T)firstlastpromor	   fromSuitesPageibeV2   )timeoutN)jsonheaderszWarning: API request failed: stopSelldatez%m/%d/%Yvalue   z(Rooms are not available for check-in on z*. Please select a different check-in date.zRooms are not available on zM, which falls within your selected stay dates. Please choose different dates.)daysminStayzBookings starting on z require a minimum stay of z% night(s), but your selected stay is z' night(s). Please choose a longer stay.)r   strptimer   
ValueErrorr   
LS_API_URLstrftimelenhttpxAsyncClientpostraise_for_statusr   	Exceptionprintgetr   int	TypeErrorr   )r   r   r   r	   r
   checkincheckouturlr   checkindate_for_payloadcheckoutdate_for_payloadpayloadclientresponsedataestop_sell_mapitemdtcurrentmin_staycheckin_keyrequired_nightsactual_nightss                           1/var/www/html/ls-ibe-bot-apis/app/utils/extra1.pyis_booking_allowedr@      sS    W##K<AAC$$\:>CCE 7  -O  P  	P(  -G  H  	H  !!K
LC $G '//ZHQQR\]'00zJSST^_ )(,/	N	!GW$$R00F#[[7G[LLH%%'==?D 10 MR(tF|Z8==? Mb )
 G
H
W%*'!#!I'R|}  $!<WI  FS   T  	9!$$ H
" xx	2&H"":.Kll;2Oo. '--M}>.{m;VWfVg  hM  N[  M\  \C  D
 	

 r**g  W,UVVW< 1L 1000  W-aS12,UVVWL 	" s   J7AI BJ7I7 6I7I7 :I!I$I!7I7 II7 BJ75J7J  -J7IJ7IJ7I7 I!I7 !I4'I*(I4/I7 7	J JJJ7JJ7 J41J73J44J7)	r$   r   r   app.configs.settingsr   strlistboolr@        r?   <module>rG      sG     ( )^+# ^+S ^+C ^+_b ^+os ^+x| ^+rF   