refactor(issues): remove issue_member types (inlined)
zhenyi committed
Deleted lib/issues/features/issue_member/types.rs lib/issues/features/issue_member/types.rs +0 −55
@@ -1,55 +0,0 @@
1use db::issue::issue_member as member_entity;
2use serde::{Deserialize, Serialize};
3use time::OffsetDateTime;
4use time::format_description::well_known::Rfc3339;
5use utoipa::{IntoParams, ToSchema};
6use uuid::Uuid;
7
8fn fmt_ts(ts: OffsetDateTime) -> String {
9 ts.format(&Rfc3339).unwrap_or_default()
10}
11fn fmt_ts_opt(ts: Option<OffsetDateTime>) -> Option<String> {
12 ts.map(fmt_ts)
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
16pub struct MemberView {
17 pub id: Uuid,
18 pub issue_id: Uuid,
19 pub user_id: Uuid,
20 pub kind: String,
21 pub created_at: String,
22 pub updated_at: Option<String>,
23}
24
25impl From<member_entity::Model> for MemberView {
26 fn from(m: member_entity::Model) -> Self {
27 Self {
28 id: m.id,
29 issue_id: m.issue_id,
30 user_id: m.user_id,
31 kind: format!("{:?}", m.kind),
32 created_at: fmt_ts(m.created_at),
33 updated_at: fmt_ts_opt(m.updated_at),
34 }
35 }
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
39pub struct MemberPage {
40 pub items: Vec<MemberView>,
41 pub total: i64,
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
45pub struct CreateMemberOption {
46 pub user_id: Uuid,
47 pub kind: String,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
51pub struct ListMemberQuery {
52 pub kind: Option<String>,
53 pub limit: Option<u64>,
54 pub offset: Option<u64>,
55}
No newline at end of file