journallib/dto/
mark_response.rs

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