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, #[serde(default)] pub cover_image_src: Option, #[serde(default)] pub cover_asset_id: Option, } #[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, pub author_display_name: String, pub level_name: String, pub summary: String, pub theme_tags: Vec, #[serde(default)] pub cover_image_src: Option, #[serde(default)] pub cover_asset_id: Option, pub publication_status: String, pub updated_at: String, #[serde(default)] pub published_at: Option, 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, } #[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, }