Skip to main content

nil_payload/response/
player.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use derive_more::{Deref, DerefMut, From, Into};
5use nil_core::continent::Coord;
6use nil_core::infrastructure::storage::OverallStorageCapacity;
7use nil_core::military::Military;
8use nil_core::player::{Player, PlayerId, PlayerStatus, PublicPlayer};
9use nil_core::report::ReportId;
10use nil_core::resources::maintenance::Maintenance;
11use nil_core::world::config::WorldId;
12use serde::{Deserialize, Serialize};
13
14#[cfg(feature = "axum")]
15use nil_payload_macros::IntoJsonResponse;
16
17#[cfg(feature = "typescript")]
18use ts_rs::TS;
19
20#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
21#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
22#[cfg_attr(feature = "typescript", derive(TS))]
23#[cfg_attr(feature = "typescript", ts(export))]
24pub struct GetPlayerCoordsResponse(pub Vec<Coord>);
25
26#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
27#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
28#[cfg_attr(feature = "typescript", derive(TS))]
29#[cfg_attr(feature = "typescript", ts(export))]
30pub struct GetPlayerIdsResponse(pub Vec<PlayerId>);
31
32#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
33#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
34#[cfg_attr(feature = "typescript", derive(TS))]
35#[cfg_attr(feature = "typescript", ts(export))]
36pub struct GetPlayerMaintenanceResponse(pub Maintenance);
37
38#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
39#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
40#[cfg_attr(feature = "typescript", derive(TS))]
41#[cfg_attr(feature = "typescript", ts(export))]
42pub struct GetPlayerMilitaryResponse(pub Military);
43
44#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
45#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
46#[cfg_attr(feature = "typescript", derive(TS))]
47#[cfg_attr(feature = "typescript", ts(export))]
48pub struct GetPlayerReportsResponse(pub Vec<ReportId>);
49
50#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
51#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
52#[cfg_attr(feature = "typescript", derive(TS))]
53#[cfg_attr(feature = "typescript", ts(export))]
54pub struct GetPlayerResponse(pub Player);
55
56#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
57#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
58#[cfg_attr(feature = "typescript", derive(TS))]
59#[cfg_attr(feature = "typescript", ts(export))]
60pub struct GetPlayerStatusResponse(pub PlayerStatus);
61
62#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
63#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
64#[cfg_attr(feature = "typescript", derive(TS))]
65#[cfg_attr(feature = "typescript", ts(export))]
66pub struct GetPlayerStorageCapacityResponse(pub OverallStorageCapacity);
67
68#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
69#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
70#[cfg_attr(feature = "typescript", derive(TS))]
71#[cfg_attr(feature = "typescript", ts(export))]
72pub struct GetPlayerWorldsResponse(pub Vec<WorldId>);
73
74#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
75#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
76#[cfg_attr(feature = "typescript", derive(TS))]
77#[cfg_attr(feature = "typescript", ts(export))]
78pub struct GetPublicPlayerResponse(pub PublicPlayer);
79
80#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
81#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
82#[cfg_attr(feature = "typescript", derive(TS))]
83#[cfg_attr(feature = "typescript", ts(export))]
84pub struct GetPublicPlayersResponse(pub Vec<PublicPlayer>);
85
86#[derive(Clone, Copy, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
87#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
88#[cfg_attr(feature = "typescript", derive(TS))]
89#[cfg_attr(feature = "typescript", ts(export))]
90pub struct PlayerExistsResponse(pub bool);