Skip to content
Clone
e034b46
39 lines 1.0 KB Rust
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<issue_user_entity::Model> 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<bool>,
pub is_mentioned: Option<bool>,
}