
    YFi%                        d dl mZmZ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 d dlmc mc mZ  e       Zej-                  dd	e
       ee
       edd       edd       eddd       edddd      fdedededededefd       Zej5                  de       ee
      fdedefd       Zej-                  de       ee
      fd edefd!       Zej-                  d"e       ee
      fd#edefd$       Zej=                  de       ee
      fd ed%edefd&       ZejA                  de       ee
      fd edefd'       Z!y)(    )	APIRouterHTTPExceptionDependsQuery)Session)Dict)get_db)UserCreateSchemaUserUpdateSchema)ResponseModelN/z
List Users)nameresponse_modelz-idzRSort column name with direction. Prepend '-' to sort descending. E.g: ?sort_by=-id)defaultdescriptionzAAdditional related fields that are requested. Could be any of ...   z8Number of page that needs to be fetched from the records)r   ger   
   i  )r   r   ler   dbsort_byfieldspageper_pagereturnc                    K   t        j                  | |r|j                  d      ng ||dz
  |z  |d       d{   }t        |d      S 7 w)z
    List Users API

    This API is used to list all users.

    Supports pagination style.

    Returns:
        Dict: A dictionary containing the user list and pagination information.
    ,r   T)r   r   r   skiplimitpaginateNzUsers listed successfully)datamessage)user_controller
list_userssplitr   )r   r   r   r   r   responses         H/var/www/html/BankruptcyAI-uat/bankruptcy-ai/src/modules/users/routes.pyr$   r$      s[     L %//'.s#Bax8# H h0KLLs   8AAA)r   payloadc                 n   K   t        j                  ||        d {   }|r|S t        dd      7 w)N)r   r(   i  zFailed to create userstatus_codedetail)r#   create_userr   )r(   r   users      r'   r-   r-   @   s7      ,,GDDD
C0G
HH Es   535z
/{user_id}user_idc                 X    t        j                  ||       \  }}|r|S t        d|      N)r   r/     r*   )r#   get_user_by_idr   r/   r   r.   r"   s       r'   	read_userr5   H   s-    #22b'JMD'
C
88    z/email/{email}emailc                 X    t        j                  ||       \  }}|r|S t        d|      )N)r   r7   r2   r*   )r#   get_user_by_emailr   )r7   r   r.   r"   s       r'   read_user_by_emailr:   P   s-    #555IMD'
C
88r6   	user_datac                 Z    t        j                  || |      \  }}|r|S t        d|      )N)r   r/   r(   r2   r*   )r#   update_userr   )r/   r;   r   r.   r"   s        r'   r=   r=   X   s6     $//w	MD' 
C
88r6   c                 X    t        j                  ||       \  }}|r|S t        d|      r1   )r#   delete_userr   r4   s       r'   r?   r?   d   s-    #//2wGMD'
C
88r6   )"fastapir   r   r   r   sqlalchemy.ormr   typingr   src.database.sessionr	   "src.modules.users.schemas.requestsr
   r   "src.modules._lib.schemas.responsesr   src.modules.users.controllermodulesusers
controllerr#   routergetstrintr$   postr-   r5   r:   putr=   deleter?    r6   r'   <module>rR      s   < < "  ' Q < 6 6	 Cl48&/h W N
 N	!/M/M /M /M /M  !/M, -/M 9/Md S/?Fv I/ IW I 0I L7*1&/ 9s 9 9 89 ];18 9c 9w 9 <9 L7=DV_99-93:9 89 |M:,3FO 9 9' 9 ;9r6   