o
    ǯh                     @   s   d dl mZmZmZ d dlmZ d dlmZm	Z	 G dd de
ZG dd deZG dd	 d	e
ZG d
d deZG dd dZG dd deejZG dd deZdS )    )AnyOptionalUnion)gettext_lazy)
exceptionsstatusc                   @      e Zd ZdS )
TokenErrorN__name__
__module____qualname__ r   r   `/var/www/Befach/backend/venv/lib/python3.10/site-packages/rest_framework_simplejwt/exceptions.pyr	          r	   c                   @   r   )ExpiredTokenErrorNr
   r   r   r   r   r      r   r   c                   @   r   )TokenBackendErrorNr
   r   r   r   r   r      r   r   c                   @   r   )TokenBackendExpiredTokenNr
   r   r   r   r   r      r   r   c                       sX   e Zd ZU eed< eed< 		d	deeeef edf dee ddf fddZ	  Z
S )
DetailDictMixindefault_detaildefault_codeNdetailcodereturnc                    sT   | j | jd}t|tr|| n|dur||d< |dur"||d< t | dS )zi
        Builds a detail dictionary for the error to give more information to API
        users.
        )r   r   Nr   r   )r   r   
isinstancedictupdatesuper__init__)selfr   r   detail_dict	__class__r   r   r      s   	
zDetailDictMixin.__init__)NN)r   r   r   str__annotations__r   r   r   r   r   __classcell__r   r   r!   r   r      s   
 r   c                   @   r   )AuthenticationFailedNr
   r   r   r   r   r&   1   r   r&   c                   @   s   e Zd ZejZedZdZdS )InvalidTokenzToken is invalid or expiredtoken_not_validN)	r   r   r   r   HTTP_401_UNAUTHORIZEDstatus_code_r   r   r   r   r   r   r'   5   s    r'   N)typingr   r   r   django.utils.translationr   r+   rest_frameworkr   r   	Exceptionr	   r   r   r   r   r&   r'   r   r   r   r   <module>   s    