diff --git a/src/api/posts/helpers.rs b/src/api/posts/helpers.rs index 0ef1248..23aefb0 100644 --- a/src/api/posts/helpers.rs +++ b/src/api/posts/helpers.rs @@ -50,6 +50,7 @@ pub(super) async fn row_to_post_list( published_at: row.get("published_at"), created_at: row.get("created_at"), updated_at: row.get("updated_at"), + deleted_at: row.try_get("deleted_at").ok(), tags, cover_image: row.get("cover_image"), reading_time: (word_count / 200).max(1), @@ -143,6 +144,7 @@ pub(super) async fn row_to_post_full( published_at: row.get("published_at"), created_at: row.get("created_at"), updated_at: row.get("updated_at"), + deleted_at: row.try_get("deleted_at").ok(), tags, cover_image: row.get("cover_image"), reading_time: (word_count / 200).max(1), diff --git a/src/cache.rs b/src/cache.rs index 77cd385..af4c648 100644 --- a/src/cache.rs +++ b/src/cache.rs @@ -473,6 +473,7 @@ mod tests { published_at: None, created_at: chrono::Utc::now(), updated_at: chrono::Utc::now(), + deleted_at: None, tags: vec![], cover_image: None, reading_time: 1, @@ -520,6 +521,7 @@ mod tests { published_at: None, created_at: chrono::Utc::now(), updated_at: chrono::Utc::now(), + deleted_at: None, tags: vec![], cover_image: None, reading_time: 1, diff --git a/src/models/post.rs b/src/models/post.rs index 42b0302..b72933b 100644 --- a/src/models/post.rs +++ b/src/models/post.rs @@ -61,6 +61,8 @@ pub struct Post { pub created_at: DateTime, /// 最后更新时间。 pub updated_at: DateTime, + /// 软删除时间,None 表示未删除。仅回收站查询填充。 + pub deleted_at: Option>, /// 关联标签列表。 pub tags: Vec, /// 封面图片 URL。 @@ -161,6 +163,7 @@ mod tests { published_at: None, created_at: Utc.with_ymd_and_hms(2024, 1, 15, 10, 0, 0).unwrap(), updated_at: Utc.with_ymd_and_hms(2024, 1, 15, 10, 0, 0).unwrap(), + deleted_at: None, tags: vec![], cover_image: None, reading_time: 1,