journallib/dto/
mark_response.rsuse common::enums::status::Status;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use crate::enums::mark_type::MarkType;
use crate::enums::absent_reason::AbsentReason;
use crate::enums::absent_mark::AbsentMark;
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct MarkResponse {
pub id: Uuid,
#[serde(skip_serializing_if = "Option::is_none")]
pub ver: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_always_output: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub weight: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reasons: Option<Vec<Uuid>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<Status>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
pub student: Uuid,
pub teacher: Uuid,
pub lesson: Uuid,
#[serde(skip_serializing_if = "Option::is_none")]
pub mark_type: Option<MarkType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub attachment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub absent_reason: Option<AbsentReason>,
#[serde(skip_serializing_if = "Option::is_none")]
pub absence: Option<Uuid>,
#[serde(skip_serializing_if = "Option::is_none")]
pub absent_mark: Option<AbsentMark>,
#[serde(skip_serializing_if = "Option::is_none")]
pub suspension: Option<Uuid>,
}