
    Bi                         d dl mZ d dlmZmZ d dlmZ  G d dej                  Z G d dej                  Z G d d	ej                  Z	d
S )    )
SQLAlchemy)datetimetimezone)dbc                   6   e Zd Z ej        ej        d          Z ej         ej        d          d          Z ej        ej	        d          Z
 ej        ej        d           Z ej        dddd	
          Z ej        dddd	
          Zd Zd ZdS )ChatRoomTprimary_keyd   nullabledefaultc                  >    t          j        t          j                  S Nr   nowr   utc     H/var/www/html/web/mlink/mlink_AI_Server/mlink-backend/src/models/chat.py<lambda>zChatRoom.<lambda>	       X\8R8R r   ChatMessageroomzall, delete-orphan)backreflazycascadeChatParticipantc                     d| j          dS )Nz
<ChatRoom >idselfs    r   __repr__zChatRoom.__repr__   s    &DG&&&&r   c                     | j         | j        | j        | j        r| j                                        nd t          | j                  | j        r| j        d                                         nd dS )N)r#   name
is_private
created_atparticipant_countlast_message)	r#   r)   r*   r+   	isoformatlenparticipantsmessagesto_dictr$   s    r   r2   zChatRoom.to_dict   sm    'I/9=R$/33555d!$T%6!7!7;?=RDM"-55777d
 
 	
r   N)__name__
__module____qualname__r   ColumnIntegerr#   Stringr)   Booleanr*   DateTimer+   relationshipr1   r0   r&   r2   r   r   r   r   r      s        	2:4	0	0	0B29YRYs^^d333D2:t444J2;0R0RSSSJ r}f4QefffH"2?#4f4YmnnnL' ' '
 
 
 
 
r   r   c                   |   e Zd Z ej        ej        d          Z ej        ej         ej        d          d          Z ej         ej	        d          d          Z
 ej        ej        d           Z ej        ej        d	           Z ej        d
 ej        dd          dd          Zd Zd ZdS )r   Tr	   chat_room.idFr      c                  >    t          j        t          j                  S r   r   r   r   r   r   zChatParticipant.<lambda>    s    x|HL7Q7Q r   r   c                  >    t          j        t          j                  S r   r   r   r   r   r   zChatParticipant.<lambda>!   s    (,x|:T:T r   Userchat_participationsr   z%ChatParticipant.user_id==User.user_idzChatParticipant.user_idr   primaryjoinforeign_keysc                 (    d| j          d| j         dS )Nz<ChatParticipant z in r!   )user_idroom_idr$   s    r   r&   zChatParticipant.__repr__*   s    D4<DDT\DDDDr   c                     | j         | j        | j        | j        r| j        j        nd | j        r| j                                        nd | j        r| j                                        nd dS )N)r#   rI   rH   username	joined_atlast_read_at)r#   rI   rH   userrK   rL   r.   rM   r$   s    r   r2   zChatParticipant.to_dict-   sq    '||.2iA	**T7;~O113334=A=NXD-77999TX
 
 	
r   N)r3   r4   r5   r   r6   r7   r#   
ForeignKeyrI   r8   rH   r:   rL   rM   r;   r   rN   r&   r2   r   r   r   r   r      s       	2:4	0	0	0Bbi
MBM.$A$AERRRGbi		"666G	"+/Q/QRRRI29R[2T2TUUUL 2?

#8tDDD;.  DE E E
 
 
 
 
r   r   c                      e Zd Z ej        ej        d          Z ej        ej         ej        d          d          Z ej         ej	        d          d          Z
 ej        ej        d          Z ej         ej	        d          d          Z ej         ej	        d	          d          Z ej        ej        d
           Z ej        d ej        dd          dd          Zd Zd ZdS )r   Tr	   r=   Fr   r>   textr   i  c                  >    t          j        t          j                  S r   r   r   r   r   r   zChatMessage.<lambda>>   r   r   rA   sent_messagesrC   z#ChatMessage.sender_id==User.user_idzChatMessage.sender_idrD   c                     d| j          dS )Nz<ChatMessage r!   r"   r$   s    r   r&   zChatMessage.__repr__G   s    )tw))))r   c           	          | j         | j        | j        | j        r| j        j        nd | j        | j        | j        | j        r| j        	                                nd dS )N)r#   rI   	sender_idsender_usernamecontentmessage_typefile_urlr+   )
r#   rI   rV   senderrK   rX   rY   rZ   r+   r.   r$   s    r   r2   zChatMessage.to_dictJ   sa    '|7;{Lt{33| -9=R$/33555d	
 	
 		
r   N)r3   r4   r5   r   r6   r7   r#   rO   rI   r8   rV   TextrX   rY   rZ   r:   r+   r;   r   r[   r&   r2   r   r   r   r   r   7   s:       	2:4	0	0	0Bbi
MBM.$A$AERRRG	)")B--%888Ibi%000G29YRYr]]F;;;Lry3$777H2;0R0RSSSJ R_

?>>>9,  F* * *

 

 

 

 

r   r   N)
flask_sqlalchemyr   r   r   src.models.userr   Modelr   r   r   r   r   r   <module>r`      s    ' ' ' ' ' ' ' ' ' ' ' ' ' '      
 
 
 
 
rx 
 
 
.
 
 
 
 
bh 
 
 
6
 
 
 
 
"( 
 
 
 
 
r   