
    ti	                     ~   d dl mZmZmZ d dl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 d dlmZ  ed	d
g      Zej-                  dee         dd ee	       ee      fdedededefd       Zej3                  de       ee	       ee      fdedededefd       Zej-                  de       ee	       ee      fdededefd       Zej;                  de       ee	       ee      fdededededef
d       Zej?                  de       ee	       ee      fdedededefd       Z y)    )	APIRouterDependsRequest)Session)get_dbrequire_admin)UserAccount)UserResponse)PaginatedResponse)
UserCreate
UserUpdate)UserServicez/api/v1/usersusers)prefixtags/)response_model      pageper_pageadmindbc                     t        |      }|j                  | |      \  }}t        |D cg c]  }t        j                  |       c}|| |      S c c}w )N)itemstotalr   r   )r   
list_usersr   r
   model_validate)r   r   r   r   servicer   r   us           F/Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/users.pyr   r      sY     "oG%%dH5LE57<=u!|**1-u=	 =s   Abodyrequestc                     t        |      }|j                  r|j                  j                  nd }|j                  | j                  | j
                  | j                  | j                  |j                  |      }|S )N)usernamedisplay_namepasswordroleactor_idip)	r   clienthostcreate_userr%   r&   r'   r(   id)r"   r#   r   r   r   r*   users          r!   r-   r-      sh     "oG '		DB&&YY  D K    z
/{user_id}user_idc                 :    t        |      }|j                  |       S N)r   get_user)r1   r   r   r   s       r!   r4   r4   3   s     "oGG$$r0   c                     t        |      }|j                  r|j                  j                  nd }|j                  d      }|j	                  | ||j
                  |      S )NT)exclude_none)r   r+   r,   
model_dumpupdate_userr.   )r1   r"   r#   r   r   r   r*   updatess           r!   r8   r8   =   sO     "oG '		DBoo4o0Gw2>>r0   c                     t        |      }|j                  r|j                  j                  nd }|j                  | |j                  |      S r3   )r   r+   r,   deactivate_userr.   )r1   r#   r   r   r   r*   s         r!   r;   r;   K   s=     "oG '		DB""7EHHb99r0   N)!fastapir   r   r   sqlalchemy.ormr   
OrmSessionapp.api.depsr   r   app.models.catalogr	   app.schemas.authr
   app.schemas.commonr   app.schemas.userr   r   app.services.user_servicer   routergetintr   postr-   strr4   patchr8   deleter;    r0   r!   <module>rM      s   / / 0 . * ) 0 3 1	/		: C 1, ?@ /V_	
  		 A  S. !/V_	
  		 /& L6 !/V_%%% 	% 7% l<8
 !/V_
?
?

? 
? 	
?
 	
? 9
? |L9 !/V_	::: : 		: ::r0   