o
    mi^                     @   sb   d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
 G dd dejZG dd deZd	S )
    )BaseUserManager)models)	CharFieldValueFQuerySet)Concatc                   @   s   e Zd Zdd Zdd ZdS )UserQuerySetc                 C   s&   | j ttdtdtdt ddS )N
first_name 	last_name)output_field)	full_name)annotater   r   r   r   self r   E/var/www/html/kuke-dev/django-kuke/apps/user/managers/user_manager.pyannotate_full_name	   s   &zUserQuerySet.annotate_full_namec                 C   s   |  djddS )Nroleemployee)Z
role__name)select_relatedfilterr   r   r   r   filter_employee   s   zUserQuerySet.filter_employeeN)__name__
__module____qualname__r   r   r   r   r   r   r	      s    r	   c                   @   s0   e Zd Zd
ddZdddZdd Zdd	 ZdS )UserManagerNc                 K   sB   |d u rt d| jd| ||d|}|| |  |S )Nz Users should have a Phone Number)emailphone_nor   )	TypeErrormodelnormalize_emailset_passwordsave)r   r   passwordr   extra_fieldsuserr   r   r   create_user   s   
zUserManager.create_userc                 K   s8   | dd | dd | dd | j||fi |S )Nis_staffTis_superuserZrole_id   )
setdefaultr(   )r   r   r%   r&   r   r   r   create_superuser   s   zUserManager.create_superuserc                 C   s   t | j| jdjddS )NusingT)deleted_at__isnull)r	   r!   _dbr   r   r   r   r   get_queryset#   s   zUserManager.get_querysetc                 C   s   t | j| jdS )Nr.   )r	   r!   r1   r   r   r   r   with_trashed&   s   zUserManager.with_trashed)NN)N)r   r   r   r(   r-   r2   r3   r   r   r   r   r      s
    

r   N)django.contrib.auth.modelsr   	django.dbr   django.db.modelsr   r   r   r   django.db.models.functionsr   r	   r   r   r   r   r   <module>   s    