
    h                        d dl mZ d dlmZmZ d dlmZ d dlmZmZm	Z	 d dl
mZmZmZmZmZmZmZ d dlmZ  G d de      Z G d	 d
e      Zy)    )annotations)datetimetimezone)Optional)Mappedmapped_columnrelationship)
BigIntegerTextStringDateTimeBooleanInteger
ForeignKey)Basec                     e Zd ZU dZdZ eed      Zded<    eed      Z	ded	<    eed      Z
d
ed<    eed      Zded<    e ed      d      Zded<    eed      Zded<    e ed      d      Zded<    eedd      Zded<    eedd      Zded<    eed       Zded<    eed       Zded <    ed!d"d#$      Zd%ed&<   y')(
ChatThreadz/Chat thread model for organizing conversations.chat_threadsTprimary_keyMapped[int]idFnullablestore_idMapped[Optional[int]]	branch_iduser_id   Mapped[Optional[str]]titledescription2   generaldefaultMapped[str]thread_typetruer&   server_defaultMapped[bool]	is_activefalseis_archivedc                 H    t        j                  t        j                        S Nr   nowr   utc     =/var/www/html/hubwallet-dev/src/marketing/apps/hwGpt/model.py<lambda>zChatThread.<lambda>       8<<X`XdXdKe r6   Mapped[datetime]
created_atc                 H    t        j                  t        j                        S r1   r2   r5   r6   r7   r8   zChatThread.<lambda>   r9   r6   
updated_atChatMessagethreadzall, delete-orphan)back_populatescascadezMapped[list['ChatMessage']]messagesN)__name__
__module____qualname____doc____tablename__r   r
   r   __annotations__r   r   r   r   r!   r   r"   r(   r   r-   r/   r   r;   r=   r	   rB   r5   r6   r7   r   r   	   s    9"M#JDABA)*uEHkE'4Z$'OI$O(eDG[D $1t#LE L)6td)KK&K,VBZKKK ,GTRXYI|Y -guU\ ]K] $1Ce#fJ f#0Ce#fJ f -9W_i},~H)~r6   r   c                     e Zd ZU dZdZ eed      Zded<    ee e	d      d	      Z
ded
<    eed	      Zded<    e ed      d	      Zded<    eed	      Zded<    e ed      d      Zded<    e ed      d	      Zded<    eed	      Zded<    e ed      d	      Zded<    eed       Zded<    eed       Zded<    eedd !      Zd"ed#<    ed$d%&      Zd'ed(<   y))*r>   z)Individual chat messages within a thread.chat_messagesTr   r   r   zchat_threads.idFr   	thread_idr      r'   rolecontentr#   textr%   message_typei  r    	image_urlr   tokens_usedd   
model_usedc                 H    t        j                  t        j                        S r1   r2   r5   r6   r7   r8   zChatMessage.<lambda>6   r9   r6   r:   r;   c                 H    t        j                  t        j                        S r1   r2   r5   r6   r7   r8   zChatMessage.<lambda>7   r9   r6   r=   r.   r*   r,   
is_deletedr   rB   )r@   zMapped['ChatThread']r?   N)rC   rD   rE   rF   rG   r   r
   r   rH   r   rK   r   r   rM   r   rN   rP   rQ   r   rR   rT   r   r;   r=   r   rW   r	   r?   r5   r6   r7   r>   r>   #   s   3#M#JDABA*:zBS7T_deI{e(eDG[D &fRj5AD+A(>G[> !.fRj& IL+I'4VC[4'PI$P)6w)NK&N(5fSkD(QJ%Q $1Ce#fJ f#0Ce#fJ f,WeT[\J\ $0Z#XF Xr6   r>   N)
__future__r   r   r   typingr   sqlalchemy.ormr   r   r	   
sqlalchemyr
   r   r   r   r   r   r   src.utils.dbr   r   r>   r5   r6   r7   <module>r]      s<    " '  > > W W W  4Y$ Yr6   