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