journallib/dto/
homework_resp_response.rs1use chrono::NaiveDateTime;
2use common::entity::DtoResp;
3use common::enums::status::Status;
4use common::utils::serialize_option_naive_date;
5use serde::{Deserialize, Serialize};
6use uuid::Uuid;
7
8#[derive(Serialize, Deserialize, Debug, Clone)]
9#[serde(rename_all = "camelCase")]
10pub struct HomeworkRespResponse {
11 pub id: Uuid,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub ver: Option<i32>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub test_attempt: Option<Uuid>,
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub form_response: Option<Uuid>,
18 pub status: Status,
19 pub student: Uuid,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub files: Option<Vec<String>>,
22 pub homework: Uuid,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub response: Option<String>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub comment: Option<String>,
27 #[serde(default)]
28 #[serde(with = "serialize_option_naive_date")]
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub date: Option<NaiveDateTime>,
31}
32
33impl DtoResp for HomeworkRespResponse {}