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