
    Bգi                     `   d Z ddlmZmZmZmZ ddlmZmZ ddl	m
Z
 ddlmZmZ ddlmZ  eddg	          Z G d
 de          Z G d de          Ze                    de          d             Ze                    deej                   ee
          fdedefd            Ze                    de           ee
          fdedefd            Ze                    de           ee
          fdedefd            Ze                    de          defd            ZdS )u   
房间管理 REST API
    )	APIRouterDependsHTTPExceptionstatus)	BaseModelField)get_current_user)ApiResponseUserProfile)room_managerz
/api/roomsu   房间)prefixtagsc                   8    e Zd ZU  edddd          Zeed<   dS )CreateRoomRequest.       u   房间名称)
min_length
max_lengthdescriptionnameN)__name__
__module____qualname__r   r   str__annotations__     5/root/workspace/TheGreatWar/server/app/routes/room.pyr   r      s5         caBNSSSD#SSSSSr   r   c                       e Zd ZU eed<   dS )JoinRoomRequestroom_idN)r   r   r   r   r   r   r   r   r    r       s         LLLLLr   r     )response_modelc                  H   K   t          t          j                              S )u   获取房间列表data)r
   r   
list_roomsr   r   r   r'   r'      s"       L3556666r   )r#   status_codebodyuserc                    K   t          j        | j        |j        |j                  }t          |                                          S )Nr%   )r   create_roomr   idnicknamer
   to_dictr)   r*   rooms      r   r,   r,      s9      #DItwFFDDLLNN++++r   z/joinc                    K   t          j        | j        |j        |j                  }|st          dd          t          |                                          S )N  u*   房间不存在、已满或已开始游戏r(   detailr%   )r   	join_roomr!   r-   r.   r   r
   r/   r0   s      r   r6   r6   "   sV      !$,GGD b4`aaaaDLLNN++++r   z/leavec                    K   t          j        | j        |j                  }|st	          dd          t          d          S )Nr3   u   不在该房间中r4   u   已离开房间)message)r   
leave_roomr!   r-   r   r
   )r)   r*   oks      r   r9   r9   *   sK      		 tw	7	7B J4HIIII01111r   z
/{room_id}r!   c                    K   t          j        |           }|st          dd          t          |                                          S )Ni  u   房间不存在r4   r%   )r   get_roomr   r
   r/   )r!   r1   s     r   r<   r<   2   sL       ))D G4EFFFFDLLNN++++r   N)__doc__fastapir   r   r   r   pydanticr   r   app.routes.authr	   app.schemasr
   r   app.gamer   routerr   r    getr'   postHTTP_201_CREATEDr,   r6   r9   r   r<   r   r   r   <module>rG      sf    > = = = = = = = = = = = % % % % % % % % , , , , , , 0 0 0 0 0 0 0 0 ! ! ! ! ! !	,hZ	8	8	8T T T T T	 T T T    i    B{++7 7 ,+7
 R9PQQCJ7K[C\C\ , ,- ,[ , , , RQ,
 W[11?FwGW?X?X , ,/ , , , , 21, Xk22@GHX@Y@Y 2 2? 2+ 2 2 2 322 L55,C , , , 65, , ,r   