marketlib/jsonb/
parameters.rsuse serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<Uuid>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub field_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_mandatory: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<ParamValues>>,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
pub struct ParamValues {
pub id: Uuid,
pub label: String,
pub extra: Option<String>,
}
impl Parameters {
pub fn normalize(&self) -> Parameters {
Parameters {
id: Option::from(if self.id.is_none() {
Uuid::new_v4()
} else {
self.id.unwrap()
}),
label: self.label.clone(),
field_type: self.field_type.clone(),
is_mandatory: self.is_mandatory,
options: self.options.clone(),
}
}
}