
    x%)iQ                        d dl mZmZmZmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZmZ d dlmZ  ed	d
g          Z ed          Z e
            Z ee          fde	deeef         fdZe                    deej                   ee          fdefd            Ze                    deej                   ee          fdedefd            Z e!                    dej                   ee          fdefd            Z"e#                    deej                   ee          fdefd            Z$dS )    )	APIRouterDependsHTTPExceptionstatus)DictAny)HTTPAuthorizationCredentials
HTTPBearer)ObjectId)
verify_jwt)get_col)SubAdminSubAdminLoginRequestSubAdminLoginResponse)datetimez
/subadmins	Subadmins)prefixtagsadminscredentialsreturnc                    | st          t          j        d          t          | j                  \  }}|r|st          t          j        d          |                    d          dk    rt          t          j        d          t                              dt          |d                   i          }|st          t          j        d	          |S )
NzNot authenticatedstatus_codedetailzInvalid tokenroleadminzadmin access required_idsubzadmin not found)
r   r   HTTP_401_UNAUTHORIZEDr   r   getHTTP_403_FORBIDDEN
admins_colfind_oner   )r   okpayloadr   s        D:\Nbitz\app\routers\subadmin.py_require_adminr(      s     b(DM`aaaa[455KB ^W ^(D_]]]]{{6g%%(AJabbbb(@(@ ABBE `(DM^____L    z/create/subadmin)response_modelr   r&   c                     t          j                    }|                                 }||d<   ||d<   t                              |          }t                              d|j        i          }d|dS )N	createdAt	updatedAtr   zSubadmin createdmessagedata)r   utcnowdictr#   
insert_oner$   inserted_id)r&   r   nowbodyrescreateds         r'   create_subadminr9      sk    
/

C<<>>DDD



%
%C!!5#/":;;G)7;;;r)   z/update/subadmin/{subadmin_id}subadmin_idc                 @   t          |           }|                                }t          j                    |d<   t                              d|id|i          }|j        dk    rt          t          j	        d          t          
                    d|i          }d|dS )	Nr-   r   z$setr   Subadmin not foundr   zSubadmin updatedr.   )r   r2   r   r1   r#   
update_onematched_countr   r   HTTP_404_NOT_FOUNDr$   )r:   r&   r   oidr6   r7   updateds          r'   update_subadminrB   &   s    
;

C<<>>D ))D


vtn
=
=C
A(AJ^____!!5#,//G)7;;;r)   z/delete/subadmin/{subadmin_id})r   c                     t          |           }t                              d|i          }|j        dk    rt	          t
          j        d          ddiS )Nr   r   r<   r   r/   zSubadmin deleted)r   r#   
delete_onedeleted_countr   r   r?   )r:   r   r@   r7   s       r'   delete_subadminrF   1   sW    
;

C



-
-C
A(AJ^____)**r)   z/get/subadmin/{subadmin_id}c                     t          |           }t                              d|i          }|st          t          j        d          d|dS )Nr   r<   r   zSubadmin foundr.   )r   r#   r$   r   r   r?   )r:   r   r@   subadmins       r'   get_subadminrI   9   sT    
;

C""E3<00H `(AJ^____':::r)   N)%fastapir   r   r   r   typingr   r   fastapi.securityr	   r
   bsonr   app.utility.securityr   	app.db.dbr   app.models.subadminr   r   r   r   routerr#   auth_schemestrr(   postHTTP_201_CREATEDr9   putHTTP_200_OKrB   deleterF   r!   rI    r)   r'   <module>rZ      s   = = = = = = = = = = = =         E E E E E E E E       + + + + + +       U U U U U U U U U U      	,k]	;	;	;WX
jll?Fw{?S?S   < X\]`be]eXf     fF]^^-4W^-D-D < <X < < < _^< ,XSYSeff?Fw~?V?V < < <x < < < gf< /V=OPP,3GN,C,C + + + + + QP+ )(PVPbcc)0)@)@ ; ;c ; ; ; dc; ; ;r)   