use db::issue::issue_user as issue_user_entity; use serde::{Deserialize, Serialize}; use time::OffsetDateTime; use time::format_description::well_known::Rfc3339; use utoipa::ToSchema; use uuid::Uuid; fn fmt_ts(ts: OffsetDateTime) -> String { ts.format(&Rfc3339).unwrap_or_default() } #[derive(Debug, Clone, Serialize, Deserialize, ToSchema)] pub struct IssueUserView { pub id: Uuid, pub user_id: Uuid, pub issue_id: Uuid, pub is_read: bool, pub is_mentioned: bool, pub created_at: String, } impl From for IssueUserView { fn from(m: issue_user_entity::Model) -> Self { Self { id: m.id, user_id: m.uid, issue_id: m.issue_id, is_read: m.is_read, is_mentioned: m.is_mentioned, created_at: fmt_ts(m.created_at), } } } #[derive(Debug, Clone, Serialize, Deserialize, ToSchema)] pub struct UpdateIssueUserOption { pub is_read: Option, pub is_mentioned: Option, }