nil_payload/request/infrastructure/
workshop.rs1use 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}