Skip to main content

pickcat_api_collection/dto/
reading_session.rs

1//! 阅读会话 DTO。
2
3use serde::{Deserialize, Serialize};
4
5use super::user::LevelFamiliarityDTO;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct VisiblePostDTO {
10    pub post_id: String,
11    pub visible_ms: u64,
12}
13
14/// `PUT /api/v1/reading-sessions/{sessionId}/batches/{batchNo}` 的请求体。
15#[derive(Debug, Clone, Serialize, Deserialize)]
16#[serde(rename_all = "camelCase")]
17pub struct ReadingBatchDTO {
18    pub topic_id: String,
19    pub elapsed_ms: u64,
20    /// 至少 1 项,否则服务端返回 `400 VALIDATION_FAILED`。
21    pub visible_posts: Vec<VisiblePostDTO>,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
25#[serde(rename_all = "camelCase")]
26pub struct ReadingBatchResponseDTO {
27    pub accepted_elapsed_ms: u64,
28    pub familiarity: LevelFamiliarityDTO,
29}