Skip to main content

nil_payload/request/infrastructure/
workshop.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use bon::Builder;
5use nil_core::continent::Coord;
6use nil_core::infrastructure::building::r#impl::workshop::recruit_queue::{
7  WorkshopRecruitOrderId,
8  WorkshopRecruitOrderRequest,
9};
10use nil_core::world::config::WorldId;
11use serde::{Deserialize, Serialize};
12
13#[cfg(feature = "typescript")]
14use ts_rs::TS;
15
16#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
17#[serde(rename_all = "camelCase")]
18#[cfg_attr(feature = "typescript", derive(TS))]
19#[cfg_attr(feature = "typescript", ts(export))]
20pub struct AddWorkshopRecruitOrderRequest {
21  pub world: WorldId,
22  pub request: WorkshopRecruitOrderRequest,
23}
24
25#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
26#[serde(rename_all = "camelCase")]
27#[cfg_attr(feature = "typescript", derive(TS))]
28#[cfg_attr(feature = "typescript", ts(export))]
29pub struct CancelWorkshopRecruitOrderRequest {
30  pub world: WorldId,
31  #[builder(into)]
32  pub coord: Coord,
33  pub id: WorkshopRecruitOrderId,
34}
35
36#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
37#[serde(rename_all = "camelCase")]
38#[cfg_attr(feature = "typescript", derive(TS))]
39#[cfg_attr(feature = "typescript", ts(export))]
40pub struct GetWorkshopRecruitCatalogRequest {
41  pub world: WorldId,
42  #[builder(into)]
43  pub coord: Coord,
44}