journallib/dto/
homework_resp_response.rs

1use 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 {}