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:
@@ -1,3 +1,4 @@
|
||||
use crate::models::base_info::UserBaseInfo;
|
||||
use crate::models::common::{Priority, State, Visibility};
|
||||
use chrono::{DateTime, Utc};
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -23,3 +24,48 @@ pub struct Issue {
|
||||
pub updated_at: DateTime<Utc>,
|
||||
pub deleted_at: Option<DateTime<Utc>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, utoipa::ToSchema)]
|
||||
pub struct IssueDetail {
|
||||
pub id: Uuid,
|
||||
pub workspace_id: Uuid,
|
||||
pub author: UserBaseInfo,
|
||||
pub number: i64,
|
||||
pub title: String,
|
||||
pub body: Option<String>,
|
||||
pub state: State,
|
||||
pub priority: Priority,
|
||||
pub visibility: Visibility,
|
||||
pub locked: bool,
|
||||
pub milestone_id: Option<Uuid>,
|
||||
pub closed_by: Option<Uuid>,
|
||||
pub closed_at: Option<DateTime<Utc>>,
|
||||
pub due_at: Option<DateTime<Utc>>,
|
||||
pub created_at: DateTime<Utc>,
|
||||
pub updated_at: DateTime<Utc>,
|
||||
pub deleted_at: Option<DateTime<Utc>>,
|
||||
}
|
||||
|
||||
impl Issue {
|
||||
pub fn into_detail(self, author: UserBaseInfo) -> IssueDetail {
|
||||
IssueDetail {
|
||||
id: self.id,
|
||||
workspace_id: self.workspace_id,
|
||||
author,
|
||||
number: self.number,
|
||||
title: self.title,
|
||||
body: self.body,
|
||||
state: self.state,
|
||||
priority: self.priority,
|
||||
visibility: self.visibility,
|
||||
locked: self.locked,
|
||||
milestone_id: self.milestone_id,
|
||||
closed_by: self.closed_by,
|
||||
closed_at: self.closed_at,
|
||||
due_at: self.due_at,
|
||||
created_at: self.created_at,
|
||||
updated_at: self.updated_at,
|
||||
deleted_at: self.deleted_at,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use crate::models::base_info::UserBaseInfo;
|
||||
use chrono::{DateTime, Utc};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use uuid::Uuid;
|
||||
@@ -14,3 +15,30 @@ pub struct IssueComment {
|
||||
pub created_at: DateTime<Utc>,
|
||||
pub updated_at: DateTime<Utc>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, utoipa::ToSchema)]
|
||||
pub struct IssueCommentDetail {
|
||||
pub id: Uuid,
|
||||
pub issue_id: Uuid,
|
||||
pub author: UserBaseInfo,
|
||||
pub reply_to_comment_id: Option<Uuid>,
|
||||
pub body: String,
|
||||
pub created_at: DateTime<Utc>,
|
||||
pub updated_at: DateTime<Utc>,
|
||||
pub deleted_at: Option<DateTime<Utc>>,
|
||||
}
|
||||
|
||||
impl IssueComment {
|
||||
pub fn into_detail(self, author: UserBaseInfo) -> IssueCommentDetail {
|
||||
IssueCommentDetail {
|
||||
id: self.id,
|
||||
issue_id: self.issue_id,
|
||||
author,
|
||||
reply_to_comment_id: self.reply_to_comment_id,
|
||||
body: self.body,
|
||||
created_at: self.created_at,
|
||||
updated_at: self.updated_at,
|
||||
deleted_at: self.deleted_at,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,9 +15,9 @@ pub mod issue_stats;
|
||||
pub mod issue_subscribers;
|
||||
pub mod issue_templates;
|
||||
|
||||
pub use issue::Issue;
|
||||
pub use issue::{Issue, IssueDetail};
|
||||
pub use issue_assignees::IssueAssignee;
|
||||
pub use issue_comments::IssueComment;
|
||||
pub use issue_comments::{IssueComment, IssueCommentDetail};
|
||||
pub use issue_commit_relations::IssueCommitRelation;
|
||||
pub use issue_events::IssueEvent;
|
||||
pub use issue_label_relations::IssueLabelRelation;
|
||||
|
||||
Reference in New Issue
Block a user