refactor(models): update data models and remove deprecated IM entities

- Update channel, notification, PR, repo, user, workspace models
- Remove deleted IM models: articles, channel follows, message
  attachments/bookmarks/drafts/edit history/embeds/mentions/pins/
  polls/reactions/threads, saved messages, thread read states
- Add new PR models: review requests, templates
- Add repo release assets model
- Add base_info module for API detail responses
This commit is contained in:
zhenyi
2026-06-10 18:49:37 +08:00
parent 420dedbc1e
commit 9eb77ab98b
50 changed files with 827 additions and 440 deletions
+32
View File
@@ -1,3 +1,4 @@
use crate::models::base_info::UserBaseInfo;
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use uuid::Uuid;
@@ -17,3 +18,34 @@ pub struct PrReview {
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize, utoipa::ToSchema)]
pub struct PrReviewDetail {
pub id: Uuid,
pub pull_request_id: Uuid,
pub author: UserBaseInfo,
pub state: String,
pub body: Option<String>,
pub dismissed: bool,
pub dismissed_by: Option<Uuid>,
pub dismissed_at: Option<DateTime<Utc>>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}
impl PrReview {
pub fn into_detail(self, author: UserBaseInfo) -> PrReviewDetail {
PrReviewDetail {
id: self.id,
pull_request_id: self.pull_request_id,
author,
state: self.state,
body: self.body,
dismissed: self.dismissed_at.is_some(),
dismissed_by: self.dismissed_by,
dismissed_at: self.dismissed_at,
created_at: self.created_at,
updated_at: self.updated_at,
}
}
}