o
    Vshy
                     @   sp   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G dd	 d	ejZ	G d
d dejZ
dS )    )models)timezone)ValidationErrorc                   @   sr   e Zd ZejddddZejddddZejddddZejddddZej	dddZ
ejddddZd	d
 ZdS )Userd   T)
max_lengthblanknull   )r   r	   Eventregistered_users)related_namer   c                 C   s   | j  d| j d| j dS )N z (UID: ))
first_name	last_nameidself r   E/var/www/html/yash/facial_attendance_system-main/attendance/models.py__str__   s   zUser.__str__N)__name__
__module____qualname__r   	CharFieldr   r   mobile_numbercompany
EmailFieldemailManyToManyFieldeventsr   r   r   r   r   r      s    r   c                   @   sR   e Zd ZejedejdZejddddZ	e
 ZejdddejdZdd	 Zd
S )	UserImageimages)r   	on_delete   T)r   r	   r   r   r	   r   r$   c                 C   s   d| j j d| j j S )Nz
Image for r   )userr   r   r   r   r   r   r      s   zUserImage.__str__N)r   r   r   r   
ForeignKeyr   CASCADEr'   r   
image_path	TextFieldencodingSET_NULLeventr   r   r   r   r   r"      s    r"   c                       sl   e Zd ZejeejdZejdddgddZ	e
 Zejdddejd	Zd
d Z fddZdd Z  ZS )
Attendance)r$   
   )loginLogin)logoutLogoutr1   )r   choicesdefaultr   Tr&   c                 C   sf   | j d u r/t| j }tjj| j| j	| j
|d }|r1td| jj d| jj d| d S d S )N)r'   
event_typer.   timestamp__datezAttendance already marked for r   z on )pkr   	localtime	timestampdater/   objectsfilterr'   r7   r.   existsr   r   r   )r   todayexisting_attendancer   r   r   clean    s   
"zAttendance.cleanc                    s   |    t j|i | d S N)rB   supersave)r   argskwargs	__class__r   r   rE   -   s   zAttendance.savec                 C   s(   | j j d| j j d| j d| j dS )Nr   z at z (r   )r'   r   r   r;   r7   r   r   r   r   r   1   s   (zAttendance.__str__)r   r   r   r   r(   r   r)   r'   r   r7   DateTimeFieldr;   r-   r.   rB   rE   r   __classcell__r   r   rH   r   r/      s    r/   c                   @   s0   e Zd ZejddZe Zdd Zdd Z	dS )r   r%   )r   c                 C   s   | j t kS rC   )
event_dater   nowr   r   r   r   is_upcoming8   s   zEvent.is_upcomingc                 C   s   | j S rC   )namer   r   r   r   r   ;   s   zEvent.__str__N)
r   r   r   r   r   rO   rJ   rL   rN   r   r   r   r   r   r   4   s
    r   N)	django.dbr   django.utilsr   django.core.exceptionsr   Modelr   r"   r/   r   r   r   r   r   <module>   s    	