o
    g                     @   s,  d dl mZmZmZmZ d dlmZmZmZ d dl	m
Z
 G dd deZG dd deZG dd	 d	eZG d
d deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d! d!eZd"S )#    )	BaseModelEmailStrField	validator)AnyOptionalList)HTTPExceptionc                   @   s   e Zd ZU eed< eed< dS )Tokenaccess_token
token_typeN)__name__
__module____qualname__str__annotations__ r   r   0/var/www/html/answerous_api/db_config/schemas.pyr
      s   
 r
   c                   @   s   e Zd ZU eed< dS )	TokenDataemailN)r   r   r   r   r   r   r   r   r   r   	   s   
 r   c                   @   s   e Zd ZU eed< 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< e
dd	d	d
dd Ze
ddd ZdS )
UserCreatenamer   Norg_idorg_nameplanwelcome_email*T)prealwaysc                 C   s   t |tr	| S |S N)
isinstancer   stripclsvaluer   r   r   strip_whitespace   s   
zUserCreate.strip_whitespacec                    &   t  fdddD rtddd S )Nc                 3       | ]}| v V  qd S r   r   .0charr$   r   r   	<genexpr>       z/UserCreate.validate_org_name.<locals>.<genexpr>\[]}{\$&%#@)()+!^.  z<Organization name must contain alphanumeric characters only.status_codedetailanyr	   r"   r   r+   r   validate_org_name      zUserCreate.validate_org_name)r   r   r   r   r   r   r   r   r   r   r   r%   r5   r   r   r   r   r      s   
 
r   c                   @   s|   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< dZee ed< G dd	 d	ZdS )
UserResponseNtokenr   r   allocated_storagefolder_limitr   c                   @      e Zd ZdZdS )zUserResponse.ConfigTNr   r   r   from_attributesr   r   r   r   Config0       r>   )r   r   r   r8   r   r   r   r   r   r9   intr:   r   r>   r   r   r   r   r7   &   s   
 r7   c                   @   sD   e Zd ZU eed< eed< eed< eed< eed< G dd dZdS )	OrgUserResponseuser_idr   r   r   r   c                   @   r;   )zOrgUserResponse.ConfigTNr<   r   r   r   r   r>   :   r?   r>   Nr   r   r   r@   r   r   r>   r   r   r   r   rA   3   s   
 rA   c                   @   s&   e Zd ZU dZee ed< eed< dS )DocumentNdoc_iddoc_name)r   r   r   rE   r   r@   r   r   r   r   r   r   rD   =   s   
 rD   c                   @   s\   e Zd ZU eed< eed< dZee ed< dZee ed< dZ	ee
 ed< G dd dZdS )	DocumentResponserE   rF   Ndoc_url
doc_statusdoc_metadatac                   @   r;   )zDocumentResponse.ConfigTNr<   r   r   r   r   r>   I   r?   r>   )r   r   r   r@   r   r   rH   r   rI   rJ   dictr>   r   r   r   r   rG   A   s   
 rG   c                   @   8   e Zd ZU eed< eed< ee ed< G dd dZdS )DocumentListResponsestatusmessagedatac                   @   r;   )zDocumentListResponse.ConfigTNr<   r   r   r   r   r>   Q   r?   r>   N)r   r   r   r   r   r   rG   r>   r   r   r   r   rM   L   
   
 rM   c                   @   sD   e Zd ZU eed< eed< eed< g Zee ed< G dd dZ	dS )FolderResponse	folder_idr   shared	documentsc                   @   r;   )zFolderResponse.ConfigTNr<   r   r   r   r   r>   Z   r?   r>   N)
r   r   r   r@   r   r   rU   r   rG   r>   r   r   r   r   rR   T   s   
 rR   c                   @   rL   )FolderListResponserN   rO   rP   c                   @   r;   )zFolderListResponse.ConfigTNr<   r   r   r   r   r>   c   r?   r>   N)r   r   r   r   r   r   rR   r>   r   r   r   r   rV   ^   rQ   rV   c                   @   s:   e Zd ZU eed< dZeed< eed< eddd ZdS )FolderCreatefolder_nameN	parent_idrT   c                    r&   )Nc                 3   r'   r   r   r(   r+   r   r   r,   m   r-   z4FolderCreate.validate_folder_name.<locals>.<genexpr>r.   r/   z%Folder name contains characters only.r0   r3   r"   r   r+   r   validate_folder_namek   r6   z!FolderCreate.validate_folder_name)	r   r   r   r   r   rY   r@   r   rZ   r   r   r   r   rW   f   s   
 rW   c                   @   sd   e Zd ZU eed< eed< eed< eed< eed< eed< eed< eed< eed	< G d
d dZdS )ChatHistoryResponsechat_history_idrB   rE   document_uuidquerysearch_resultscitationquery_promptquery_responsec                   @   r;   )zChatHistoryResponse.ConfigTNr<   r   r   r   r   r>      r?   r>   NrC   r   r   r   r   r[   u   s   
 r[   c                   @   s>   e Zd ZU eed< eed< dZee ed< dZee ed< dS )SharedFolderr   rS   Norganizationaccess)	r   r   r   r   r   r@   rd   r   re   r   r   r   r   rc      s
   
 rc   c                   @   s<   e Zd ZU eed< eed< dZee ed< G dd dZdS )SharedFolderResponser   rS   Nrd   c                   @   r;   )zSharedFolderResponse.ConfigTNr<   r   r   r   r   r>      r?   r>   )	r   r   r   r   r   r@   rd   r   r>   r   r   r   r   rf      s
   
 rf   c                   @   rL   )CustomResponserN   rO   rP   c                   @   r;   )zCustomResponse.ConfigTNr<   r   r   r   r   r>      r?   r>   N)r   r   r   r   r   r   r   r>   r   r   r   r   rg      rQ   rg   N)pydanticr   r   r   r   typingr   r   r   fastapir	   r
   r   r   r7   rA   rD   rG   rM   rR   rV   rW   r[   rc   rf   rg   r   r   r   r   <module>   s$    

