
     mh{                     t   d dl mZmZ d dlmZmZmZmZ d dlmZ d dl	Z	 G d de      Z
 G d de      Z G d	 d
e      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d e      Zy)!    )	BaseModelField)ListDictOptionalLiteral)datetimeNc                       e Zd ZU  ed       Zeed<   eed<   dZee   ed<   dZ	e
ed<   d	Ze
ed
<   dZe
ed<   dZeed<   dZee   ed<   dZee   ed<    eej$                        Zeed<   y)SearchRequestc                  <    t        t        j                               S Nstruuiduuid4     ./shared/models/schemas.py<lambda>zSearchRequest.<lambda>       C

4E r   default_factory
request_idqueryNsearch_engine
   max_results   delay   timeoutTheadlessuser_id
session_id	timestamp)__name__
__module____qualname__r   r   r   __annotations__r   r   r   intr   r!   r"   boolr#   r$   r	   nowr%   r   r   r   r   r      s{    ,EFJFJ#'M8C='KE3NGSHd!GXc]! $J$=Ix=r   r   c                       e Zd ZU eed<   eed<   dZeed<   dZeed<   dZeed<   d	Z	e
ed
<    eej                        Zeed<   y)SearchEngineRequestr   r   r   r   r   r   r    r!   Tr"   r   r%   N)r&   r'   r(   r   r)   r   r*   r   r!   r"   r+   r   r	   r,   r%   r   r   r   r.   r.      sF    OJKE3NGSHd=Ix=r   r.   c                   r    e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   y)SearchResultNtitleurlsnippetdisplayed_urlrank)r&   r'   r(   r1   r   r   r)   r2   r3   r4   r5   r*   r   r   r   r0   r0      sH    E8C=C#!GXc]!#'M8C='D(3-r   r0   c                       e Zd ZU eed<   eed<   eed<   ee   ed<   eed<    ee	j                        Ze	ed<   dZee   ed	<   dZee   ed
<   y)SearchResponser   r   r   resultstotal_resultsr   r%   Nerrorprocessing_time)r&   r'   r(   r   r)   r   r0   r*   r   r	   r,   r%   r:   r   r;   floatr   r   r   r7   r7   "   sR    OJ,=Ix=E8C='+OXe_+r   r7   c                   `    e Zd ZU eed<   eed<   dZeed<    eej                        Z
eed<   y)MetadataRequestr   r2   r    r!   r   r%   N)r&   r'   r(   r   r)   r!   r*   r   r	   r,   r%   r   r   r   r>   r>   ,   s)    O	HGS=Ix=r   r>   c                      e Zd ZU eed<   dZee   ed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed	<   dZee   ed
<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   g Zee   ed<   g Zee   ed<   g Zee   ed<   dZee   ed<   y)PageMetadatar2   Nr1   descriptionkeywordsauthorpublish_datelast_modifiedcanonical_urllanguage	page_size	load_timestatus_codecontent_type
word_countimages_countlinks_countexternal_links_countsocial_media_linksemail_addressesphone_numbersr:   )r&   r'   r(   r   r)   r1   r   rA   rB   rC   rD   rE   rF   rG   rH   r*   rI   r<   rJ   rK   rL   rM   rN   rO   rP   r   rQ   rR   r:   r   r   r   r@   r@   2   s!   	HE8C=!%K#%"Hhsm" FHSM "&L(3-&#'M8C='#'M8C='"Hhsm"#Ix}#!%Ix%!%K#%"&L(3-& $J$"&L(3-&!%K#%*.(3-.$&S	&!#OT#Y#!M49!E8C=r   r@   c                   f    e Zd ZU eed<   eed<    eej                        Z	eed<   dZ
ee   ed<   y)MetadataResponser   metadatar   r%   Nr;   )r&   r'   r(   r   r)   r@   r   r	   r,   r%   r;   r   r<   r   r   r   rT   rT   I   s.    O=Ix='+OXe_+r   rT   c                   z    e Zd ZU eed<   eed<   dZed   ed<   dZe	e   ed<    e
ej                        Zeed	<   y)
ExportRequestr   datajsonrY   csvbothformatNfilenamer   r%   )r&   r'   r(   r   r)   r   r]   r   r^   r   r   r	   r,   r%   r   r   r   rW   rW   O   s=    O
J-3FG)*3"Hhsm"=Ix=r   rW   c                   l    e Zd ZU eed<   ee   ed<    eej                        Z	eed<   dZ
ee   ed<   y)ExportResponser   filesr   r%   Nr:   )r&   r'   r(   r   r)   r   r   r	   r,   r%   r:   r   r   r   r   r`   r`   V   s2    O9=Ix=E8C=r   r`   c                       e Zd ZU  ed       Zeed<   ee   ed<   dgZee   ed<   dZ	e
ed<   d	Ze
ed
<   dZed   ed<   dZee   ed<   dZee   ed<    eej$                        Zeed<   y)BatchSearchRequestc                  <    t        t        j                               S r   r   r   r   r   r   zBatchSearchRequest.<lambda>]   r   r   r   r   queriesgooglesearch_enginesr   r   r   r   rY   rZ   export_formatNr#   r$   r%   )r&   r'   r(   r   r   r   r)   r   rg   r   r*   r   rh   r   r#   r   r$   r	   r,   r%   r   r   r   rc   rc   \   s~    ,EFJF#Y!)
NDI*KE3N4:M701:!GXc]! $J$=Ix=r   rc   c                       e Zd ZU eed<   ed   ed<   dZeed<   dZe	e   ed<   g Z
ee   ed<    eej                  	      Zeed
<   y)ProcessingStatusr   )pending
processing	completedfailedstatusg        progressNmessageresult_filesr   r%   )r&   r'   r(   r   r)   r   rp   r<   rq   r   rr   r   r   r	   r,   r%   r   r   r   rj   rj   g   sL    OBCCHe!GXc]! L$s) =Ix=r   rj   c                   l    e Zd ZU eed<   ed   ed<    eej                        Z	eed<   dZ
ee   ed<   y)HealthStatusservice_name)healthy	unhealthydegradedro   r   r%   Ndetails)r&   r'   r(   r   r)   r   r   r	   r,   r%   ry   r   r   r   r   r   rt   rt   o   s5    677=Ix="GXd^"r   rt   c                   J    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   y)
SystemInfosystemreleaseversionmachine	processorpython_versionN)r&   r'   r(   r   r)   r   r   r   r{   r{   u   s!    KLLLNr   r{   c                   p    e Zd ZU eed<   dZee   ed<    eej                        Z
eed<   dZee   ed<   y)ErrorResponser:   Nry   r   r%   r   )r&   r'   r(   r   r)   ry   r   r   r	   r,   r%   r   r   r   r   r   r   }   s6    J!GXc]!=Ix= $J$r   r   )pydanticr   r   typingr   r   r   r   r	   r   r   r.   r0   r7   r>   r@   rT   rW   r`   rc   rj   rt   r{   r   r   r   r   <module>r      s    % 0 0  
>I 
>>) >9 ,Y ,>i > 9  .,y ,>I > Y  	> 	>>y >#9 # %I %r   