Files
Genarrative/server-rs/crates/shared-contracts/src/puzzle_gallery.rs
2026-05-17 05:50:33 +08:00

31 lines
905 B
Rust

use serde::{Deserialize, Serialize};
use crate::puzzle_works::{PuzzleWorkProfileResponse, PuzzleWorkSummaryResponse};
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct PuzzleGalleryResponse {
pub items: Vec<PuzzleWorkSummaryResponse>,
#[serde(default)]
pub preview_refs: Vec<PuzzleGalleryWorkRefResponse>,
#[serde(default)]
pub has_more: bool,
#[serde(default)]
pub next_cursor: Option<String>,
#[serde(default)]
pub total_count: u32,
}
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct PuzzleGalleryWorkRefResponse {
pub work_id: String,
pub profile_id: String,
}
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct PuzzleGalleryDetailResponse {
pub item: PuzzleWorkProfileResponse,
}