
    ei)
                         d dl mZmZ d dlmZmZ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 G d de      Z G d de      Zy)    )	BaseModelField)OptionalListAnyDict)datetimec                       e Zd ZU dZ edd      Zee   ed<    edd      Z	e
ed<    edd	      Ze
ed
<    edd      Ze
ed<    edd      Ze
ed<    edd      Zeed<   y)ChatRequestz Request schema for chat endpointNzDChat session ID for continuous conversation. Send null for new chat.descriptionchat_session_id.zCompany ID to query data for
company_idzUser IDuser_idzStore IDstore_idz	Branch ID	branch_idz.Natural language question about inventory dataquestion)__name__
__module____qualname____doc__r   r   r   str__annotations__r   intr   r   r   r        H/var/www/html/hubwallet-dev/src/smart_inventory/apps/chat_bot/schemas.pyr   r      s{    *%*4  >D  &EOXc]  EC-KLJL)4GS4#:6Hc63K8Is8#+[\Hc\r   r   c                   ^    e Zd ZU dZ edd      Zeed<   dZe	e
eeef         ed<   eed<   y)	ChatDataz Data structure for chat response.z.Chat session ID to use for follow-up questionsr   r   Nraw_dataanswer)r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   r   r   r      s8    * 2bcOSc/3HhtDcN+,3Kr   r   c                   0    e Zd ZU dZeed<   eed<   eed<   y)ChatResponsez!Response schema for chat endpointsuccessdatamessageN)r   r   r   r   boolr   r   r   r   r   r   r#   r#      s    +M
NLr   r#   c                   \    e Zd ZU dZdZeed<   eed<   dZe	e   ed<   dZ
e	eeef      ed<   y)ChatErrorResponsez'Error response schema for chat endpointFr$   r&   N
error_codedetails)r   r   r   r   r$   r'   r   r   r*   r   r+   r   r   r   r   r   r)   r)      s9    1GTL $J$(,GXd38n%,r   r)   c                   N    e Zd ZU dZeed<   eed<   eed<   eed<    G d d      Zy)	ChatMessageSchemaz Schema for a single chat messageidrolecontent
created_atc                       e Zd ZdZy)ChatMessageSchema.ConfigTNr   r   r   from_attributesr   r   r   Configr3   /       r   r6   N)	r   r   r   r   r   r   r   r	   r6   r   r   r   r-   r-   (   s$    *G
IL r   r-   c                       e Zd ZU dZeed<   eed<   ee   ed<   eed<   eed<   eed<   eed<   eed	<   eed
<   dZ	eed<    G d d      Z
y)ChatSessionListItemz$Schema for chat session in list viewr.   r   	chat_namer   r   r   r   r1   
updated_atr   message_countc                       e Zd ZdZy)ChatSessionListItem.ConfigTNr4   r   r   r   r6   r>   @   r7   r   r6   N)r   r   r   r   r   r   r   r   r	   r<   r6   r   r   r   r9   r9   3   sN    .G}OLMNM3 r   r9   c                       e Zd ZU dZeed<   eed<   ee   ed<   eed<   eed<   eed<   eed<   eed	<   eed
<   e	e
   ed<    G d d      Zy)ChatSessionDetailz.Schema for detailed chat session with messagesr.   r   r:   r   r   r   r   r1   r;   messagesc                       e Zd ZdZy)ChatSessionDetail.ConfigTNr4   r   r   r   r6   rC   Q   r7   r   r6   N)r   r   r   r   r   r   r   r   r	   r   r-   r6   r   r   r   r@   r@   D   sP    8G}OLMN$%% r   r@   c                   T    e Zd ZU dZeed<   ee   ed<   eed<   eed<   eed<   e	ed<   y)	ChatHistoryListResponsez%Response schema for chat history listr$   r%   totalpage	page_sizer&   N)
r   r   r   r   r'   r   r   r9   r   r   r   r   r   rE   rE   U   s*    /M
"
##J
INLr   rE   c                   6    e Zd ZU dZeed<   ee   ed<   eed<   y)ChatHistoryDetailResponsez'Response schema for chat history detailr$   r%   r&   N)	r   r   r   r   r'   r   r   r@   r   r   r   r   rJ   rJ   _   s    1M
$
%%Lr   rJ   N)pydanticr   r   typingr   r   r   r   r	   r   r   r#   r)   r-   r9   r@   rE   rJ   r   r   r   <module>rM      s    % , , ]) ]y 9 -	 -	 ) "	 "i 	 r   