66 lines
1.9 KiB
Rust
66 lines
1.9 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
use crate::puzzle_agent::PuzzleAnchorPackResponse;
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct PutPuzzleWorkRequest {
|
|
pub level_name: String,
|
|
pub summary: String,
|
|
pub theme_tags: Vec<String>,
|
|
#[serde(default)]
|
|
pub cover_image_src: Option<String>,
|
|
#[serde(default)]
|
|
pub cover_asset_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct PuzzleWorkSummaryResponse {
|
|
pub work_id: String,
|
|
pub profile_id: String,
|
|
pub owner_user_id: String,
|
|
#[serde(default)]
|
|
pub source_session_id: Option<String>,
|
|
pub author_display_name: String,
|
|
pub level_name: String,
|
|
pub summary: String,
|
|
pub theme_tags: Vec<String>,
|
|
#[serde(default)]
|
|
pub cover_image_src: Option<String>,
|
|
#[serde(default)]
|
|
pub cover_asset_id: Option<String>,
|
|
pub publication_status: String,
|
|
pub updated_at: String,
|
|
#[serde(default)]
|
|
pub published_at: Option<String>,
|
|
pub play_count: u32,
|
|
pub publish_ready: bool,
|
|
}
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct PuzzleWorkProfileResponse {
|
|
#[serde(flatten)]
|
|
pub summary: PuzzleWorkSummaryResponse,
|
|
pub anchor_pack: PuzzleAnchorPackResponse,
|
|
}
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct PuzzleWorksResponse {
|
|
pub items: Vec<PuzzleWorkSummaryResponse>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct PuzzleWorkDetailResponse {
|
|
pub item: PuzzleWorkProfileResponse,
|
|
}
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
|
|
#[serde(rename_all = "camelCase")]
|
|
pub struct PuzzleWorkMutationResponse {
|
|
pub item: PuzzleWorkProfileResponse,
|
|
}
|