o
    Ci                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dl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ZG dd de
ZG dd dej	ZdS )    )models)AbstractUser)timezone)	timedeltaNc                   @   s4   e Zd ZejejdZejddZG dd dZ	dS )TimeStampedModeldefaultTauto_nowc                   @      e Zd ZdZdS )zTimeStampedModel.MetaTN)__name__
__module____qualname__abstract r   r   ,/var/www/Datamplify/authentication/models.pyMeta       r   N)
r   r   r   r   DateTimeFieldr   now
created_at
updated_atr   r   r   r   r   r      s    r   c                   @   sH   e Zd ZejdddZejdddddZeje	j
dZG d	d
 d
ZdS )Reset_Passworduser_idT)	db_columnnull    Fkey)
max_lengthblankr   r   r   c                   @   r   )zReset_Password.Metareset_passwordNr   r   r   db_tabler   r   r   r   r      r   r   N)r   r   r   r   	UUIDFielduser	CharFieldr   r   r   r   r   r   r   r   r   r   r      s
    r   c                   @   sX   e Zd ZejddZejdddZejddZejddddZ	G dd	 d	Z
d
d ZdS )
PermissionTprimary_keyd   r   unique   r   )r   r   r   c                   @   r   )zPermission.Meta
permissionNr!   r   r   r   r   r   $   r   r   c                 C      | j S N)nameselfr   r   r   __str__'      zPermission.__str__N)r   r   r   r   	AutoFieldidr%   coder1   moduler   r4   r   r   r   r   r&      s    r&   c                   @   s   e Zd ZejddZejdddZejddddZ	ej
dejddd	d
ZejdddZejddZejejdZejddZG dd dZdd ZdS )RoleTr'   r)   r*   zauthentication.Permissionrolesrelated_namer   zauthentication.UserProfilecreated_roles	on_deleter   r   r=   )r   r   Fr   r	   c                   @   s   e Zd ZdZdZdZdS )z	Role.Metaroler:   RolesN)r   r   r   r"   verbose_nameverbose_name_pluralr   r   r   r   r   ;   s    r   c                 C   r/   r0   )r7   r2   r   r   r   r4   @   r5   zRole.__str__N)r   r   r   r   r6   r7   r%   r1   ManyToManyFieldpermissions
ForeignKeyCASCADE
created_by	TextFielddescriptionBooleanFieldr   r   r   r   r   r   r   r4   r   r   r   r   r:   +   s"    r:   c                   @   s   e Zd ZejdejdddZejdddZ	ej
edddZejd	ddd
ZejddZejdejddddZejdddZejddddZejejdZejddZdZdgZG dd dZdS )UserProfileTFr   )r(   r   editabler   r)   r*   usersr<   email_id)r   r+   db_index   r-   r3   created_usersr?   	is_active)r   r   )r   r   r+   r   r	   emailusernamec                   @   r   )zUserProfile.Metauser_profileNr!   r   r   r   r   r   Y   r   r   N)r   r   r   r   r#   uuiduuid4r7   r%   rV   rE   r:   r;   
EmailFieldrU   passwordrG   rH   rI   rL   rT   sub_identifierr   r   r   r   r   USERNAME_FIELDREQUIRED_FIELDSr   r   r   r   r   rM   D   s(    rM   c                   @   sp   e Zd ZejeejddZejdddddZ	ejddddZ
e Zeje ed	d
 dZG dd dZdS )Account_Activationactivationsr@   r=   2   T )r   r   r   r   r)   )r   r   r      daysr   c                   @   r   )zAccount_Activation.Metaaccount_activationNr!   r   r   r   r   r   j   r   r   N)r   r   r   r   rG   rM   rH   r$   r%   rU   r   PositiveIntegerFieldotpr   r   r   r   expiry_dater   r   r   r   r   r_   _   s    r_   c                   @   s   e Zd ZejdejddZejddZ	ej
dddZejeejddZej
dddZejd	ejd
dZejdddZejddZejddZeje edd dZG dd dZdd Zdd ZdS )
UserInviteTF)r(   r   rN   )r+   rb   r*   )r@   r   r)   rM   sent_invitesra   )r   r   r   )auto_now_addrd   re   c                   @   r   )zUserInvite.Metauser_inviteNr!   r   r   r   r   r   }   r   r   c                 C   s   d| j  S )NzInvite for )rU   r2   r   r   r   r4      s   zUserInvite.__str__c                 C   s   t  | jkS r0   )r   r   
expires_atr2   r   r   r   
is_expired   s   zUserInvite.is_expiredN) r   r   r   r   r#   rX   rY   r7   rZ   rU   r%   rV   rG   r:   SET_NULLrA   tokenrH   
invited_byrJ   messagerL   is_usedr   r   r   r   r   ro   r   r4   rp   r   r   r   r   rk   o   s    rk   )	django.dbr   django.contrib.auth.modelsr   django.utilsr   datetimer   rX   Modelr   r   r&   r:   rM   r_   rk   r   r   r   r   <module>   s    
