assignmentlib/jsonb/
question_option.rsuse serde::{Deserialize, Serialize};
use uuid::Uuid;
use crate::jsonb::match_value::MatchValue;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(rename_all = "camelCase")]
pub struct QuestionOption {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<Uuid>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vtext: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_correct: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vtype: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub correct: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub picture_path: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub video_path: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_path: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub column: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub column_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub coords: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub audio_path: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub identifier : Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub match_value : Option<Vec<MatchValue>>,
}
impl QuestionOption {
pub fn normalize(&self) -> QuestionOption {
QuestionOption {
id: Option::from(if self.id.is_none() {
Uuid::new_v4()
} else {
self.id.unwrap()
}),
vtext: self.vtext.clone(),
is_correct: self.is_correct,
vtype: self.vtype.clone(),
correct: self.correct.clone(),
picture_path: self.picture_path.clone(),
video_path: self.video_path.clone(),
file_path: self.file_path.clone(),
column: self.column,
column_name: self.column_name.clone(),
coords: self.coords.clone(),
audio_path: self.audio_path.clone(),
value: self.value.clone(),
hint: self.hint.clone(),
identifier: self.identifier.clone(),
match_value: self.match_value.clone()
}
}
}