
    =h                     2   d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZ  eddg	      Z G d
 de      Zej#                  d      dee   fd       Zej'                  d       edd       eddd       ed       ed       ed      fdededee   dee   dee   f
d       Z G d de      Zej'                  d      d         Z G d! d"e      Zej#                  d#      d$ee   fd%       Zej#                  d&      d'ed(efd)       Zy)*    )	APIRouterHTTPExceptionQuery)	BaseModel)ListOptional)MongoClient)ObjectIdfetch_twilio_numbersz/api/businesszBusiness Setup)prefixtagsc                   <    e Zd ZU eed<   eed<   eed<   ee   ed<   y)Servicenamepriceslot_lengthdescriptionN)__name__
__module____qualname__str__annotations__floatintr        E/var/www/html/phonemate/phone_mate_backend/app/api/business/routes.pyr   r      s    
IL#r   r   z	/servicesservicesc                    K   ddiS w)NmessagezServices saved successfullyr   )r   s    r   setup_servicesr"      s      455   z/available-numbers.GB)examplelocalz^(local|tollfree)$)regexr%   Ncountrynumber_typecontainspagestatec                 >   K   t        | ||||       d {   S 7 w)Nr(   r)   r*   r+   r,   r   r.   s        r   get_available_numbersr/      s.      &   s   c                   P    e Zd ZU eed<   eed<   eed<   eed<   eed<   ee   ed<   y)AIAssistantidr   genderaccentpersonalityvoice_sample_urlN)r   r   r   r   r   r   r   r   r   r1   r1   +   s&    G
IKKsm#r   r1   z/ai-assistantsc            
         K   t         j                  j                  i ddddddd      j                  d        d {   } d| iS 7 w)N   )_idr   r3   r4   r5   r   )length
assistants)dbai_assistantsfindto_list)r;   s    r   get_ai_assistantsr@   3   sZ     '',,R2  wdwJ *%%s   ;AA	Ac                   6    e Zd ZU eed<   eed<   eed<   eed<   y)Availabilityday_of_week
start_timeend_timeis_working_dayN)r   r   r   r   r   r   boolr   r   r   rB   rB   ?   s    OMr   rB   z/availabilityavailabilityc                    K   ddiS w)Nr!   zAvailability saved successfullyr   )rH   s    r   set_availabilityrJ   E   s      899r#   z /select-assistant/{assistant_id}assistant_idbusiness_idc                 <  K   t         j                  j                  dt        |       i       d {   }|st	        dd      |d   j                         }||d<   t         j                  j                  dt        |      id| |di       d {    d	d
iS 7 g7 
w)Nr9   i  zAssistant not found)status_codedetail
bot_configrL   z$set)ai_assistant_idai_assistant_configr!   z$AI assistant configured successfully)r<   r=   find_oner
   r   copy
businesses
update_one)rK   rL   	assistantcustom_configs       r   select_assistantrY   J   s      &&//8N0OPPI4IJJ l+002M#.M-  --
"
"	%&#/'4	
   =>>' Qs"   .BBABB	BB)fastapir   r   r   pydanticr   typingr   r   pymongor	   bsonr
   services.twilio_servicer   routerr   postr"   getr   r   r/   r1   r@   rB   rJ   rY   r   r   r   <module>rc      sm   3 3  !   8	/1A0B	Ci  [64= 6 6  !d+W,@'R#Dk+ ; sm 3-	
 C= "$) $ 	& 	&9  _:l); : : /0? ?3 ? 1?r   