o
    ai                     @   sZ   d dl mZ ddlT d dlmZ G dd dejZG dd dejZG d	d
 d
ejZdS )    )serializers   )*)validateParentIdc                   @   2   e Zd Ze ZG dd dZdd Zdd ZdS )AIAssistSettingsSerializerc                   @      e Zd ZeZg dZdS )zAIAssistSettingsSerializer.Meta)isAgree	isEnabledcreatedDateupdatedDateparentIdisAuthorizedN)__name__
__module____qualname__AIAssistSettingsmodelfields r   r   b/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/mama_care_api/ai_assist/serializers.pyMeta       r   c                 C   s   t | |jjS )N)r   r   id)selfinstancer   r   r   get_isAuthorized   s   z+AIAssistSettingsSerializer.get_isAuthorizedc                 C   sv   d}d}d|v r#t |d dkr d|v rt| |d j}nd}nd}nd}|dkr+|S t|d	kr9td
|gid S )N Fr	   Tr   Parent Id does not exitzUser must agreezIs Agree field is requiredr   error)boolr   r   lenr   ValidationError)r   dataerrorMessageisCheckr   r   r   validate   s   z#AIAssistSettingsSerializer.validateN	r   r   r   r   SerializerMethodFieldr   r   r   r&   r   r   r   r   r      s
    r   c                   @   r   )ChatSerializerc                   @   r   )zChatSerializer.Meta)r   r   r   r   r   N)r   r   r   Chatr   r   r   r   r   r   r   .   r   r   c                 C   sv   d}t | |jjdkr)tjj|jjd}| dkr&|d jdkr#dS d}nd}nd}t|dkr9t	
d|gid S )	Nr   Tr   r   Please Enable AI Assist in chat(Please Enable AI Assist Settings in chatzParent Id is required in Chatr   )r   r   r   r   objectsfilter__len__r
   r!   r   r"   )r   r   r$   dataListr   r   r   r   8   s   zChatSerializer.get_isAuthorizedc                 C   s   d}d}d|v r6t | |d j}|dkr3tjj|d jd}| dkr0|d jdkr-|S d}nd}nd	}nd
}|dkr>|S t|dkrLt	d|gid S )Nr   Fr   Tr+   r   r,   r-   Parent Id is invalidr   r   )
r   r   r   r.   r/   r0   r
   r!   r   r"   )r   r#   r$   r%   r1   r   r   r   r&   J   s$   zChatSerializer.validateNr'   r   r   r   r   r)   ,   s
    
r)   c                   @   r   )MessageSerializerc                   @   r   )zMessageSerializer.Meta)r   messageroleisUserr   r   chatIdr   N)r   r   r   Messager   r   r   r   r   r   r   f   r   r   c                 C   s   | j drN| j d jdd }|d urK|jjt|krHt| |jjjdkrEt	j
j|jjjd}| dkrB|d jdkr?dS d}nd}nd}nd	}nd
}nd}t|dkr^td|gid S )Nrequestr7   Tr+   r   r,   r-   r2   zchatId is invalidchatId is RequiredzRequest is requiredr   )context__contains__query_paramsgetr7   r   intr   r   r   r.   r/   r0   r
   r!   r   r"   )r   r   r7   r1   r$   r   r   r   r   s   s$   z"MessageSerializer.get_isAuthorizedc                 C   s   d}| j d jdd }d|v rK|d jt|krHt| |d jjdkrEtjj	|d jjd}|
 dkrB|d jdkr?d}nd}nd}nd	}nd
}nd}t|dkr[td|gi|S )Nr   r9   r7   Tr+   r   r,   r-   r2   zChatId is invalidr:   r   )r;   r=   r>   r   r?   r   r   r   r.   r/   r0   r
   r!   r   r"   )r   r#   r$   r7   r1   r   r   r   r&      s"   zMessageSerializer.validateNr'   r   r   r   r   r3   d   s
    r3   N)	rest_frameworkr   modelscommon.commonr   ModelSerializerr   r)   r3   r   r   r   r   <module>   s    &8