assignmentlib/dto/
attempt_response.rsuse chrono::naive::serde::ts_milliseconds;
use chrono::NaiveDateTime;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use crate::dto::marking_response::MarkingResponse;
use crate::enums::attempt_status::AttemptStatus;
use crate::jsonb::answer_group::AnswerGroup;
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct AttemptResponse {
pub id: Uuid,
#[serde(with = "ts_milliseconds")]
pub start_time: NaiveDateTime,
#[serde(with = "ts_milliseconds")]
pub end_time: NaiveDateTime,
#[serde(skip_serializing_if = "Option::is_none")]
pub ver: Option<i32>,
#[serde(rename = "task")]
pub test_task: Uuid,
#[serde(rename = "user")]
pub user_t: Uuid,
pub user_role: Uuid,
#[serde(skip_serializing_if = "Option::is_none")]
pub answers: Option<Vec<AnswerGroup>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<AttemptStatus>,
#[serde(skip_serializing_if = "Option::is_none")]
pub markings: Option<Vec<MarkingResponse>>,
pub paused: bool,
pub section_questions: Vec<Uuid>,
}