
    Kia.                       S r SSKJr  SSKJrJrJrJr  SSKJ	r	J
r
JrJrJr  \\\" SS94   r\\\" SSS94   r\\\" S	SS94   r\\\" SS
S94   r\\\" SS94   r " S S\	5      r " S S\	5      r\\\\4   \" SS94   r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S \5      r " S! S"\5      r  " S# S$\5      r! " S% S&\5      r" " S' S(\5      r# " S) S*\5      r$ " S+ S,\5      r% " S- S.\5      r& " S/ S0\5      r' " S1 S2\5      r( " S3 S4\5      r) " S5 S6\5      r* " S7 S8\5      r+ " S9 S:\5      r, " S; S<\5      r- " S= S>\5      r.\\\\\\\\\\ \!\"\#\$\%\&\'\(\)\*\+\,\-\.4   \" S?S@94   r/\" \/5      r0 " SA SB\5      r1 " SC SD\5      r2 " SE SF\5      r3 " SG SH\5      r4 " SI SJ\5      r5 " SK SL\5      r6 " SM SN\5      r7 " SO SP\5      r8 " SQ SR\5      r9 " SS ST\5      r: " SU SV\5      r; " SW SX\5      r< " SY SZ\5      r= " S[ S\\5      r> " S] S^\5      r? " S_ S`\5      r@ " Sa Sb\	5      rA " Sc Sd\5      rB " Se Sf\5      rC " Sg Sh\5      rD " Si Sj\	5      rE " Sk Sl\5      rF " Sm Sn\5      rG " So Sp\5      rH " Sq Sr\5      rI " Ss St\5      rJ " Su Sv\5      rK " Sw Sx\5      rL\\\1\2\3\4\5\6\7\8\9\:\;\<\=\>\?\@\B\C\D\F\G\H\I\J\K\L4   \" S?S@94   rM\" \M5      rN/ SyQrOgz){z6Typed packet schemas shared between server and client.    )annotations)	AnnotatedAnyLiteralUnion)	BaseModel
ConfigDictFieldTypeAdaptermodel_validator   ged   )r   lei   T)defaultc                  0    \ rS rSr% Sr\" SS9rS\S'   Srg)	
BasePacket   z!Base class for all packet models.forbidextrastrtype N)	__name__
__module____qualname____firstlineno____doc__r	   model_config__annotations____static_attributes__r       ;C:\Users\dbart\PlayPalace11\server\network\packet_models.pyr   r      s    +H-L
Ir%   r   c                  @    \ rS rSr% SrS\S'   SrS\S'   SrS\S'   S	rg)
MenuItemPayload   z)Structured representation of a menu item.r   textN
str | Noneidsoundr   )	r   r   r   r    r!   r#   r,   r-   r$   r   r%   r&   r(   r(      s    3
IB
E:r%   r(   left_to_right)
union_modec                      \ rS rSr% SrS\S'   S\S'   SrS\S	'   SrS\S
'   SrS\S'   Sr	S\S'   Sr
S\S'   SrS\S'   SrS\S'   SrS\S'   \" SS9SS j5       rSrg)AuthorizePacket)   	authorizezLiteral['authorize']r   r   usernameNr+   passwordsession_tokenlocale
int | Nonemajorminorpatchclient_typeplatformafter)modec                `    U R                   (       d  U R                  (       d  [        S5      eU $ )Nz,authorize requires password or session_token)r5   r6   
ValueError)selfs    r&   _ensure_credentials#AuthorizePacket._ensure_credentials5   s"    !3!3KLLr%   r   )returnz'AuthorizePacket')r   r   r   r    r   r#   r5   r6   r7   r9   r:   r;   r<   r=   r   rC   r$   r   r%   r&   r1   r1   )   sy    !,D
,MHj $M:$FJE:E:E:"K"Hj'" #r%   r1   c                  b    \ rS rSr% SrS\S'   S\S'   S\S'   SrS	\S
'   SrS	\S'   SrS	\S'   Sr	g)RegisterPacket<   registerzLiteral['register']r   r   r4   r5   Nr+   emailbior7   r   )
r   r   r   r    r   r#   rJ   rK   r7   r$   r   r%   r&   rG   rG   <   s5     *D
*MME:CFJr%   rG   c                  X    \ rS rSr% SrS\S'   S\S'   SrS\S	'   SrS\S
'   SrS\S'   Sr	g)RefreshSessionPacketE   refresh_sessionzLiteral['refresh_session']r   r   refresh_tokenNr+   r4   r<   r=   r   )
r   r   r   r    r   r#   r4   r<   r=   r$   r   r%   r&   rM   rM   E   s1    '8D
$8Hj"K"Hjr%   rM   c                  N    \ rS rSr% SrS\S'   SrS\S'   SrS\S	'   SrS\S
'   Sr	g)MenuSelectionPacketM   menuLiteral['menu']r   Nr+   menu_idMenuIndex | None	selectionselection_idr   )
r   r   r   r    r   r#   rV   rX   rY   r$   r   r%   r&   rR   rR   M   s+    "D/"GZ"&I&#L*#r%   rR   c                  2    \ rS rSr% SrS\S'   SrS\S'   Srg)	EscapePacketT   escapezLiteral['escape']r   Nr+   rV   r   )r   r   r   r    r   r#   rV   r$   r   r%   r&   r[   r[   T   s    &D
&GZr%   r[   c                      \ rS rSr% SrS\S'   S\S'   SrS\S	'   SrS\S
'   SrS\S'   Sr	S\S'   Sr
S\S'   SrS\S'   Srg)KeybindPacketY   keybindzLiteral['keybind']r   r   keyFboolcontrolaltshiftNr+   rV   rW   
menu_indexmenu_item_idr   )r   r   r   r    r   r#   rd   re   rf   rV   rg   rh   r$   r   r%   r&   r_   r_   Y   sO    (D
(	HGTCE4GZ#'J '#L*#r%   r_   c                  <    \ rS rSr% SrS\S'   S\S'   SrS\S	'   S
rg)EditboxPacketr   editboxzLiteral['editbox']r   r   r*   Nr+   input_idr   )r   r   r   r    r   r#   rl   r$   r   r%   r&   rj   rj   d   s    (D
(
IHjr%   rj   c                  F    \ rS rSr% SrS\S'   S\S'   S\S'   S	rS\S
'   Srg)DocumentEditorResponsePacketj   document_editorLiteral['document_editor']r   r   	dialog_idzLiteral['save', 'cancel']action contentr   N)r   r   r   r    r   r#   ru   r$   r   r%   r&   rn   rn   j   s"    '8D
$8N%%GSr%   rn   c                  J    \ rS rSr% SrS\S'   SrS\S'   S\S	'   S
rS\S'   Srg)
ChatPacketq   chatLiteral['chat']r   localLiteral['local', 'global']convor   messageOtherlanguager   N)	r   r   r   r    r   r#   r}   r   r$   r   r%   r&   rw   rw   q   s&    "D/"(/E%/LHcr%   rw   c                  $    \ rS rSr% SrS\S'   Srg)
PingPacketx   pingzLiteral['ping']r   r   Nr   r   r   r    r   r#   r$   r   r%   r&   r   r   x       "D/"r%   r   c                  $    \ rS rSr% SrS\S'   Srg)ListOnlinePacket|   list_onlinezLiteral['list_online']r   r   Nr   r   r%   r&   r   r   |   s    #0D
 0r%   r   c                  $    \ rS rSr% SrS\S'   Srg)ListOnlineWithGamesPacket   list_online_with_gamesz!Literal['list_online_with_games']r   r   Nr   r   r%   r&   r   r      s    .FD
+Fr%   r   c                  X    \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   \" SS9rS\S'   Srg)PlaylistDurationResponsePacket   playlist_duration_responsez%Literal['playlist_duration_response']r   z	str | int
request_idr   playlist_id(Literal['total', 'elapsed', 'remaining']duration_typer   r   intdurationr   N)	r   r   r   r    r   r#   r
   r   r$   r   r%   r&   r   r      s-    2ND
/N;;QKHcr%   r   c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	ClientOptionsPacket   client_optionszLiteral['client_options']r   dict[str, Any]optionsr   Nr   r   r%   r&   r   r      s    &6D
#6r%   r   c                  <    \ rS rSr% SrS\S'   S\S'   SrS\S'   S	rg
)SlashCommandPacket   slash_commandzLiteral['slash_command']r   r   commandrt   argsr   N)r   r   r   r    r   r#   r   r$   r   r%   r&   r   r      s    %4D
"4LD#Nr%   r   c                  $    \ rS rSr% SrS\S'   Srg)AdminsCommandPacket   
admins_cmdzLiteral['admins_cmd']r   r   Nr   r   r%   r&   r   r          ".D
.r%   r   c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	BroadcastCommandPacket   broadcast_cmdzLiteral['broadcast_cmd']r   r   r~   r   Nr   r   r%   r&   r   r      s    %4D
"4Lr%   r   c                  2    \ rS rSr% SrS\S'   SrS\S'   Srg)	SetTableVisibilityCommandPacket   set_table_visibility_cmdz#Literal['set_table_visibility_cmd']r   Nbool | Nonestater   )r   r   r   r    r   r#   r   r$   r   r%   r&   r   r      s    0JD
-JE;r%   r   c                  $    \ rS rSr% SrS\S'   Srg)!CheckTableVisibilityCommandPacket   check_table_visibility_cmdz%Literal['check_table_visibility_cmd']r   r   Nr   r   r%   r&   r   r      s    2ND
/Nr%   r   c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	SetTablePasswordCommandPacket   set_table_pw_cmdzLiteral['set_table_pw_cmd']r   r   r5   r   Nr   r   r%   r&   r   r      s    (:D
%:Mr%   r   c                  $    \ rS rSr% SrS\S'   Srg) RemoveTablePasswordCommandPacket   remove_table_pw_cmdzLiteral['remove_table_pw_cmd']r   r   Nr   r   r%   r&   r   r      s    +@D
(@r%   r   c                  $    \ rS rSr% SrS\S'   Srg)CheckTablePasswordCommandPacket   check_table_pw_cmdzLiteral['check_table_pw_cmd']r   r   Nr   r   r%   r&   r   r      s    *>D
'>r%   r   r   )discriminatorc                  p    \ rS rSr% SrS\S'   S\S'   S\S'   SrS	\S
'   SrS\S'   SrS	\S'   Sr	S\S'   Sr
g)AuthorizeSuccessPacket   authorize_successzLiteral['authorize_success']r   r   r4   versionNr+   r6   r8   session_expires_atrP   refresh_expires_atr   )r   r   r   r    r   r#   r6   r   rP   r   r$   r   r%   r&   r   r      sA    )<D
&<ML $M:$%)
) $M:$%)
)r%   r   c                  d    \ rS rSr% SrS\S'   S\S'   SrS\S	'   S\S
'   S\S'   S\S'   S\S'   Srg)RefreshSessionSuccessPacket   refresh_session_successz"Literal['refresh_session_success']r   r   r4   Nr+   r   r6   r   r   rP   r   r   )r   r   r   r    r   r#   r   r$   r   r%   r&   r   r      s4    /HD
,HMGZr%   r   c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	RefreshSessionFailurePacket   refresh_session_failurez"Literal['refresh_session_failure']r   r   r~   r   Nr   r   r%   r&   r   r      s    /HD
,HLr%   r   c                  J    \ rS rSr% SrS\S'   S\S'   SrS\S	'   S
rS\S'   Srg)SpeakPacket   speakzLiteral['speak']r   r   r*   Nr+   bufferFrc   mutedr   )	r   r   r   r    r   r#   r   r   r$   r   r%   r&   r   r      s&    $D
$
IFJE4r%   r   c                  X    \ rS rSr% SrS\S'   S\S'   SrS\S	'   S
rS\S'   SrS\S'   Sr	g)PlaySoundPacket   
play_soundzLiteral['play_sound']r   r   namer   VolumePercentvolumer   
PanPercentpanPitchPercentpitchr   N)
r   r   r   r    r   r#   r   r   r   r$   r   r%   r&   r   r      s0    ".D
.
IFMCE<r%   r   c                  <    \ rS rSr% SrS\S'   S\S'   SrS\S	'   S
rg)PlayMusicPacketi  
play_musiczLiteral['play_music']r   r   r   Trc   loopingr   N)r   r   r   r    r   r#   r   r$   r   r%   r&   r   r     s    ".D
.
IGTr%   r   c                  $    \ rS rSr% SrS\S'   Srg)StopMusicPacketi  
stop_musiczLiteral['stop_music']r   r   Nr   r   r%   r&   r   r     r   r%   r   c                  J    \ rS rSr% SrS\S'   SrS\S'   S\S	'   SrS\S
'   Srg)PlayAmbiencePacketi  play_ambiencezLiteral['play_ambience']r   Nr+   intror   loopoutror   )	r   r   r   r    r   r#   r   r   r$   r   r%   r&   r   r     s&    %4D
"4E:
IE:r%   r   c                  $    \ rS rSr% SrS\S'   Srg)StopAmbiencePacketi  stop_ambiencezLiteral['stop_ambience']r   r   Nr   r   r%   r&   r   r     s    %4D
"4r%   r   c                      \ rS rSr% SrS\S'   S\S'   S\S'   S	rS
\S'   S	rS\S'   S	rS\S'   S	r	S\S'   S	r
S
\S'   S	rS\S'   S	rS
\S'   Srg	)
MenuPacketi  rT   rU   r   r   rV   zlist[MenuItem]itemsNr   multiletter_enabledz?Literal['keybind', 'select_last_option', 'escape_event'] | Noneescape_behaviorr8   positionr+   rY   grid_enabledrW   
grid_widthplay_selection_soundr   )r   r   r   r    r   r#   r   r   r   rY   r   r   r   r$   r   r%   r&   r   r     sa    "D/"L'++W[OT[Hj#L*# $L+$#'J '(,+,r%   r   c                  b    \ rS rSr% SrS\S'   S\S'   S\S'   SrS\S	'   S
rS\S'   S
rS\S'   Sr	g)RequestInputPacketi#  request_inputzLiteral['request_input']r   r   rl   promptrt   default_valueFrc   	multiline	read_onlyr   N)
r   r   r   r    r   r#   r  r  r  r$   r   r%   r&   r   r   #  s5    %4D
"4MKM3ItItr%   r   c                  t    \ rS rSr% SrS\S'   S\S'   SrS\S'   SrS\S	'   S
rS\S'   S
r	S\S'   Sr
S\S'   Srg
)DocumentEditorPacketi,  rp   rq   r   r   rr   rt   ru   content_labelNr+   source_contentsource_labelr  r   )r   r   r   r    r   r#   ru   r  r  r	  r  r$   r   r%   r&   r  r  ,  sD    '8D
$8NGSM3!%NJ%#L*#FCr%   r  c                  $    \ rS rSr% SrS\S'   Srg)ClearUIPacketi6  clear_uizLiteral['clear_ui']r   r   Nr   r   r%   r&   r  r  6  s     *D
*r%   r  c                  x    \ rS rSr% SrS\S'   SrS\S'   SrS\S'   SrS\S	'   S
r	S\S'   S
r
S\S'   S
rS\S'   Srg
)DisconnectPacketi:  
disconnectzLiteral['disconnect']r   Frc   	reconnectshow_messagereturn_to_loginNr+   r~   z8Literal['initializing', 'maintenance', 'running'] | Nonestatus_modez"Annotated[int, Field(ge=1)] | Noneretry_afterr   )r   r   r   r    r   r#   r  r  r  r~   r  r  r$   r   r%   r&   r  r  :  sK    ".D
.ItL$!OT!GZLPKIP6:K3:r%   r  c                  T    \ rS rSr% SrS\S'   S\S'   S\S'   S	rS
\S'   S	rS
\S'   Srg	)ServerStatusPacketiD  server_statuszLiteral['server_status']r   z1Literal['initializing', 'maintenance', 'running']r?   zAnnotated[int, Field(ge=1)]r  Nr+   r~   	resume_atr   )	r   r   r   r    r   r#   r~   r  r$   r   r%   r&   r  r  D  s-    %4D
"4
;;,,GZ Iz r%   r  c                  8    \ rS rSr% SrS\S'   S\S'   S\S'   Srg	)
TableCreatePacketiL  table_createzLiteral['table_create']r   r   hostgamer   Nr   r   r%   r&   r  r  L  s    $2D
!2
I
Ir%   r  c                  6    \ rS rSr% \" SS9rS\S'   S\S'   Srg)	GameInfoiR  ignorer   r   r   r   r   N)r   r   r   r    r	   r"   r#   r$   r   r%   r&   r  r  R  s    H-L
I
Ir%   r  c                  <    \ rS rSr% SrS\S'   S\S'   SrS\S	'   S
rg)UpdateOptionsListsPacketiX  update_options_listszLiteral['update_options_lists']r   zlist[GameInfo]gamesNz!dict[str, str] | list[str] | None	languagesr   )r   r   r   r    r   r#   r%  r$   r   r%   r&   r"  r"  X  s    ,BD
)B37I07r%   r"  c                  $    \ rS rSr% SrS\S'   Srg)
PongPacketi^  pongzLiteral['pong']r   r   Nr   r   r%   r&   r'  r'  ^  r   r%   r'  c                  L    \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S\S
'   Srg)ChatBroadcastPacketib  ry   rz   r   r|   r}   r   senderr~   r   r   Nr   r   r%   r&   r*  r*  b  s!    "D/"%%KLMr%   r*  c                  d    \ rS rSr% S\S'   S\S'   S\S'   \" SSS9rS\S	'   \" SSS9rS\S
'   Srg)GameListEntryij  r   r,   r   r   r   )r   r   r   playersmax_playersr   N)	r   r   r   r    r#   r
   r.  r/  r$   r   r%   r&   r-  r-  j  s3    G
I
Iq)GS)Q1-K-r%   r-  c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	GameListPacketir  	game_listzLiteral['game_list']r   zlist[GameListEntry]r$  r   Nr   r   r%   r&   r1  r1  r  s    !,D
,r%   r1  c                  ~    \ rS rSr% SrS\S'   S\S'   S\S'   S	rS
\S'   SrS\S'   SrS\S'   Sr	S\S'   Sr
S\S'   Srg)AddPlaylistPacketiw  add_playlistzLiteral['add_playlist']r   r   r   z	list[str]tracksmusiczLiteral['music', 'sound']
audio_typeFrc   shuffle_tracksr   r   repeatsT
auto_startauto_remover   N)r   r   r   r    r   r#   r8  r9  r:  r;  r<  r$   r   r%   r&   r4  r4  w  sL    $2D
!2,3J)3 ND GSJKr%   r4  c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	StartPlaylistPacketi  start_playlistzLiteral['start_playlist']r   r   r   r   Nr   r   r%   r&   r>  r>    s    &6D
#6r%   r>  c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	RemovePlaylistPacketi  remove_playlistzLiteral['remove_playlist']r   r   r   r   Nr   r   r%   r&   rA  rA    s    '8D
$8r%   rA  c                  J    \ rS rSr% SrS\S'   S\S'   SrS\S	'   S
rS\S'   Srg
)GetPlaylistDurationPacketi  get_playlist_durationz Literal['get_playlist_duration']r   r   r   totalr   r   Nzstr | int | Noner   r   )	r   r   r   r    r   r#   r   r   r$   r   r%   r&   rD  rD    s)    -DD
*D>EM;E#'J 'r%   rD  c                  :    \ rS rSr% SrS\S'   \" \S9rS\S'   Sr	g	)
OpenClientOptionsPacketi  open_client_optionszLiteral['open_client_options']r   default_factoryr   r   r   N
r   r   r   r    r   r#   r
   dictr   r$   r   r%   r&   rH  rH        +@D
(@#D9G^9r%   rH  c                  :    \ rS rSr% SrS\S'   \" \S9rS\S'   Sr	g	)
OpenServerOptionsPacketi  open_server_optionszLiteral['open_server_options']r   rJ  r   r   r   NrL  r   r%   r&   rP  rP    rN  r%   rP  )CLIENT_TO_SERVER_PACKET_ADAPTERClientToServerPacketSERVER_TO_CLIENT_PACKET_ADAPTERServerToClientPacketN)Pr!   
__future__r   typingr   r   r   r   pydanticr   r	   r
   r   r   r   	MenuIndexr   r   r   rc   LoopFlagr   r(   r   MenuItemr1   rG   rM   rR   r[   r_   rj   rn   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   rS  rR  r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r"  r'  r*  r-  r1  r4  r>  rA  rD  rH  rP  rU  rT  __all__r   r%   r&   <module>r]     s   < " 1 1 O O
 c5A;&'	#uc223sETc223
eqS112T5../ i  U3/0%?2SSTj &Z  :  $* $: 
$J $ J  :  # #1z 1G
 G Z  * 
 /* /Z 
j 
O
 OJ 
Az A?j ? !	$!&')%('+	)0 
1! 8 #..B"C *Z ** * 
* j j /j / 5 5
- 
- : +J +;z ;! !
 y 8z 8# #* .I .Z 

 * 
: 
(
 (:j :
:j :
 !	## !3	!8 
9! @ #..B"C r%   