o
    g                     @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 e Zdedfded	fgZded
fdedfgZdedfdedfgZdd 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G dd dejZdS )    N)models)get_user_model)gettext_lazy)	WEBPFieldT	submittedFignoredactivedeactiveyesnoc                 C   s   d| j j dt j dS )Nzmaster//z.webp)userusernameuuiduuid4hex)instancefilename r   ,/var/www/Entralon-Web-Backend/user/models.pyimage_master_folder   s   r   c                   @   s   e Zd ZejedddZejedddZej	edde
dZejded	d
ejdddZejedddZejedddZdd ZG dd dZdS )
Departmentname   )
max_lengthslug	is activeTdefaultchoicesselfzparent departmentsub_department)verbose_namerelated_name	on_deletenullblank
created atauto_now_add
updated atauto_nowc                 C      | j S N)r   r    r   r   r   __str__*      zDepartment.__str__c                   @   "   e Zd ZedZedZdgZdS )zDepartment.Metar   -idN__name__
__module____qualname___r"   verbose_name_pluralorderingr   r   r   r   Meta-       
r;   N)r5   r6   r7   r   	CharFieldr8   r   	SlugFieldr   BooleanFieldACTIVE_BOOLEAN	is_active
ForeignKeyRESTRICTparentDateTimeField
created_at
updated_atr0   r;   r   r   r   r   r   !   s    r   c                   @   sp   e Zd ZejedddddZejeddedZ	ej
ed	dd
Zej
edddZdd ZG dd dZdS )AllowIpUser Ip0.0.0.0bothFr   protocolunpack_ipv4r   Tr   r'   r(   r*   r+   c                 C   r-   r.   )ipr/   r   r   r   r0   ;   r1   zAllowIp.__str__c                   @   r2   )zAllowIp.MetazAllow Ipr3   Nr4   r   r   r   r   r;   ?   r<   r;   N)r5   r6   r7   r   GenericIPAddressFieldr8   rO   r?   r@   rA   rE   rF   rG   r0   r;   r   r   r   r   rH   4   s    rH   c                       sX  e Zd ZejeejedddZej	eddddZ
ejedd	ed
Zej	eddd	d	dZej	eddd	d	dZejedd	d	dZejedddZeededd	dZejeeddd	dZejededd	dZejedddZejedddZejed d	d!Zejed"d	d#Z  fd$d%Z!d&d' Z"e#d(d) Z$G d*d+ d+Z%  Z&S ),Masterr   masterr$   r"   r#   nickName2   Admin)r   r   r   Tr   mobile   r   r%   r&   zotp code
   zsend code timer%   r&   zsuper masterFr   imagezblank/blank-profile.png)	upload_tor   r&   r   )r"   r#   r&   	master_ipz
Allowed IP)r#   r"   r&   zincorrect password numr   zlast incorrect password timer'   r(   r*   r+   c                    s
   t   S r.   )supersave)r    kwargs	__class__r   r   ra   \   s   
zMaster.savec                 C   s   | j d ur
| j  S dS )Nmanager)r   get_full_namer/   r   r   r   r0   `   s   

zMaster.__str__c                 C   s   | j d u r
| j S | j S r.   )nicknamer   rf   r/   r   r   r   support_namef   s   

zMaster.support_namec                   @   r2   )zMaster.MetarQ   r3   Nr4   r   r   r   r   r;   m   r<   r;   )'r5   r6   r7   r   OneToOneFieldUserrC   r8   r   r=   rg   r?   r@   rA   rW   otp_code
FloatFieldotp_timesuper_masterr   r   r]   ManyToManyFieldr   
departmentrH   rO   SmallIntegerFieldincorrect_numincorrect_timerE   rF   rG   ra   r0   propertyrh   r;   __classcell__r   r   rc   r   rQ   F   s(    
rQ   c                   @   s   e Zd ZejeejdeddZej	edddddZ
ejed	d
dZejeddd
d
dZejedd
dZejedd
dZdd ZG dd dZdS )LoginLog	login_logr   )r$   r#   r"   rI   rJ   rK   FrL   z
is SuccessTr\   zfailure Reason   rY   r'   r(   r*   r+   c                 C   s
   | j j S r.   )r   r   r/   r   r   r   r0   |   s   
zLoginLog.__str__c                   @   r2   )zLoginLog.Metaz	Login Logr3   Nr4   r   r   r   r   r;      r<   r;   N)r5   r6   r7   r   rB   rj   rC   r8   r   rP   rO   r?   
is_successr=   failurerE   rF   rG   r0   r;   r   r   r   r   rv   s   s    rv   c                   @   s   e Zd ZejeejedddZejeejedddddZ	e
edZejed	d
dddZejedddddZejedddddZej
eddddZejedddZejedddZG dd dZdd ZdS )UserLogr   user_logrS   zfor Useruser_log_changedT)r$   r"   r#   r%   r&   descriptionrI   rJ   rK   FrL   modeli  rY   z	record IDchangesr[   r'   r(   r*   r+   c                   @   r2   )zUserLog.MetazUser Logr3   Nr4   r   r   r   r   r;      r<   r;   c                 C   s   | j   d| j S )Nz -> )r   rf   r   r/   r   r   r   r0      s   zUserLog.__str__N)r5   r6   r7   r   rB   rj   rC   r8   r   for_user	TextFielddescrP   rO   r=   r   	record_idchangerE   rF   rG   r;   r0   r   r   r   r   r{      s    r{   )datetimer   	django.dbr   django.contrib.authr   django.utils.translationr   r8   main.fieldsr   rj   CHECK_BOOLEANr@   QUESTION_BOOLEANr   Modelr   rH   rQ   rv   r{   r   r   r   r   <module>   s,    





-