journallib/dto/
mark_response.rs1use common::entity::DtoResp;
2use common::enums::status::Status;
3use serde::{Deserialize, Serialize};
4use uuid::Uuid;
5
6use crate::enums::absent_mark::AbsentMark;
7use crate::enums::absent_reason::AbsentReason;
8use crate::enums::mark_type::MarkType;
9
10#[derive(Serialize, Deserialize, Debug, Clone)]
11#[serde(rename_all = "camelCase")]
12pub struct MarkResponse {
13 pub id: Uuid,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub is_always_output: Option<i32>,
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub weight: Option<i32>,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub reasons: Option<Vec<Uuid>>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub status: Option<Status>,
22 #[serde(skip_serializing_if = "Option::is_none")]
23 pub comment: Option<String>,
24 pub student: Uuid,
25 pub teacher: Uuid,
26 pub lesson: Uuid,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub mark_type: Option<MarkType>,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub attachment: Option<String>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub absent_reason: Option<AbsentReason>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub absence: Option<Uuid>,
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub absent_mark: Option<AbsentMark>,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub suspension: Option<Uuid>,
39}
40
41impl DtoResp for MarkResponse {}