o
    Zh^                     @   sh   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dS )    )ClassVar)AbstractUser)	CharField)
EmailField)reverse)gettext_lazy   )UserManagerc                   @   s   e Zd ZU dZeeddddZeddddZed	dddZe	ed
ddZ
dZdZg Ze Zee ed< G dd dZdefddZdS )Userz
    Default custom user model for mimansha.
    If adding fields that need to be filled at user signup,
    check forms.SignupForm and forms.SocialSignupForms accordingly.
    zName of UserT   )blank
max_length    )r   r   default   zemail address)uniqueNemailobjectsc                   @   s   e Zd ZddgZdS )z	User.Meta)can_view_admin_dashboardzCan view admin dashboard)publish_blogzCan publish blog postsN)__name__
__module____qualname__permissions r   r   //var/www/html/mimamsha/mimansha/users/models.pyMeta    s    r   returnc                 C   s   t dd| jidS )zaGet URL for user's detail view.

        Returns:
            str: URL for user detail.

        zusers:detailpk)kwargs)r   id)selfr   r   r   get_absolute_url&   s   zUser.get_absolute_url)r   r   r   __doc__r   _name
first_name	last_namer   r   usernameUSERNAME_FIELDREQUIRED_FIELDSr	   r   r   __annotations__r   strr#   r   r   r   r   r
      s   
 r
   N)typingr   django.contrib.auth.modelsr   django.db.modelsr   r   django.urlsr   django.utils.translationr   r%   managersr	   r
   r   r   r   r   <module>   s   