1use bon::Builder;
5use nil_core::world::WorldOptions;
6use nil_core::world::config::WorldId;
7use nil_crypto::password::Password;
8use nil_payload_macros::FromWorld;
9use nil_server_types::round::RoundDuration;
10use serde::{Deserialize, Serialize};
11use std::path::PathBuf;
12
13#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
14#[serde(rename_all = "camelCase")]
15#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
16#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
17pub struct CreateRemoteWorldRequest {
18 pub options: WorldOptions,
19 #[serde(default)]
20 #[builder(into)]
21 pub description: Option<String>,
22 #[serde(default)]
23 #[builder(into)]
24 pub password: Option<Password>,
25 #[serde(default)]
26 #[builder(into)]
27 pub round_duration: Option<RoundDuration>,
28}
29
30#[derive(Builder, Clone, Debug, Deserialize, Serialize, FromWorld)]
31#[serde(rename_all = "camelCase")]
32#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
33#[cfg_attr(feature = "typescript", ts(export))]
34pub struct DeleteRemoteWorldRequest {
35 #[builder(start_fn, into)]
36 pub world: WorldId,
37}
38
39#[derive(Builder, Clone, Debug, Deserialize, Serialize, FromWorld)]
40#[serde(rename_all = "camelCase")]
41#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
42#[cfg_attr(feature = "typescript", ts(export))]
43pub struct GetRemoteWorldRequest {
44 #[builder(start_fn, into)]
45 pub world: WorldId,
46}
47
48#[derive(Builder, Clone, Debug, Deserialize, Serialize, FromWorld)]
49#[serde(rename_all = "camelCase")]
50#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
51#[cfg_attr(feature = "typescript", ts(export))]
52pub struct GetWorldBotsRequest {
53 #[builder(start_fn, into)]
54 pub world: WorldId,
55}
56
57#[derive(Builder, Clone, Debug, Deserialize, Serialize, FromWorld)]
58#[serde(rename_all = "camelCase")]
59#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
60#[cfg_attr(feature = "typescript", ts(export))]
61pub struct GetWorldConfigRequest {
62 #[builder(start_fn, into)]
63 pub world: WorldId,
64}
65
66#[derive(Builder, Clone, Debug, Deserialize, Serialize, FromWorld)]
67#[serde(rename_all = "camelCase")]
68#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
69#[cfg_attr(feature = "typescript", ts(export))]
70pub struct GetWorldPersonnelRequest {
71 #[builder(start_fn, into)]
72 pub world: WorldId,
73}
74
75#[derive(Builder, Clone, Debug, Deserialize, Serialize, FromWorld)]
76#[serde(rename_all = "camelCase")]
77#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
78#[cfg_attr(feature = "typescript", ts(export))]
79pub struct GetWorldPlayersRequest {
80 #[builder(start_fn, into)]
81 pub world: WorldId,
82}
83
84#[derive(Builder, Clone, Debug, Deserialize, Serialize, FromWorld)]
85#[serde(rename_all = "camelCase")]
86#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
87#[cfg_attr(feature = "typescript", ts(export))]
88pub struct GetWorldPrecursorsRequest {
89 #[builder(start_fn, into)]
90 pub world: WorldId,
91}
92
93#[derive(Builder, Clone, Debug, Deserialize, Serialize, FromWorld)]
94#[serde(rename_all = "camelCase")]
95#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
96#[cfg_attr(feature = "typescript", ts(export))]
97pub struct GetWorldRulersRequest {
98 #[builder(start_fn, into)]
99 pub world: WorldId,
100}
101
102#[derive(Builder, Clone, Debug, Deserialize, Serialize, FromWorld)]
103#[serde(rename_all = "camelCase")]
104#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
105#[cfg_attr(feature = "typescript", ts(export))]
106pub struct GetWorldStatsRequest {
107 #[builder(start_fn, into)]
108 pub world: WorldId,
109}
110
111#[derive(Builder, Clone, Debug, Deserialize, Serialize, FromWorld)]
112#[serde(rename_all = "camelCase")]
113#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
114#[cfg_attr(feature = "typescript", ts(export))]
115pub struct LeaveRequest {
116 #[builder(start_fn, into)]
117 pub world: WorldId,
118}
119
120#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
121#[serde(rename_all = "camelCase")]
122#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
123#[cfg_attr(feature = "typescript", ts(export))]
124pub struct SaveLocalWorldRequest {
125 #[builder(start_fn, into)]
126 pub world: WorldId,
127 #[builder(into)]
128 pub path: PathBuf,
129}