
    )g

                         d dl mZmZ d dlmZmZ d dlm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)    )AnyDict)	BaseModelField)Enumc                   6    e Zd ZU eed<   eed<    G d d      Zy)ChatRequestquerychat_historyc                   0    e Zd Zedeeef   ddfd       Zy)ChatRequest.ConfigschemareturnNc                     d| d<   y NzChat request schemadescription r   s    7/var/www/html/chat-with-data/app/schemas/chat_schema.pyjson_schema_extraz$ChatRequest.Config.json_schema_extra
       $9F=!    __name__
__module____qualname__staticmethodr   strr   r   r   r   r   Configr   	   *    		:d38n 	: 	: 
	:r   r   N)r   r   r   r   __annotations__listr   r   r   r   r	   r	      s    J: :r   r	   c                   F    e Zd ZU eed<   eed<   ee   ed<    G d d      Zy)ChatResponserolemessagedatac                   0    e Zd Zedeeef   ddfd       Zy)ChatResponse.Configr   r   Nc                     d| d<   y r   r   r   s    r   r   z%ChatResponse.Config.json_schema_extra   r   r   r   r   r   r   r   r)      r    r   r   N)r   r   r   r   r!   r"   r   r   r   r   r   r$   r$      s    
IL
s)O: :r   r$   c                       e Zd ZdZdZy)reportunknownlodging_statisticsN)r   r   r   r-   r.   r   r   r   r,   r,      s    G-r   r,   c            
           e Zd ZU  ed      Zeed<    ed      Zeed<    ed      Z	eed<    ed      Z
eed<   dedededed	d
f
dZddZy
)reportSchemazNOTE: if user clearly mention to generate or make report and we have that report listed in enum only then provide report name else make it unknown for every user query.r   
reportNamezGeneraete sql query.sqlQuery
yyyy-mm-ddfromDatetoDater   Nc                 <    || _         || _        || _        || _        y N)r2   r3   r5   r6   )selfr2   r3   r5   r6   kwargss         r   __init__zreportSchema.__init__!   s    $  r   c                 "    || j                   |<   y r8   __dict__r9   namevalues      r   __setattr__zreportSchema.__setattr__(       #dr   r   N)r   r   r   r   r2   r,   r!   r3   r   r5   r6   r;   rB   r   r   r   r0   r0      sw      ,V  WJ  W&<=Hc=l3Hc3L1FC1#  c # \` $r   r0   c                   b    e Zd ZU  ed      Zeed<    ed      Zeed<   dededdfdZd
d	Z	y)
factSchema\Make standalone question for user query. complete the question using previous conversations.r1   standaloneQuestionr4   dater   Nc                      || _         || _        y r8   )rH   rI   )r9   rH   rI   r:   s       r   r;   zfactSchema.__init__/   s    "4	r   c                 "    || j                   |<   y r8   r=   r?   s      r   rB   zfactSchema.__setattr__3   rC   r   rD   )
r   r   r   r   rH   r   r!   rI   r;   rB   r   r   r   rF   rF   +   sJ    #  1O  P  P,/D#/# C d $r   rF   c                       e Zd ZU  ed      Zeed<    ed      Zeed<    ed      Zeed<   dedededdfd	Z	dd
Z
y)multiFactSchemarG   r1   rH   r4   r5   r6   r   Nc                 .    || _         || _        || _        y r8   )rH   r5   r6   )r9   rH   r5   r6   r:   s        r   r;   zmultiFactSchema.__init__;   s    "4 r   c                 "    || j                   |<   y r8   r=   r?   s      r   rB   zmultiFactSchema.__setattr__@   rC   r   rD   )r   r   r   r   rH   r   r!   r5   r6   r;   rB   r   r   r   rM   rM   6   sa    #  1O  P  Pl3Hc3L1FC1#  C VZ 
$r   rM   c                   *    e Zd ZU  ed      Zeed<   y)factCodezwrite code direct herer1   codeN)r   r   r   r   rR   r   r!   r   r   r   rQ   rQ   C   s    ">?D#?r   rQ   N)typingr   r   pydanticr   r   enumr   r	   r$   r,   r0   rF   rM   rQ   r   r   r   <module>rV      sd     % :) ::9 :.T .$9 $ 	$ 	$$i $@y @r   