
    Ţ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j'                  de      d        Zej+                  deej,                         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      defd       Zy)u   
房间管理 REST API
    )	APIRouterDependsHTTPExceptionstatus)	BaseModelField)get_current_user)ApiResponseUserProfile)room_managerz
/api/roomsu   房间)prefixtagsc                   0    e Zd ZU  edddd      Zeed<   y)CreateRoomRequest.       u   房间名称)
min_length
max_lengthdescriptionnameN)__name__
__module____qualname__r   r   str__annotations__     M/mnt/c/Users/DipsyHou/Desktop/workspace/TheGreatWar/server/app/routes/room.pyr   r      s    caBNSD#Sr   r   c                       e Zd ZU eed<   y)JoinRoomRequestroom_idN)r   r   r   r   r   r   r   r   r    r       s    Lr   r     )response_modelc                  F   K   t        t        j                               S w)u   获取房间列表data)r
   r   
list_roomsr   r   r   r'   r'      s      L33566s   !)r#   status_codebodyuserc                    K   t        j                  | j                  |j                  |j                        }t        |j                               S w)Nr%   )r   create_roomr   idnicknamer
   to_dictr)   r*   rooms      r   r,   r,      s7     ##DIItwwFDDLLN++s   AAz/joinc                    K   t        j                  | j                  |j                  |j                        }|st        dd      t        |j                               S w)N  u*   房间不存在、已满或已开始游戏r(   detailr%   )r   	join_roomr!   r-   r.   r   r
   r/   r0   s      r   r6   r6   "   sH     !!$,,GD4`aaDLLN++s   AA!z/leavec                    K   t        j                  | j                  |j                        }|st	        dd      t        d      S w)Nr3   u   不在该房间中r4   u   已离开房间)message)r   
leave_roomr!   r-   r   r
   )r)   r*   oks      r   r9   r9   *   s=     		 	 tww	7B4HII011s   AAz
/{room_id}r!   c                    K   t        j                  |       }|st        dd      t        |j	                               S w)Ni  u   房间不存在r4   r%   )r   get_roomr   r
   r/   )r!   r1   s     r   r<   r<   2   s8       )D4EFFDLLN++s   ?A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      sA   > = % , 0 !	,hZ	8T	 Ti  B{+7 ,7
 R9P9PQCJK[C\ ,- ,[ , R,
 W[1?FGW?X ,/ , , 2, Xk2@GHX@Y 2? 2+ 2 32 L5,C , 6,r   