refactor(issues): remove issues types (inlined)
zhenyi committed
Deleted lib/issues/features/issues/types.rs lib/issues/features/issues/types.rs +0 −71
@@ -1,71 +0,0 @@
1use db::issue::issues as issues_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 CollectionView {
17 pub id: Uuid,
18 pub channel_id: Uuid,
19 pub name: String,
20 pub icon: Option<String>,
21 pub description: Option<String>,
22 pub nums_open_issue: i64,
23 pub nums_closed_issue: i64,
24 pub created_at: String,
25 pub updated_at: Option<String>,
26}
27
28impl From<issues_entity::Model> for CollectionView {
29 fn from(m: issues_entity::Model) -> Self {
30 Self {
31 id: m.id,
32 channel_id: m.channel_id,
33 name: m.name,
34 icon: m.icon,
35 description: m.description,
36 nums_open_issue: 0,
37 nums_closed_issue: 0,
38 created_at: fmt_ts(m.created_at),
39 updated_at: fmt_ts_opt(m.updated_at),
40 }
41 }
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
45pub struct CollectionPage {
46 pub items: Vec<CollectionView>,
47 pub total: i64,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
51pub struct CreateCollectionOption {
52 pub channel_id: Uuid,
53 pub name: String,
54 pub icon: Option<String>,
55 pub description: Option<String>,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
59pub struct UpdateCollectionOption {
60 pub name: Option<String>,
61 pub icon: Option<Option<String>>,
62 pub description: Option<Option<String>>,
63}
64
65#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoParams)]
66pub struct ListCollectionQuery {
67 pub channel_id: Option<Uuid>,
68 pub q: Option<String>,
69 pub limit: Option<u64>,
70 pub offset: Option<u64>,
71}
No newline at end of file