feat(export): add issues issue_user export
zhenyi committed
Added lib/export/issues/issue_user.rs lib/export/issues/issue_user.rs +39 −0 View lib/export/issues/issue_user.rs
@@ -0,0 +1,39 @@
1use db::issue::issue_user as issue_user_entity;
2use serde::{Deserialize, Serialize};
3use time::OffsetDateTime;
4use time::format_description::well_known::Rfc3339;
5use utoipa::ToSchema;
6use uuid::Uuid;
7
8fn fmt_ts(ts: OffsetDateTime) -> String {
9 ts.format(&Rfc3339).unwrap_or_default()
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
13pub struct IssueUserView {
14 pub id: Uuid,
15 pub user_id: Uuid,
16 pub issue_id: Uuid,
17 pub is_read: bool,
18 pub is_mentioned: bool,
19 pub created_at: String,
20}
21
22impl From<issue_user_entity::Model> for IssueUserView {
23 fn from(m: issue_user_entity::Model) -> Self {
24 Self {
25 id: m.id,
26 user_id: m.uid,
27 issue_id: m.issue_id,
28 is_read: m.is_read,
29 is_mentioned: m.is_mentioned,
30 created_at: fmt_ts(m.created_at),
31 }
32 }
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
36pub struct UpdateIssueUserOption {
37 pub is_read: Option<bool>,
38 pub is_mentioned: Option<bool>,
39}