o
    mi	                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ G dd deZG dd deZG dd deZdS )    )models)settings)AbstractUser)UploadPathAndRename)validate_file_size)	BaseModel)UserManager)Project)ResizeToFill)ProcessedImageFieldc                	   @   s   e Zd ZdZejddZejddZej	de
ddegdZede
d	ed
d
gdddidegdZejdejdddZejddZejedddZejddddZejejddejdZejddddZe Z dZ!g Z"dd Z#G dd dZ$dS )UserNT)null   )
max_lengthzuser/{instance.id}/profile_pic/zuser_priofile_pic.jpg)r   	upload_todefault
validatorsz%user/{instance.id}/profile_pic/thumb/d   ZJPEGZquality<   zuser_thumb.jpg)r   r   
processorsformatoptionsr   r   z	user.Role)	on_deleter   blankZproject_employees)related_namer      )r   r   r   )tor   r   r   )r   r   r   phone_noc                 C   s   | j p| jS N)r   emailself r"   6/var/www/html/kuke-dev/django-kuke/apps/user/models.py__str__'   s   zUser.__str__c                   @      e Zd ZdZdS )z	User.MetausersN__name__
__module____qualname__db_tabler"   r"   r"   r#   Meta)       r,   )%r(   r)   r*   usernamer   
EmailFieldr   	CharFieldr   
ImageFieldr   r   Zprofile_picr   r
   Zprofile_pic_thumb
ForeignKeyCASCADErole
FloatFieldZpay_per_hourManyToManyFieldr	   Zprojectspositionr   AUTH_USER_MODELSET_NULLZ
deleted_byDateTimeFieldZ
deleted_atr   objectsUSERNAME_FIELDREQUIRED_FIELDSr$   r,   r"   r"   r"   r#   r      s,    

r   c                   @   sl   e Zd ZejddddZejddddZejddZejddddZ	ej
dddZdd	 ZG d
d dZdS )Role   T)r   r   r   F)r   zuser.Permission)r   c                 C   s   | j S r   namer    r"   r"   r#   r$   7   s   zRole.__str__c                   @   r%   )z	Role.MetaZrolesNr'   r"   r"   r"   r#   r,   :   r-   r,   N)r(   r)   r*   r   r0   rA   display_nameBooleanFieldZis_system_generatedshort_descriptionr6   permissionsr$   r,   r"   r"   r"   r#   r>   -   s    r>   c                   @   s0   e Zd ZejdddZdd ZG dd dZdS )	
Permissionr?   T)r   r   c                 C   s   | j  S r   r@   r    r"   r"   r#   r$   A   s   zPermission.__str__c                   @   r%   )zPermission.MetarE   Nr'   r"   r"   r"   r#   r,   D   r-   r,   N)r(   r)   r*   r   r0   rA   r$   r,   r"   r"   r"   r#   rF   >   s    rF   N)	django.dbr   django.confr   django.contrib.auth.modelsr   Zcore.utils.file_renamer   Zcore.custom_validationr   Zcommon.base_modelsr   Zapps.user.managers.user_managerr   Zapps.project.modelsr	   Zimagekit.processorsr
   Zimagekit.modelsr   r   r>   rF   r"   r"   r"   r#   <module>   s    