o
    miZ                     @   sL   d dl mZ d dlmZ d dlmZ G dd dejZG dd dejZdS )	    )serializers)	TimeSheet)datec                       s*   e Zd ZG dd dZ fddZ  ZS )ClockInSerializerc                   @      e Zd ZeZdZdZdS )zClockInSerializer.Meta)iduserclock_in_date_timeN__name__
__module____qualname__r   modelfieldsread_only_fields r   r   X/var/www/html/kuke-dev/django-kuke/apps/employee/serializers/clock_in_out_serializers.pyMeta       r   c                    sH   | j jjj| jd t ddd }|rt	
ddit |S )Nr   Tr   clock_in_date_time__dateZclock_out_date_time__isnull-clock_in_date_timeZalready_clocked_inzAlready clocked in for today.)r   r   objectsfiltercontextr   todayorder_byfirstr   ValidationErrorsupervalidate)selfattrsZ
last_entry	__class__r   r   r       s   

zClockInSerializer.validate)r   r   r   r   r    __classcell__r   r   r#   r   r      s    r   c                   @   s"   e Zd ZG dd dZdd ZdS )ClockOutSerializerc                   @   r   )zClockOutSerializer.Meta)r   r   clock_out_date_timeNr
   r   r   r   r   r      r   r   c                 C   sl   | j jjj| jd t ddd }|st	
ddi|jr(t	
ddi|j|d	< | jd |d< |S )
Nr   Tr   r   Znot_clocked_inz!You are not clocked in for today.Zalready_clocked_outz&You are already clocked out for today.r   )r   r   r   r   r   r   r   r   r   r   r   r'   r   )r!   r"   
time_sheetr   r   r   r        s   

zClockOutSerializer.validateN)r   r   r   r   r    r   r   r   r   r&      s    r&   N)	rest_frameworkr   apps.employee.modelsr   datetimer   ModelSerializerr   r&   r   r   r   r   <module>   s
    