o
    zj                     @   sf   d dl mZ ddlT d dlmZmZ d dlT G dd dejZG dd dejZ	G d	d
 d
ejZ
dS )    )serializers   )*)isValidDatavalidateParentIdc                   @   2   e Zd Ze ZG dd dZdd Zdd ZdS )MoodTrackerSerializerc                   @      e Zd ZeZg dZdS )zMoodTrackerSerializer.Meta)	idlabelemojinotedatecreatedDateupdatedDatemedicalProfileIdisAuthorizedN)__name__
__module____qualname__MoodTrackermodelfields r   r   h/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/mama_care_api/wellbeing_tools/serializers.pyMeta       r   c                 C      t | |jjjr
dS d S NTr   r   childIdr
   selfinstancer   r   r   get_isAuthorized      z&MoodTrackerSerializer.get_isAuthorizedc                 C   V   d}d}d|v rt | |d jjj}nd}|dkr|S t|dkr)td|gid S N Fr   Parent Id does not exitTr   errorr   r    parentIdr
   lenr   ValidationErrorr"   dataerrorMessageisCheckr   r   r   validate      zMoodTrackerSerializer.validateN	r   r   r   r   SerializerMethodFieldr   r   r$   r3   r   r   r   r   r   	   s
    r   c                   @   sB   e Zd Ze Ze ZG dd dZdd Zdd Z	dd Z
d	S )
WaterTrackerGroupSerializerc                   @   r	   )z WaterTrackerGroupSerializer.Meta)r
   r   r   r   r   waterTrackerRowSummaryr   N)r   r   r   WaterTrackerGroupr   r   r   r   r   r   r   6   r   r   c                 C   r   r   r   r!   r   r   r   r$   B   r%   z,WaterTrackerGroupSerializer.get_isAuthorizedc                 C   r&   r'   r+   r/   r   r   r   r3   F   r4   z$WaterTrackerGroupSerializer.validatec                 C   sP   t jj|jd }|dkr&t jj|jdjtdd}|d ur&d|d iS d S )N)waterTrackerGroupIdr   	waterInML)totalWaterInMLr<   )WaterTrackerRowobjectsfilterr
   count	aggregateSum)r"   r#   r@   waterCountsr   r   r   get_waterTrackerRowSummaryV   s   z6WaterTrackerGroupSerializer.get_waterTrackerRowSummaryN)r   r   r   r   r6   r   r8   r   r$   r3   rD   r   r   r   r   r7   2   s    r7   c                   @   r   )WaterTrackerRowSerializerc                   @   r	   )zWaterTrackerRowSerializer.Meta)r
   r   r;   r   r   r:   r   N)r   r   r   r=   r   r   r   r   r   r   r   i   r   r   c                 C   s   t | |jjjjrdS d S r   )r   r:   r   r    r
   r!   r   r   r   r$   u   s   z*WaterTrackerRowSerializer.get_isAuthorizedc                 C   sX   d}d}d|v rt | |d jjjj}nd}|dkr|S t|dkr*td|gid S )Nr(   Fr:   r)   Tr   r*   )r   r   r    r,   r
   r-   r   r.   r/   r   r   r   r3   y   s   z"WaterTrackerRowSerializer.validateNr5   r   r   r   r   rE   f   s
    rE   N)rest_frameworkr   modelscommon.commonr   r   django.db.modelsModelSerializerr   r7   rE   r   r   r   r   <module>   s    )4